X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMRpcServiceAdapter.java;h=9e4bb4daea7f3139ffe99e7d861389cb2674b0fc;hp=26e696d1c75bf3d22811bc9f0e64ac24f2417fed;hb=HEAD;hpb=1da4f8be48cca9621b790c486528bb28c1cae0c7 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java deleted file mode 100644 index 26e696d1c7..0000000000 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.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.base.Preconditions; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.common.collect.ClassToInstanceMap; -import com.google.common.collect.ImmutableSet; -import java.util.Set; -import org.opendaylight.controller.md.sal.binding.impl.BindingDOMAdapterBuilder.Factory; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; -import org.opendaylight.controller.md.sal.dom.api.DOMService; -import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry; -import org.opendaylight.yangtools.yang.binding.RpcService; -import org.opendaylight.yangtools.yang.binding.util.BindingReflections; - -public class BindingDOMRpcServiceAdapter implements RpcConsumerRegistry { - - protected static final Factory BUILDER_FACTORY = Builder::new; - - private final LoadingCache, RpcServiceAdapter> proxies = CacheBuilder.newBuilder() - .weakKeys() - .build(new CacheLoader, RpcServiceAdapter>() { - - @Override - public RpcServiceAdapter load(final Class key) throws Exception { - return createProxy(key); - } - - }); - - private final DOMRpcService domService; - private final BindingToNormalizedNodeCodec codec; - - public BindingDOMRpcServiceAdapter(final DOMRpcService domService, final BindingToNormalizedNodeCodec codec) { - super(); - this.domService = domService; - this.codec = codec; - } - - @SuppressWarnings("unchecked") - @Override - public T getRpcService(final Class rpcService) { - Preconditions.checkArgument(rpcService != null, "Rpc Service needs to be specied."); - return (T) proxies.getUnchecked(rpcService).getProxy(); - } - - private RpcServiceAdapter createProxy(final Class key) { - Preconditions.checkArgument(BindingReflections.isBindingClass(key)); - Preconditions.checkArgument(key.isInterface(), "Supplied RPC service type must be interface."); - return new RpcServiceAdapter(key, codec, domService); - } - - private static final class Builder extends BindingDOMAdapterBuilder { - - @Override - protected RpcConsumerRegistry createInstance(final BindingToNormalizedNodeCodec codec, - final ClassToInstanceMap delegates) { - final DOMRpcService domRpc = delegates.getInstance(DOMRpcService.class); - return new BindingDOMRpcServiceAdapter(domRpc , codec); - } - - @Override - public Set> getRequiredDelegates() { - return ImmutableSet.of(DOMRpcService.class); - } - - } - -}