X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMRpcProviderServiceAdapter.java;h=bd5aec9668a67677ac3e7eebb1b06f08965eb4dc;hb=HEAD;hp=252a17f1e543351f4cd5a9d31e686c9f57634d5d;hpb=03c13bd8a8bb89a729d739eb2fcd501a4dfa5439;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcProviderServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcProviderServiceAdapter.java deleted file mode 100644 index 252a17f1e5..0000000000 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcProviderServiceAdapter.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.controller.md.sal.binding.impl; - -import com.google.common.collect.ImmutableSet; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcIdentifier; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationRegistration; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService; -import org.opendaylight.yangtools.concepts.ObjectRegistration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.RpcService; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; - -public class BindingDOMRpcProviderServiceAdapter { - - private static final Set GLOBAL = ImmutableSet.of(YangInstanceIdentifier.EMPTY); - private final BindingToNormalizedNodeCodec codec; - private final DOMRpcProviderService domRpcRegistry; - - public BindingDOMRpcProviderServiceAdapter(final DOMRpcProviderService domRpcRegistry, - final BindingToNormalizedNodeCodec codec) { - this.codec = codec; - this.domRpcRegistry = domRpcRegistry; - } - - public ObjectRegistration registerRpcImplementation(final Class type, - final T implementation) { - return register(type, implementation, GLOBAL); - } - - public ObjectRegistration registerRpcImplementation(final Class type, - final T implementation, final Set> paths) { - return register(type, implementation, toYangInstanceIdentifiers(paths)); - } - - private ObjectRegistration register(final Class type, - final T implementation, final Collection rpcContextPaths) { - final Map rpcs = codec.getRpcMethodToSchemaPath(type).inverse(); - - final BindingDOMRpcImplementationAdapter adapter = new BindingDOMRpcImplementationAdapter( - codec.getCodecRegistry(), type, rpcs, implementation); - final Set domRpcs = createDomRpcIdentifiers(rpcs.keySet(), rpcContextPaths); - final DOMRpcImplementationRegistration domReg = domRpcRegistry.registerRpcImplementation(adapter, domRpcs); - return new BindingRpcAdapterRegistration<>(implementation, domReg); - } - - private static Set createDomRpcIdentifiers(final Set rpcs, - final Collection paths) { - final Set ret = new HashSet<>(); - for (final YangInstanceIdentifier path : paths) { - for (final SchemaPath rpc : rpcs) { - ret.add(DOMRpcIdentifier.create(rpc, path)); - } - } - return ret; - } - - private Collection toYangInstanceIdentifiers(final Set> identifiers) { - final Collection ret = new ArrayList<>(identifiers.size()); - for (final InstanceIdentifier binding : identifiers) { - ret.add(codec.toYangInstanceIdentifierCached(binding)); - } - return ret; - } -}