*/
package org.opendaylight.transportpce.tapi.utils;
-import java.util.ArrayList;
-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.rev221121.Uuid;
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;
public class TapiListener implements DataTreeChangeListener<ServiceInterfacePoints> {
private static final Logger LOG = LoggerFactory.getLogger(TapiListener.class);
+ private static final String SE_JAVA_INTF =
+ "interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928"
+ + ".service._interface.points.ServiceEndPoint";
@Override
public void onDataTreeChanged(@NonNull List<DataTreeModification<ServiceInterfacePoints>> changes) {
switch (rootSIP.modificationType()) {
case WRITE:
LOG.info("onDataTreeChanged in TapiListener : WRITE");
- ServiceInterfacePoints data = rootSIP.dataAfter();
- List<ServiceEndPoint> listSEP = new ArrayList<>(data.getServiceEndPoint().values());
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(ServiceEndPoint.class).iterator();
- while (iterator.hasNext()) {
- DataObjectModification<? extends DataObject> dom = iterator.next();
+ for (DataObjectModification<? extends DataObject> dom :
+ rootSIP.getModifiedChildren(ServiceEndPoint.class)) {
// to delete existing child entry
- if (dom.dataAfter() == null) {
- DataObject dataObject = dom.dataBefore();
- ServiceEndPoint sep = null;
- sep = (ServiceEndPoint) dataObject;
- Uuid uuid = sep.getUuid();
- MappingUtils.deleteMapEntry(uuid);
+ DataObject dataAfter = dom.dataAfter();
+ if (dataAfter == null) {
+ MappingUtils.deleteMapEntry(((ServiceEndPoint) dom.dataBefore()).getUuid());
MappingUtils.afficheMap();
- break;
+ continue;
}
-
// to add new child entry
- if (dom.dataType().toString().compareTo("interface org.opendaylight.yang.gen.v1.urn.opendayl"
- + "ight.params.xml.ns.yang.tapi.rev180928.service._interface.points.ServiceEndPoint") == 0
- && dom.dataBefore() == null) {
- DataObject dataObject = dom.dataAfter();
- ServiceEndPoint sep = null;
- sep = (ServiceEndPoint) dataObject;
- MappingUtils.addMapSEP(sep);
- MappingUtils.afficheMap();
- } else {
+ if (dom.dataBefore() != null || dom.dataType().toString().compareTo(SE_JAVA_INTF) != 0) {
LOG.error("data input type is not a valid 'service-end-point'");
+ continue;
}
- break;
+ MappingUtils.addMapSEP((ServiceEndPoint) dataAfter);
+ MappingUtils.afficheMap();
}
break;
case DELETE: