Refactor Networkmodel PortMappingListener
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / listeners / PortMappingListener.java
index 6ae864547dcf70a3a6f60148903f30072d374396..5122c39c24e3e624761b33f9806976e7745ac7b5 100644 (file)
@@ -7,17 +7,17 @@
  */
 package org.opendaylight.transportpce.networkmodel.listeners;
 
-import java.util.Collection;
 import java.util.LinkedList;
+import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev231221.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev231221.network.Nodes;
+import org.opendaylight.yangtools.yang.binding.DataObjectStep;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 
 public class PortMappingListener implements DataTreeChangeListener<Mapping> {
 
@@ -28,28 +28,31 @@ public class PortMappingListener implements DataTreeChangeListener<Mapping> {
     }
 
     @Override
-    public void onDataTreeChanged(@NonNull Collection<DataTreeModification<Mapping>> changes) {
+    public void onDataTreeChanged(@NonNull List<DataTreeModification<Mapping>> changes) {
         for (DataTreeModification<Mapping> change : changes) {
-            if (change.getRootNode().getDataBefore() != null && change.getRootNode().getDataAfter() != null) {
-                Mapping oldMapping = change.getRootNode().getDataBefore();
-                Mapping newMapping = change.getRootNode().getDataAfter();
-                if (oldMapping.getPortAdminState().equals(newMapping.getPortAdminState())
-                        && oldMapping.getPortOperState().equals(newMapping.getPortOperState())) {
-                    return;
-                } else {
-                    networkModelService.updateOpenRoadmTopologies(
-                            getNodeIdFromMappingDataTreeIdentifier(change.getRootPath()), newMapping);
-                }
+            Mapping oldMapping = change.getRootNode().dataBefore();
+            if (oldMapping == null) {
+                continue;
             }
+            Mapping newMapping = change.getRootNode().dataAfter();
+            if (newMapping == null) {
+                continue;
+            }
+            if (oldMapping.getPortAdminState().equals(newMapping.getPortAdminState())
+                    && oldMapping.getPortOperState().equals(newMapping.getPortOperState())) {
+                return;
+            }
+            networkModelService.updateOpenRoadmTopologies(
+                getNodeIdFromMappingDataTreeIdentifier(change.getRootPath()),
+                newMapping);
         }
     }
 
     protected String getNodeIdFromMappingDataTreeIdentifier(DataTreeIdentifier<Mapping> dataTreeIdentifier) {
-        LinkedList<PathArgument> path = new LinkedList<>((Collection<? extends PathArgument>)
-                dataTreeIdentifier.getRootIdentifier().getPathArguments());
+        LinkedList<DataObjectStep<?>> path = new LinkedList<>();
+        dataTreeIdentifier.path().getPathArguments().forEach(p -> path.add(p));
         path.removeLast();
         InstanceIdentifier<Nodes> portMappingNodeID = InstanceIdentifier.unsafeOf(path);
         return InstanceIdentifier.keyOf(portMappingNodeID).getNodeId();
-
     }
 }