Refactor TAPI utils TapiListener
[transportpce.git] / tapi / src / main / java / org / opendaylight / transportpce / tapi / utils / TapiListener.java
index 41cf08452bd5c20f3e77dafc5e63b5bd873d1339..c1c5c9722d00c5e989bd02bc246c31623cd82237 100644 (file)
@@ -7,17 +7,14 @@
  */
 package org.opendaylight.transportpce.tapi.utils;
 
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
-
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataObjectModification;
 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928.ServiceInterfacePoints;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928.service._interface.points.ServiceEndPoint;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev230728.ServiceInterfacePoints;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev230728.service._interface.points.ServiceEndPoint;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,52 +24,43 @@ public class TapiListener implements DataTreeChangeListener<ServiceInterfacePoin
     private static final Logger LOG = LoggerFactory.getLogger(TapiListener.class);
 
     @Override
-    public void onDataTreeChanged(@NonNull Collection<DataTreeModification<ServiceInterfacePoints>> changes) {
+    public void onDataTreeChanged(@NonNull List<DataTreeModification<ServiceInterfacePoints>> changes) {
         LOG.info("onDataTreeChanged in TapiListener");
         for (DataTreeModification<ServiceInterfacePoints> change : changes) {
             DataObjectModification<ServiceInterfacePoints> rootSIP = change.getRootNode();
-            switch (rootSIP.getModificationType()) {
+            switch (rootSIP.modificationType()) {
                 case WRITE:
                     LOG.info("onDataTreeChanged in TapiListener : WRITE");
-                    ServiceInterfacePoints data = rootSIP.getDataAfter();
-                    List<ServiceEndPoint> listSEP = data.getServiceEndPoint();
                     MappingUtils.deleteMap();
-                    for (ServiceEndPoint sep : listSEP) {
+                    for (ServiceEndPoint sep : rootSIP.dataAfter().getServiceEndPoint().values()) {
                         MappingUtils.addMapSEP(sep);
                     }
                     MappingUtils.afficheMap();
                     break;
                 case SUBTREE_MODIFIED:
                     LOG.info("onDataTreeChanged in TapiListener : SUBTREE_MODIFIED");
-                    Iterator<? extends DataObjectModification<? extends DataObject>> iterator = rootSIP
-                        .getModifiedChildren().iterator();
-                    while (iterator.hasNext()) {
-                        DataObjectModification<? extends DataObject> dom = iterator.next();
-                        // to delete existing child entry
-                        if (dom.getDataAfter() == null) {
-                            DataObject dataObject = dom.getDataBefore();
-                            ServiceEndPoint sep = null;
-                            sep = (ServiceEndPoint) dataObject;
-                            Uuid uuid = sep.getUuid();
-                            MappingUtils.deleteMapEntry(uuid);
-                            MappingUtils.afficheMap();
-                            break;
-                        }
-
-                        // to add new child entry
-                        if (dom.getDataType().toString().compareTo("interface org.opendaylight.yang.gen.v1.urn.opendayl"
-                            + "ight.params.xml.ns.yang.tapi.rev180928.service._interface.points.ServiceEndPoint") == 0
-                            && dom.getDataBefore() == null) {
-                            DataObject dataObject = dom.getDataAfter();
-                            ServiceEndPoint sep = null;
-                            sep = (ServiceEndPoint) dataObject;
-                            MappingUtils.addMapSEP(sep);
-                            MappingUtils.afficheMap();
-                        } else {
-                            LOG.error("data input type is not a valid 'service-end-point'");
-                        }
+                    Iterator<? extends DataObjectModification<? extends DataObject>> iterator =
+                        rootSIP.getModifiedChildren(ServiceEndPoint.class).iterator();
+                    if (!iterator.hasNext()) {
+                        break;
+                    }
+                    DataObjectModification<? extends DataObject> dom = iterator.next();
+                    // to delete existing child entry
+                    DataObject dataAfter = dom.dataAfter();
+                    if (dataAfter == null) {
+                        MappingUtils.deleteMapEntry(((ServiceEndPoint) dom.dataBefore()).getUuid());
+                        MappingUtils.afficheMap();
                         break;
                     }
+                    // to add new child entry
+                    if (dom.dataBefore() != null || dom.dataType().toString().compareTo(
+                            "interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928"
+                                + ".service._interface.points.ServiceEndPoint") != 0) {
+                        LOG.error("data input type is not a valid 'service-end-point'");
+                        break;
+                    }
+                    MappingUtils.addMapSEP((ServiceEndPoint) dataAfter);
+                    MappingUtils.afficheMap();
                     break;
                 case DELETE:
                     LOG.info("onDataTreeChanged in TapiListener : DELETE");