*/
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;
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);
}
}
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);
} 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);
&& !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;
}
}