*/
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.FluentFuture;
import java.util.List;
import java.util.Map;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
import org.opendaylight.mdsal.dom.api.DOMRpcImplementation;
-import org.opendaylight.mdsal.dom.api.DOMRpcResult;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
final class GlobalDOMRpcRoutingTableEntry extends AbstractDOMRpcRoutingTableEntry {
- private final DOMRpcIdentifier rpcId;
-
- private GlobalDOMRpcRoutingTableEntry(final DOMRpcIdentifier rpcId, final Map<YangInstanceIdentifier,
- List<DOMRpcImplementation>> impls) {
- super(rpcId.getType(), impls);
- this.rpcId = Preconditions.checkNotNull(rpcId);
+ private GlobalDOMRpcRoutingTableEntry(final DOMRpcIdentifier rpcId,
+ final Map<YangInstanceIdentifier, List<DOMRpcImplementation>> impls) {
+ super(rpcId, impls);
}
// We do not need the RpcDefinition, but this makes sure we do not
// forward something we don't know to be an RPC.
- GlobalDOMRpcRoutingTableEntry(final RpcDefinition def, final Map<YangInstanceIdentifier,
- List<DOMRpcImplementation>> impls) {
- super(def.getPath(), impls);
- this.rpcId = DOMRpcIdentifier.create(def.getPath());
- }
-
- @Override
- protected FluentFuture<DOMRpcResult> invokeRpc(final NormalizedNode<?, ?> input) {
- return getImplementations(YangInstanceIdentifier.EMPTY).get(0).invokeRpc(rpcId, input);
+ GlobalDOMRpcRoutingTableEntry(final @NonNull QName rpcName,
+ final Map<YangInstanceIdentifier, List<DOMRpcImplementation>> impls) {
+ super(DOMRpcIdentifier.create(rpcName), impls);
}
@Override
- protected GlobalDOMRpcRoutingTableEntry newInstance(final Map<YangInstanceIdentifier,
- List<DOMRpcImplementation>> impls) {
- return new GlobalDOMRpcRoutingTableEntry(rpcId, impls);
+ protected GlobalDOMRpcRoutingTableEntry newInstance(
+ final Map<YangInstanceIdentifier, List<DOMRpcImplementation>> impls) {
+ return new GlobalDOMRpcRoutingTableEntry(getRpcId(), impls);
}
}