Update MRI projects for Aluminium
[ovsdb.git] / hwvtepsouthbound / hwvtepsouthbound-impl / src / main / java / org / opendaylight / ovsdb / hwvtepsouthbound / reconciliation / configuration / SwitchConfigOperationalChangeGetter.java
index 0e40b7bd789850d3804690128626c21859695df6..2c9d93b30d1765386178718a8fc9d4de9731bb24 100644 (file)
@@ -7,8 +7,9 @@
  */
 package org.opendaylight.ovsdb.hwvtepsouthbound.reconciliation.configuration;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentationBuilder;
@@ -17,19 +18,20 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public final class SwitchConfigOperationalChangeGetter {
     private SwitchConfigOperationalChangeGetter() {
     }
 
-    public static DataTreeModification<Node> getModification(InstanceIdentifier<Node> psNodeId,
-                                                             Node configNode, Node operationalNode) {
+    public static DataTreeModification<Node> getModification(final InstanceIdentifier<Node> psNodeId,
+                                                             final Node configNode, final Node operationalNode) {
 
         NodeBuilder newNodeBuilder = getNodeBuilderFromNode(configNode);
         NodeBuilder oldNodeBuilder = getNodeBuilderFromNode(operationalNode);
 
-        List<TerminationPoint> tpList = getPorts(configNode);
+        Map<TerminationPointKey, TerminationPoint> tpList = getPorts(configNode);
         if (tpList.size() > 0) {
             newNodeBuilder.setTerminationPoint(tpList);
         }
@@ -40,11 +42,9 @@ public final class SwitchConfigOperationalChangeGetter {
         }
 
         return new DataTreeModificationImpl<>(psNodeId, newNodeBuilder.build(), oldNodeBuilder.build());
-
     }
 
-
-    static NodeBuilder getNodeBuilderFromNode(Node node) {
+    static NodeBuilder getNodeBuilderFromNode(final Node node) {
         NodeBuilder newNodeBuilder;
         if (node != null) {
             newNodeBuilder = new NodeBuilder(node);
@@ -52,19 +52,22 @@ public final class SwitchConfigOperationalChangeGetter {
         } else {
             newNodeBuilder = new NodeBuilder();
         }
-        List<TerminationPoint> emptyList = new ArrayList<>();
-        newNodeBuilder.setTerminationPoint(emptyList);
+        newNodeBuilder.setTerminationPoint(Collections.emptyMap());
 
         return newNodeBuilder;
     }
 
-
-    static List<TerminationPoint> getPorts(Node node) {
-        ArrayList<TerminationPoint> tpList = new ArrayList<>();
-        if (node == null || node.getTerminationPoint() == null) {
-            return tpList;
+    static Map<TerminationPointKey, TerminationPoint> getPorts(final Node node) {
+        if (node == null) {
+            return Collections.emptyMap();
         }
-        for (TerminationPoint tp: node.getTerminationPoint()) {
+        final Map<TerminationPointKey, TerminationPoint> tps = node.getTerminationPoint();
+        if (tps == null) {
+            return Collections.emptyMap();
+        }
+
+        final Map<TerminationPointKey, TerminationPoint> result = new HashMap<>();
+        for (TerminationPoint tp : node.getTerminationPoint().values()) {
             TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder(tp);
             terminationPointBuilder.removeAugmentation(HwvtepPhysicalPortAugmentation.class);
 
@@ -78,9 +81,11 @@ public final class SwitchConfigOperationalChangeGetter {
                     && !augmentation.getVlanBindings().isEmpty()) {
                 builder.setVlanBindings(augmentation.getVlanBindings());
                 terminationPointBuilder.addAugmentation(HwvtepPhysicalPortAugmentation.class, builder.build());
-                tpList.add(terminationPointBuilder.build());
+
+                final TerminationPoint newTp = terminationPointBuilder.build();
+                result.put(newTp.key(), newTp);
             }
         }
-        return tpList;
+        return result;
     }
 }