From: Robert Varga Date: Thu, 13 Mar 2014 08:23:27 +0000 (+0100) Subject: Add MountInstance client documentation and promote to ListenableFuture X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~318^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=619e77e7b053875cabf01196ef8e1d6d1e92f832;hp=a8ceea323c972b086d3c9e6817dce53659ce8343 Add MountInstance client documentation and promote to ListenableFuture This adds documentation to MountInstance interface. Also promote Future<> to ListenableFuture<>, as there is only a single implementation anyway. Change-Id: I9346f1f38c633b32fa7039f143d6c7634cb97359 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountInstance.java b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountInstance.java index 18c854646c..5698b96977 100644 --- a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountInstance.java +++ b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountInstance.java @@ -8,8 +8,6 @@ package org.opendaylight.controller.sal.core.api.mount; -import java.util.concurrent.Future; - import org.opendaylight.controller.sal.core.api.data.DataBrokerService; import org.opendaylight.controller.sal.core.api.notify.NotificationService; import org.opendaylight.yangtools.yang.common.QName; @@ -17,11 +15,29 @@ import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import com.google.common.util.concurrent.ListenableFuture; + +/** + * Interface representing a single mount instance and represents a way for + * clients to access underlying data, RPCs and notifications. + */ public interface MountInstance extends // NotificationService, // DataBrokerService { - Future> rpc(QName type, CompositeNode input); + /** + * Invoke an RPC on the system underlying the mount instance. + * + * @param type RPC type + * @param input RPC input arguments + * @return Future representing execution of the RPC. + */ + ListenableFuture> rpc(QName type, CompositeNode input); + /** + * Get {@link SchemaContext} of the system underlying the mount instance. + * + * @return A schema context. + */ SchemaContext getSchemaContext(); } diff --git a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountProvisionService.java b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountProvisionService.java index c4c7889f57..1185c4528c 100644 --- a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountProvisionService.java +++ b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountProvisionService.java @@ -16,18 +16,18 @@ public interface MountProvisionService extends MountService { @Override public MountProvisionInstance getMountPoint(InstanceIdentifier path); - + MountProvisionInstance createMountPoint(InstanceIdentifier path); - + MountProvisionInstance createOrGetMountPoint(InstanceIdentifier path); - + ListenerRegistration registerProvisionListener(MountProvisionListener listener); - - public interface MountProvisionListener extends EventListener { - + + public interface MountProvisionListener extends EventListener { + void onMountPointCreated(InstanceIdentifier path); - + void onMountPointRemoved(InstanceIdentifier path); - + } } diff --git a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountService.java b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountService.java index 3180271c93..6d1f17255c 100644 --- a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountService.java +++ b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/mount/MountService.java @@ -10,8 +10,16 @@ package org.opendaylight.controller.sal.core.api.mount; import org.opendaylight.controller.sal.core.api.BrokerService; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; - +/** + * Client-level interface for interacting with mount points. It provides access + * to {@link MountInstance} instances based on their path. + */ public interface MountService extends BrokerService { - + /** + * Obtain access to a mount instance registered at the specified path. + * + * @param path Path at which the instance is registered + * @return Reference to the instance, or null if no such instance exists. + */ MountInstance getMountPoint(InstanceIdentifier path); } diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/MountPointImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/MountPointImpl.java index dc554a0727..f9f977e3c2 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/MountPointImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/MountPointImpl.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.sal.dom.broker; import java.util.List; import java.util.Set; -import java.util.concurrent.Future; import org.opendaylight.controller.md.sal.common.api.RegistrationListener; import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; @@ -41,6 +40,8 @@ import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import com.google.common.util.concurrent.ListenableFuture; + public class MountPointImpl implements MountProvisionInstance, SchemaContextProvider { private final SchemaAwareRpcBroker rpcs; @@ -135,7 +136,7 @@ public class MountPointImpl implements MountProvisionInstance, SchemaContextProv @Override - public Future> rpc(QName type, CompositeNode input) { + public ListenableFuture> rpc(QName type, CompositeNode input) { return null; }