final DOMRpcService domService) {
this.type = requireNonNull(type);
this.adapterContext = requireNonNull(adapterContext);
- this.delegate = requireNonNull(domService);
+ delegate = requireNonNull(domService);
final ImmutableBiMap<Method, RpcDefinition> methods = adapterContext.currentSerializer()
.getRpcMethodToSchema(type);
}
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<RpcResult<?>> invoke(final DataObject input) {
abstract ContainerNode serialize(DataObject input);
- final QName getRpcName() {
- return outputPath.firstNodeIdentifier();
+ final @NonNull NodeIdentifier inputIdentifier() {
+ return inputIdentifier;
}
- ListenableFuture<RpcResult<?>> invoke0(final ContainerNode input) {
+ private ListenableFuture<RpcResult<?>> invoke0(final ContainerNode input) {
final ListenableFuture<? extends DOMRpcResult> result =
delegate.invokeRpc(outputPath.firstNodeIdentifier(), input);
if (ENABLE_CODEC_SHORTCUT && result instanceof BindingRpcFutureAware) {
@Override
ContainerNode serialize(final DataObject input) {
- return LazySerializedContainerNode.create(getRpcName(), input, adapterContext.currentSerializer());
+ return LazySerializedContainerNode.create(inputIdentifier(), input, adapterContext.currentSerializer());
}
}
checkState(maybeInputType.isPresent(), "RPC method %s has no input", rpcMethod.getName());
final Class<? extends DataContainer> inputType = maybeInputType.get();
refExtractor = ContextReferenceExtractor.from(inputType);
- this.contextName = new NodeIdentifier(leafName);
+ contextName = new NodeIdentifier(leafName);
}
@Override
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);
}
}