import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
-import javax.annotation.Nonnull;
import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Implementation of {@link org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency}.
- * Class counts message of {@link org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy.STATISTIC_GROUP} type
- * and provides info as debug log.
+ * Implementation of
+ * {@link org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency}.
+ * Class counts message of {@link StatisticsGroup} type and provides info as debug log.
*/
public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency, MessageIntelligenceAgencyMXBean {
private static final Logger LOG = LoggerFactory.getLogger(MessageIntelligenceAgencyImpl.class);
private static final class MessageCounters {
- private static final AtomicLongFieldUpdater<MessageCounters> UPDATER = AtomicLongFieldUpdater.newUpdater(MessageCounters.class, "current");
+ private static final AtomicLongFieldUpdater<MessageCounters> UPDATER =
+ AtomicLongFieldUpdater.newUpdater(MessageCounters.class, "current");
@SuppressWarnings("unused")
private volatile long current;
private long cumulative;
}
}
- private ConcurrentMap<STATISTIC_GROUP, ConcurrentMap<Class<?>, MessageCounters>> inputStats = new ConcurrentHashMap<>();
+ private ConcurrentMap<StatisticsGroup, ConcurrentMap<Class<?>, MessageCounters>> inputStats =
+ new ConcurrentHashMap<>();
@Override
- public void spyMessage(@Nonnull final Class<?> message, final STATISTIC_GROUP statGroup) {
+ public void spyMessage(final Class<?> message, final StatisticsGroup statGroup) {
Preconditions.checkNotNull(message, "Message can't be null.");
getCounters(message, statGroup).increment();
}
/**
+ * Get counters.
* @param message counted element
* @param statGroup statistic counter group
* @return corresponding counter
*/
- private MessageCounters getCounters(final Class<?> message, final STATISTIC_GROUP statGroup) {
+ private MessageCounters getCounters(final Class<?> message, final StatisticsGroup statGroup) {
ConcurrentMap<Class<?>, MessageCounters> groupData = getOrCreateGroupData(statGroup);
MessageCounters counters = getOrCreateCountersPair(message, groupData);
return counters;
}
- private static MessageCounters getOrCreateCountersPair(final Class<?> msgType, final ConcurrentMap<Class<?>, MessageCounters> groupData) {
+ private static MessageCounters getOrCreateCountersPair(final Class<?> msgType,
+ final ConcurrentMap<Class<?>, MessageCounters> groupData) {
final MessageCounters lookup = groupData.get(msgType);
if (lookup != null) {
return lookup;
}
- private ConcurrentMap<Class<?>, MessageCounters> getOrCreateGroupData(final STATISTIC_GROUP statGroup) {
+ private ConcurrentMap<Class<?>, MessageCounters> getOrCreateGroupData(final StatisticsGroup statGroup) {
final ConcurrentMap<Class<?>, MessageCounters> lookup = inputStats.get(statGroup);
if (lookup != null) {
return lookup;
// log current counters and cleans it
if (LOG.isDebugEnabled()) {
for (String counterItem : provideIntelligence()) {
- LOG.debug(counterItem);
+ LOG.debug("Counter: {}", counterItem);
}
}
}
public List<String> provideIntelligence() {
List<String> dump = new ArrayList<>();
- for (STATISTIC_GROUP statGroup : STATISTIC_GROUP.values()) {
+ for (StatisticsGroup statGroup : StatisticsGroup.values()) {
Map<Class<?>, MessageCounters> groupData = inputStats.get(statGroup);
if (groupData != null) {
for (Entry<Class<?>, MessageCounters> statEntry : groupData.entrySet()) {