Update MRI projects for Aluminium
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / services / compatibility / GroupStatisticsToNotificationTransformer.java
index 4da34b81c8f4e7f2f547b0c2832a645b03a24e83..147c738b27de37dbfc3333e75fa97d966bbabd7f 100644 (file)
@@ -8,9 +8,13 @@
 
 package org.opendaylight.openflowplugin.impl.statistics.services.compatibility;
 
+import com.google.common.collect.Lists;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData;
@@ -25,7 +29,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 /**
  * Pulled out group stats to notification transformation.
  */
-public class GroupStatisticsToNotificationTransformer {
+public final class GroupStatisticsToNotificationTransformer {
 
     private GroupStatisticsToNotificationTransformer() {
         // Hide implicit constructor
@@ -58,7 +62,16 @@ public class GroupStatisticsToNotificationTransformer {
             final Optional<List<GroupStats>> groupStatsList = convertorExecutor.convert(
                     replyBody.getGroupStats(), data);
 
-            groupStatsList.ifPresent(groupStats -> notification.getGroupStats().addAll(groupStats));
+            groupStatsList.ifPresent(groupStats -> {
+                if (notification.getGroupStats() == null) {
+                    List<GroupStats> stats = Lists.newArrayList(groupStats);
+                    notification.setGroupStats(stats);
+                } else {
+                    Set<GroupStats> stats = new HashSet<>(notification.getGroupStats().values());
+                    stats.addAll(groupStats);
+                    notification.setGroupStats(stats.stream().collect(Collectors.toList()));
+                }
+            });
         }
         return notification.build();
     }