19634d79c2203fafe5aaa0156c41bf45a62f905f
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / MountPointManagerImpl.xtend
1 package org.opendaylight.controller.sal.dom.broker
2
3
4 import org.opendaylight.controller.sal.core.api.mount.MountProvisionService
5 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier
6 import java.util.concurrent.ConcurrentMap
7 import java.util.concurrent.ConcurrentHashMap
8 import static com.google.common.base.Preconditions.*;
9 import org.opendaylight.controller.sal.core.api.data.DataProviderService
10
11 class MountPointManagerImpl implements MountProvisionService {
12     
13     @Property
14     DataProviderService dataBroker;
15     
16     ConcurrentMap<InstanceIdentifier,MountPointImpl> mounts = new ConcurrentHashMap();
17     
18     override createMountPoint(InstanceIdentifier path) {
19         checkState(!mounts.containsKey(path),"Mount already created");
20         val mount = new MountPointImpl(path);
21         registerMountPoint(mount);
22         mounts.put(path,mount);
23         return mount;
24     }
25     
26     def registerMountPoint(MountPointImpl impl) {
27         dataBroker?.registerConfigurationReader(impl.mountPath,impl.readWrapper);
28         dataBroker?.registerOperationalReader(impl.mountPath,impl.readWrapper);
29         
30     }
31     
32     
33     override createOrGetMountPoint(InstanceIdentifier path) {
34         val mount = mounts.get(path);
35         if(mount === null) {
36             return createMountPoint(path)
37         }
38         return mount;
39     }
40     
41     
42     override getMountPoint(InstanceIdentifier path) {
43         mounts.get(path);
44     }
45 }