Allow DataObjectModification to address grouping nodes
[controller.git] / benchmark / dsbenchmark / src / main / java / org / opendaylight / dsbenchmark / listener / DsbenchmarkListener.java
index 02d09f6f4709982c230e417b4ea1bed1dfde24e3..197d93d0fbe8df1883431bca7a58b8f0eb2bb17d 100644 (file)
@@ -24,29 +24,33 @@ import org.slf4j.LoggerFactory;
 public class DsbenchmarkListener implements DataTreeChangeListener<TestExec> {
     private static final Logger LOG = LoggerFactory.getLogger(DsbenchmarkListener.class);
     private AtomicInteger numEvents = new AtomicInteger(0);
+    private AtomicInteger numDataChanges = new AtomicInteger(0);
 
     @Override
     public void onDataTreeChanged(
-            Collection<DataTreeModification<TestExec>> changes) {
+            final Collection<DataTreeModification<TestExec>> changes) {
         // Since we're registering the same DsbenchmarkListener object for both
         // OPERATIONAL and CONFIG, the onDataTreeChanged() method can be called
         // from different threads, and we need to use atomic counters.
 
         final int eventNum = numEvents.incrementAndGet();
-        if(LOG.isDebugEnabled()){
+        numDataChanges.addAndGet(changes.size());
+
+        if (LOG.isDebugEnabled()) {
             logDataTreeChangeEvent(eventNum, changes);
         }
     }
 
-    private static synchronized void logDataTreeChangeEvent(int eventNum,
-            Collection<DataTreeModification<TestExec>> changes) {
+    private static synchronized void logDataTreeChangeEvent(final int eventNum,
+            final Collection<DataTreeModification<TestExec>> changes) {
         LOG.debug("DsbenchmarkListener-onDataTreeChanged: Event {}", eventNum);
 
-        for(DataTreeModification<TestExec> change : changes) {
+        for (DataTreeModification<TestExec> change : changes) {
             final DataObjectModification<TestExec> rootNode = change.getRootNode();
             final ModificationType modType = rootNode.getModificationType();
             final PathArgument changeId = rootNode.getIdentifier();
-            final Collection<DataObjectModification<? extends DataObject>> modifications = rootNode.getModifiedChildren();
+            final Collection<? extends DataObjectModification<? extends DataObject>> modifications =
+                    rootNode.getModifiedChildren();
 
             LOG.debug("    changeId {}, modType {}, mods: {}", changeId, modType, modifications.size());
 
@@ -60,4 +64,7 @@ public class DsbenchmarkListener implements DataTreeChangeListener<TestExec> {
         return numEvents.get();
     }
 
+    public int getNumDataChanges() {
+        return numDataChanges.get();
+    }
 }