Remove deprecated MD-SAL APIs
[controller.git] / opendaylight / md-sal / sal-binding-util / src / main / java / org / opendaylight / controller / md / sal / binding / util / BindingContextUtils.java
diff --git a/opendaylight/md-sal/sal-binding-util/src/main/java/org/opendaylight/controller/md/sal/binding/util/BindingContextUtils.java b/opendaylight/md-sal/sal-binding-util/src/main/java/org/opendaylight/controller/md/sal/binding/util/BindingContextUtils.java
deleted file mode 100644 (file)
index 914f6d5..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2014 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.util;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.collect.ClassToInstanceMap;
-import com.google.common.collect.MutableClassToInstanceMap;
-import org.opendaylight.controller.md.sal.common.api.routing.RouteChangeListener;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
-import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-import org.opendaylight.controller.sal.binding.api.BindingAwareService;
-import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.controller.sal.binding.api.rpc.RpcContextIdentifier;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.RpcService;
-
-@Deprecated(forRemoval = true)
-public final class BindingContextUtils {
-    private BindingContextUtils() {
-    }
-
-    public static ConsumerContext createConsumerContext(final BindingAwareConsumer consumer,
-            final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-        requireNonNull(consumer, "Consumer should not be null");
-        return new SingleConsumerContextImpl(requireNonNull(serviceProvider, "Service map should not be null"));
-    }
-
-    public static ProviderContext createProviderContext(final BindingAwareProvider provider,
-            final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-        requireNonNull(provider, "Provider should not be null");
-        return new SingleProviderContextImpl(requireNonNull(serviceProvider, "Service map should not be null"));
-    }
-
-    public static ConsumerContext createConsumerContextAndInitialize(final BindingAwareConsumer consumer,
-            final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-        ConsumerContext context = createConsumerContext(consumer, serviceProvider);
-        consumer.onSessionInitialized(context);
-        return context;
-    }
-
-    public static ProviderContext createProviderContextAndInitialize(final BindingAwareProvider provider,
-            final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-        ProviderContext context = createProviderContext(provider, serviceProvider);
-        provider.onSessionInitiated(context);
-        return context;
-    }
-
-    public static <T extends BindingAwareService> T createContextProxyOrReturnService(final Class<T> service,
-            final T instance) {
-        // FIXME: Create Proxy
-        return instance;
-    }
-
-    private static class SingleConsumerContextImpl implements ConsumerContext, AutoCloseable {
-
-        private ClassToInstanceMap<BindingAwareService> alreadyRetrievedServices;
-        private ClassToInstanceMap<BindingAwareService> serviceProvider;
-
-        SingleConsumerContextImpl(final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-            this.alreadyRetrievedServices = MutableClassToInstanceMap.create();
-            this.serviceProvider = serviceProvider;
-        }
-
-        @Override
-        public final <T extends RpcService> T getRpcService(final Class<T> module) {
-            return getSALService(RpcConsumerRegistry.class).getRpcService(module);
-        }
-
-        @Override
-        public final <T extends BindingAwareService> T getSALService(final Class<T> service) {
-            T potential = alreadyRetrievedServices.getInstance(requireNonNull(service,
-                "Service class should not be null."));
-            if (potential != null) {
-                return potential;
-            }
-            return tryToRetrieveSalService(service);
-        }
-
-        private synchronized <T extends BindingAwareService> T tryToRetrieveSalService(final Class<T> service) {
-            final T potential = alreadyRetrievedServices.getInstance(service);
-            if (potential != null) {
-                return potential;
-            }
-            final T requested = serviceProvider.getInstance(service);
-            if (requested == null) {
-                throw new IllegalArgumentException("Requested service " + service.getName() + " is not available.");
-            }
-            final T retrieved = BindingContextUtils.createContextProxyOrReturnService(service,requested);
-            alreadyRetrievedServices.put(service, retrieved);
-            return retrieved;
-        }
-
-        @Override
-        public final void close() {
-            alreadyRetrievedServices = null;
-            serviceProvider = null;
-        }
-    }
-
-    private static class SingleProviderContextImpl extends SingleConsumerContextImpl implements ProviderContext {
-        SingleProviderContextImpl(final ClassToInstanceMap<BindingAwareService> serviceProvider) {
-            super(serviceProvider);
-        }
-
-        @Override
-        public <L extends RouteChangeListener<RpcContextIdentifier, InstanceIdentifier<?>>> ListenerRegistration<L>
-                registerRouteChangeListener(final L listener) {
-            return getSALService(RpcProviderRegistry.class).registerRouteChangeListener(listener);
-        }
-
-        @Override
-        public <T extends RpcService> RoutedRpcRegistration<T> addRoutedRpcImplementation(final Class<T> type,
-                final T implementation) {
-            return getSALService(RpcProviderRegistry.class).addRoutedRpcImplementation(type, implementation);
-        }
-
-        @Override
-        public <T extends RpcService> RpcRegistration<T> addRpcImplementation(final Class<T> type,
-                final T implementation) {
-            return getSALService(RpcProviderRegistry.class).addRpcImplementation(type, implementation);
-        }
-    }
-}