import java.util.Collection;
-import org.mef.nrp.impl.ActivationDriverRepoService;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverRepoService;
import org.opendaylight.yang.gen.v1.uri.onf.coremodel.corenetworkmodule.objectclasses.rev160413.FcRouteList;
import org.opendaylight.yang.gen.v1.uri.onf.coremodel.corenetworkmodule.objectclasses.rev160413.fcroutelist.FcRoute;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
* NRP top level change model listener
* @author bartosz.michalik@amartus.com
*/
-public class FCRouteChangeListener implements DataTreeChangeListener<FcRoute>, AutoCloseable {
- private static final Logger LOG = LoggerFactory.getLogger(FCRouteChangeListener.class);
- private final ListenerRegistration<FCRouteChangeListener> listener;
+public class FcRouteChangeListener implements DataTreeChangeListener<FcRoute>, AutoCloseable {
+ private static final Logger LOG = LoggerFactory.getLogger(FcRouteChangeListener.class);
+ private final ListenerRegistration<FcRouteChangeListener> listener;
private final FcRouteActivatorService routeActivator;
- private volatile ActivationDriverRepoService activationRepoService;
+ private final ActivationDriverRepoService activationRepoService;
+
+ public FcRouteChangeListener(DataBroker dataBroker, ActivationDriverRepoService activationRepoService) {
+ this.activationRepoService = activationRepoService;
+ routeActivator = new FcRouteActivatorService(activationRepoService);
- public FCRouteChangeListener(DataBroker dataBroker) {
final InstanceIdentifier<FcRoute> fwPath = getFwConstructsPath();
- final DataTreeIdentifier<FcRoute> dataTreeIid = new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, fwPath);
+ final DataTreeIdentifier<FcRoute> dataTreeIid =
+ new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, fwPath);
listener = dataBroker.registerDataTreeChangeListener(dataTreeIid, this);
- this.routeActivator = new FcRouteActivatorService();
- LOG.info("FCRouteChangeListener created and registered");
+ LOG.info("FcRouteChangeListener created and registered");
}
/**
@Override
public void onDataTreeChanged(Collection<DataTreeModification<FcRoute>> collection) {
//TODO add lock for concurrency support
- if(activationRepoService == null) {
- //TODO improve comment
+ if (activationRepoService == null) {
LOG.warn("ActivationDriverRepoService is not ready yet - ignoring request");
return;
}
//TO overcome whole subtree change event
boolean update = change.getRootNode().getDataBefore() != null;
- if(update) {
+ if (update) {
update(change);
} else {
add(change);
case DELETE:
remove(change);
break;
+ default:
+ break;
}
}
}
- public void add(DataTreeModification<FcRoute> newDataObject) {
+ protected void add(DataTreeModification<FcRoute> newDataObject) {
//TODO: Refine the logged addition
LOG.debug("FcRoute add event received {}", newDataObject);
routeActivator.activate(newDataObject.getRootNode().getDataAfter());
}
- public void remove(DataTreeModification<FcRoute> removedDataObject) {
+ protected void remove(DataTreeModification<FcRoute> removedDataObject) {
//TODO: Refine the logged removal
LOG.debug("FcRoute remove event received {}", removedDataObject);
routeActivator.deactivate(removedDataObject.getRootNode().getDataBefore());
}
- public void update(DataTreeModification<FcRoute> modifiedDataObject) {
+ protected void update(DataTreeModification<FcRoute> modifiedDataObject) {
//TODO: Refine the logged modification
LOG.debug("FcRoute update event received {}", modifiedDataObject);
return path;
}
-
- public void setActivationDriverRepoService(ActivationDriverRepoService service) {
- this.activationRepoService = service;
- routeActivator.setActivationRepoService(service);
- }
-
- public void unsetActivationDriverRepoService() {
- this.activationRepoService = null;
- routeActivator.unsetActivationRepoService();
- }
}