Add fields-aware NETCONF DOM API
[netconf.git] / netconf / netconf-topology-singleton / src / main / java / org / opendaylight / netconf / topology / singleton / impl / netconf / ActorProxyNetconfServiceFacade.java
index 3e98b8610e9a37228d2b88dbc62a29b28401e4c1..74092ea22002dce5618b580353a474aba0aa85b1 100644 (file)
@@ -37,7 +37,9 @@ import org.opendaylight.netconf.topology.singleton.messages.netconf.CreateEditCo
 import org.opendaylight.netconf.topology.singleton.messages.netconf.DeleteEditConfigRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.DiscardChangesRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigRequest;
+import org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigWithFieldsRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.GetRequest;
+import org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.LockRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.MergeEditConfigRequest;
 import org.opendaylight.netconf.topology.singleton.messages.netconf.RemoveEditConfigRequest;
@@ -93,6 +95,14 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade
         return read(future, OPERATIONAL, path);
     }
 
+    @Override
+    public ListenableFuture<Optional<NormalizedNode<?, ?>>> get(final YangInstanceIdentifier path,
+                                                                final List<YangInstanceIdentifier> fields) {
+        LOG.debug("{}: Get {} {} with fields {} via actor {}", id, OPERATIONAL, path, fields, masterActor);
+        final Future<Object> future = Patterns.ask(masterActor, new GetWithFieldsRequest(path, fields), askTimeout);
+        return read(future, OPERATIONAL, path);
+    }
+
     @Override
     public ListenableFuture<Optional<NormalizedNode<?, ?>>> getConfig(YangInstanceIdentifier path) {
         LOG.debug("{}: GetConfig {} {} via actor {}", id, CONFIGURATION, path, masterActor);
@@ -100,6 +110,15 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade
         return read(future, CONFIGURATION, path);
     }
 
+    @Override
+    public ListenableFuture<Optional<NormalizedNode<?, ?>>> getConfig(final YangInstanceIdentifier path,
+                                                                      final List<YangInstanceIdentifier> fields) {
+        LOG.debug("{}: GetConfig {} {} with fields {} via actor {}", id, CONFIGURATION, path, fields, masterActor);
+        final Future<Object> future = Patterns.ask(masterActor,
+                new GetConfigWithFieldsRequest(path, fields), askTimeout);
+        return read(future, CONFIGURATION, path);
+    }
+
     @Override
     public ListenableFuture<? extends DOMRpcResult> merge(LogicalDatastoreType store, YangInstanceIdentifier path,
                                                           NormalizedNode<?, ?> data,