Update MRI projects for Aluminium
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / ofpspecific / MessageIntelligenceAgencyImpl.java
index ffd422f66f9907cfbdab850735445f5f12c4fd2d..9e7cd4383ab8cb5376f69037d935d738af5d0615 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.openflowplugin.impl.statistics.ofpspecific;
 
+import com.google.common.base.Preconditions;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -20,16 +21,18 @@ 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<Class<?>>, MessageIntelligenceAgencyMXBean {
+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;
 
@@ -48,25 +51,29 @@ public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<
         }
     }
 
-    private final ConcurrentMap<STATISTIC_GROUP, ConcurrentMap<Class<?>, MessageCounters>> inputStats = new ConcurrentHashMap<>();
+    private ConcurrentMap<StatisticsGroup, ConcurrentMap<Class<?>, MessageCounters>> inputStats =
+            new ConcurrentHashMap<>();
 
     @Override
-    public void spyMessage(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();
     }
 
     /**
-     * @param message
-     * @param statGroup TODO
-     * @return
+     * 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;
@@ -78,7 +85,7 @@ public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<
 
     }
 
-    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;
@@ -95,7 +102,7 @@ public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<
         // log current counters and cleans it
         if (LOG.isDebugEnabled()) {
             for (String counterItem : provideIntelligence()) {
-                LOG.debug(counterItem);
+                LOG.debug("Counter: {}", counterItem);
             }
         }
     }
@@ -104,7 +111,7 @@ public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<
     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()) {
@@ -121,4 +128,9 @@ public class MessageIntelligenceAgencyImpl implements MessageIntelligenceAgency<
         }
         return dump;
     }
+
+    @Override
+    public void resetStatistics() {
+        inputStats = new ConcurrentHashMap<>();
+    }
 }