X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Flisteners%2FPortMappingListener.java;h=8bc1db81c2566ce85ac4786067f49bab24329717;hb=refs%2Fchanges%2F09%2F110209%2F5;hp=c7576398af1846abc7abed53a29e195811c54e57;hpb=41bcd9973fefe2dc01cbe1c246d31d6bdceba120;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/PortMappingListener.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/PortMappingListener.java index c7576398a..8bc1db81c 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/PortMappingListener.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/PortMappingListener.java @@ -7,23 +7,20 @@ */ 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.rev210927.mapping.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class PortMappingListener implements DataTreeChangeListener { - private static final Logger LOG = LoggerFactory.getLogger(PortMappingListener.class); - private final NetworkModelService networkModelService; public PortMappingListener(NetworkModelService networkModelService) { @@ -31,25 +28,27 @@ public class PortMappingListener implements DataTreeChangeListener { } @Override - public void onDataTreeChanged(@NonNull Collection> changes) { + public void onDataTreeChanged(@NonNull List> changes) { for (DataTreeModification change : changes) { - if (change.getRootNode().getDataBefore() != null && change.getRootNode().getDataAfter() != null) { - Mapping oldMapping = change.getRootNode().getDataBefore(); - Mapping newMapping = change.getRootNode().getDataAfter(); + if (change.getRootNode().dataBefore() != null && change.getRootNode().dataAfter() != null) { + Mapping oldMapping = change.getRootNode().dataBefore(); + Mapping newMapping = change.getRootNode().dataAfter(); if (oldMapping.getPortAdminState().equals(newMapping.getPortAdminState()) - || oldMapping.getPortOperState().equals(newMapping.getPortOperState())) { + && oldMapping.getPortOperState().equals(newMapping.getPortOperState())) { return; } else { - LinkedList path = new LinkedList<>(); - path.addAll((Collection) change.getRootPath().getRootIdentifier() - .getPathArguments()); - path.removeLast(); - @SuppressWarnings("unchecked") InstanceIdentifier portmappintNodeID = - (InstanceIdentifier) InstanceIdentifier.create(path); - String nodeId = InstanceIdentifier.keyOf(portmappintNodeID).getNodeId(); - networkModelService.updateOpenRoadmTopologies(nodeId, newMapping); + networkModelService.updateOpenRoadmTopologies( + getNodeIdFromMappingDataTreeIdentifier(change.getRootPath()), newMapping); } } } } + + protected String getNodeIdFromMappingDataTreeIdentifier(DataTreeIdentifier dataTreeIdentifier) { + LinkedList> path = new LinkedList<>(); + dataTreeIdentifier.path().getPathArguments().forEach(p -> path.add(p)); + path.removeLast(); + InstanceIdentifier portMappingNodeID = InstanceIdentifier.unsafeOf(path); + return InstanceIdentifier.keyOf(portMappingNodeID).getNodeId(); + } }