Merge "Move NetconfUtil to netconf-util."
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / MountPointManagerImpl.xtend
index c64d1e56dd9638d28d9dee0d1d508aaead85e030..c3bc88ed5e4acc55a85cc3829e743ed107150174 100644 (file)
@@ -6,15 +6,42 @@ import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier
 import java.util.concurrent.ConcurrentMap
 import java.util.concurrent.ConcurrentHashMap
 import static com.google.common.base.Preconditions.*;
+import org.opendaylight.controller.sal.core.api.data.DataProviderService
+import org.opendaylight.controller.sal.core.api.mount.MountProvisionService.MountProvisionListener
+import org.opendaylight.yangtools.concepts.util.ListenerRegistry
 
 class MountPointManagerImpl implements MountProvisionService {
     
+    @Property
+    DataProviderService dataBroker;
+    
+    val ListenerRegistry<MountProvisionListener> listeners = ListenerRegistry.create()
+    
     ConcurrentMap<InstanceIdentifier,MountPointImpl> mounts = new ConcurrentHashMap();
     
     override createMountPoint(InstanceIdentifier path) {
         checkState(!mounts.containsKey(path),"Mount already created");
         val mount = new MountPointImpl(path);
+        registerMountPoint(mount);
         mounts.put(path,mount);
+        notifyMountCreated(path);
+        return mount;
+    }
+    
+    def notifyMountCreated(InstanceIdentifier identifier) {
+        for(listener : listeners) {
+            listener.instance.onMountPointCreated(identifier);
+        }
+    }
+    
+    def registerMountPoint(MountPointImpl impl) {
+        //dataBroker?.registerConfigurationReader(impl.mountPath,impl.readWrapper);
+        //dataBroker?.registerOperationalReader(impl.mountPath,impl.readWrapper);
+        
+    }
+    
+    override registerProvisionListener(MountProvisionListener listener) {
+        listeners.register(listener)
     }
     
     
@@ -30,6 +57,4 @@ class MountPointManagerImpl implements MountProvisionService {
     override getMountPoint(InstanceIdentifier path) {
         mounts.get(path);
     }
-    
-    
 }