X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=binding%2Fmdsal-binding-dom-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fadapter%2FRpcServiceAdapter.java;h=12c604dcb3497a24446bcd94dc0cf72e4fc29240;hb=7c1493fd2f93985c4b9a45e214cf7a6df9e53cf9;hp=8c9dd9c5e3e62ca8d440f222b474c2c80b117475;hpb=9fe91a158e30e4022d2027a55027e1e5ae97640b;p=mdsal.git diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java index 8c9dd9c5e3..12c604dcb3 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java @@ -55,7 +55,7 @@ class RpcServiceAdapter implements InvocationHandler { final DOMRpcService domService) { this.type = requireNonNull(type); this.adapterContext = requireNonNull(adapterContext); - this.delegate = requireNonNull(domService); + delegate = requireNonNull(domService); final ImmutableBiMap methods = adapterContext.currentSerializer() .getRpcMethodToSchema(type); @@ -114,11 +114,13 @@ class RpcServiceAdapter implements InvocationHandler { } private abstract class RpcInvocationStrategy { + private final @NonNull NodeIdentifier inputIdentifier; private final @NonNull Absolute outputPath; RpcInvocationStrategy(final QName rpcName) { - this.outputPath = Absolute.of(rpcName, YangConstants.operationOutputQName(rpcName.getModule()).intern()) - .intern(); + final var namespace = rpcName.getModule(); + outputPath = Absolute.of(rpcName, YangConstants.operationOutputQName(namespace).intern()).intern(); + inputIdentifier = NodeIdentifier.create(YangConstants.operationInputQName(namespace.intern())); } final ListenableFuture> invoke(final DataObject input) { @@ -127,11 +129,11 @@ class RpcServiceAdapter implements InvocationHandler { abstract ContainerNode serialize(DataObject input); - final QName getRpcName() { - return outputPath.firstNodeIdentifier(); + final @NonNull NodeIdentifier inputIdentifier() { + return inputIdentifier; } - ListenableFuture> invoke0(final ContainerNode input) { + private ListenableFuture> invoke0(final ContainerNode input) { final ListenableFuture result = delegate.invokeRpc(outputPath.firstNodeIdentifier(), input); if (ENABLE_CODEC_SHORTCUT && result instanceof BindingRpcFutureAware) { @@ -164,7 +166,7 @@ class RpcServiceAdapter implements InvocationHandler { @Override ContainerNode serialize(final DataObject input) { - return LazySerializedContainerNode.create(getRpcName(), input, adapterContext.currentSerializer()); + return LazySerializedContainerNode.create(inputIdentifier(), input, adapterContext.currentSerializer()); } } @@ -179,7 +181,7 @@ class RpcServiceAdapter implements InvocationHandler { checkState(maybeInputType.isPresent(), "RPC method %s has no input", rpcMethod.getName()); final Class inputType = maybeInputType.get(); refExtractor = ContextReferenceExtractor.from(inputType); - this.contextName = new NodeIdentifier(leafName); + contextName = new NodeIdentifier(leafName); } @Override @@ -190,9 +192,9 @@ class RpcServiceAdapter implements InvocationHandler { if (bindingII != null) { final YangInstanceIdentifier yangII = serializer.toCachedYangInstanceIdentifier(bindingII); final LeafNode contextRef = ImmutableNodes.leafNode(contextName, yangII); - return LazySerializedContainerNode.withContextRef(getRpcName(), input, contextRef, serializer); + return LazySerializedContainerNode.withContextRef(inputIdentifier(), input, contextRef, serializer); } - return LazySerializedContainerNode.create(getRpcName(), input, serializer); + return LazySerializedContainerNode.create(inputIdentifier(), input, serializer); } }