+ public Future<RpcResult<Void>> registerBoundConstant(final RegisterBoundConstantInput input) {
+ LOG.debug("register-bound-constant: {}", input);
+
+ if (input.getContext() == null) {
+ final RpcError error = RpcResultBuilder.newError(
+ ErrorType.RPC, "Invalid input.", "Context value is null");
+ return Futures.immediateFuture(RpcResultBuilder.<Void>failed().withRpcError(error).build());
+ }
+
+ if (input.getConstant() == null) {
+ final RpcError error = RpcResultBuilder.newError(
+ ErrorType.RPC, "Invalid input.", "Constant value is null");
+ return Futures.immediateFuture(RpcResultBuilder.<Void>failed().withRpcError(error).build());
+ }
+
+ if (routedRegistrations.containsKey(input.getContext())) {
+ final RpcError error = RpcResultBuilder.newError(ErrorType.RPC, "Registration present.",
+ "There is already a rpc registered for context: " + input.getContext());
+ return Futures.immediateFuture(RpcResultBuilder.<Void>failed().withRpcError(error).build());
+ }
+
+ final DOMRpcImplementationRegistration<RoutedGetConstantService> registration =
+ RoutedGetConstantService.registerNew(bindingNormalizedNodeSerializer, domRpcService,
+ input.getConstant(), input.getContext());
+
+ routedRegistrations.put(input.getContext(), registration);
+ return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());