Migrate to using blueprints for unimgr initialisation.
[unimgr.git] / impl / src / main / java / org / opendaylight / unimgr / impl / FcRouteChangeListener.java
similarity index 75%
rename from impl/src/main/java/org/opendaylight/unimgr/impl/FCRouteChangeListener.java
rename to impl/src/main/java/org/opendaylight/unimgr/impl/FcRouteChangeListener.java
index 32b9decb5e746e8f5aa784c24c739c3987015a22..8785cc250f5c54159f648bf8db7c39b6664ede34 100644 (file)
@@ -9,13 +9,13 @@ package org.opendaylight.unimgr.impl;
 
 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;
@@ -27,20 +27,23 @@ import org.slf4j.LoggerFactory;
  * 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");
     }
 
     /**
@@ -50,8 +53,7 @@ public class FCRouteChangeListener implements DataTreeChangeListener<FcRoute>, A
     @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;
         }
@@ -65,7 +67,7 @@ public class FCRouteChangeListener implements DataTreeChangeListener<FcRoute>, A
                     //TO overcome whole subtree change event
                     boolean update = change.getRootNode().getDataBefore() != null;
 
-                    if(update) {
+                    if (update) {
                         update(change);
                     } else {
                         add(change);
@@ -75,25 +77,27 @@ public class FCRouteChangeListener implements DataTreeChangeListener<FcRoute>, A
                 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);
 
@@ -114,14 +118,4 @@ public class FCRouteChangeListener implements DataTreeChangeListener<FcRoute>, A
 
         return path;
     }
-
-    public void setActivationDriverRepoService(ActivationDriverRepoService service) {
-        this.activationRepoService = service;
-        routeActivator.setActivationRepoService(service);
-    }
-
-    public void unsetActivationDriverRepoService() {
-        this.activationRepoService = null;
-        routeActivator.unsetActivationRepoService();
-    }
 }