+++ /dev/null
-/*
- * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ForwardingObject;
-import com.google.common.collect.ImmutableMap;
-import java.util.Map;
-import org.eclipse.jdt.annotation.Nullable;
-import org.gaul.modernizer_maven_annotations.SuppressModernizer;
-import org.opendaylight.controller.md.sal.dom.api.DOMActionService;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint;
-import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
-import org.opendaylight.controller.md.sal.dom.api.DOMService;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-/**
- * Adapter providing Controller DOMMountPoint implementation based on an MD-SAL DOMMountPoint delegate. Services are
- * looked up in the delegate first. If a lookup is unsuccessful, this class attempts to transparently proxy well-known
- * Controller DOMServices on top of their MD-SAL counterparts available from delegate.
- */
-@Deprecated(forRemoval = true)
-public class DOMMountPointAdapter extends ForwardingObject implements DOMMountPoint {
- private abstract static class CompatFactory<M extends org.opendaylight.mdsal.dom.api.DOMService,
- C extends DOMService> {
- private final Class<M> mdsalClass;
-
- CompatFactory(final Class<M> mdsalClass) {
- this.mdsalClass = requireNonNull(mdsalClass);
- }
-
- final @Nullable C createService(final org.opendaylight.mdsal.dom.api.DOMMountPoint mountPoint) {
- return mountPoint.getService(mdsalClass).map(this::createService).orElse(null);
- }
-
- abstract C createService(M delegate);
- }
-
- private static final Map<Class<? extends DOMService>, CompatFactory<?, ?>> KNOWN_SERVICES = ImmutableMap.of(
- DOMActionService.class, new CompatFactory<org.opendaylight.mdsal.dom.api.DOMActionService, DOMActionService>(
- org.opendaylight.mdsal.dom.api.DOMActionService.class) {
- @Override
- DOMActionService createService(final org.opendaylight.mdsal.dom.api.DOMActionService delegate) {
- return new LegacyDOMActionServiceAdapter(delegate);
- }
- },
- DOMDataBroker.class, new CompatFactory<org.opendaylight.mdsal.dom.api.DOMDataBroker, DOMDataBroker>(
- org.opendaylight.mdsal.dom.api.DOMDataBroker.class) {
- @Override
- DOMDataBroker createService(final org.opendaylight.mdsal.dom.api.DOMDataBroker delegate) {
- return new LegacyDOMDataBrokerAdapter(delegate);
- }
- },
- DOMNotificationService.class, new CompatFactory<org.opendaylight.mdsal.dom.api.DOMNotificationService,
- DOMNotificationService>(org.opendaylight.mdsal.dom.api.DOMNotificationService.class) {
- @Override
- DOMNotificationService createService(final org.opendaylight.mdsal.dom.api.DOMNotificationService delegate) {
- return new LegacyDOMNotificationServiceAdapter(delegate);
- }
- },
- DOMRpcService.class, new CompatFactory<org.opendaylight.mdsal.dom.api.DOMRpcService, DOMRpcService>(
- org.opendaylight.mdsal.dom.api.DOMRpcService.class) {
- @Override
- DOMRpcService createService(final org.opendaylight.mdsal.dom.api.DOMRpcService delegate) {
- return new LegacyDOMRpcServiceAdapter(delegate);
- }
- });
-
- private final org.opendaylight.mdsal.dom.api.DOMMountPoint delegate;
-
- public DOMMountPointAdapter(final org.opendaylight.mdsal.dom.api.DOMMountPoint delegate) {
- this.delegate = requireNonNull(delegate);
- }
-
- @Override
- public YangInstanceIdentifier getIdentifier() {
- return delegate().getIdentifier();
- }
-
- @Override
- @SuppressModernizer
- public <T extends DOMService> Optional<T> getService(final Class<T> cls) {
- final java.util.Optional<T> found = delegate.getService(cls);
- if (found.isPresent()) {
- return Optional.of(found.get());
- }
-
- final CompatFactory<?, ?> compat = KNOWN_SERVICES.get(cls);
- return Optional.fromNullable(cls.cast(compat == null ? null : compat.createService(delegate)));
- }
-
- @Override
- public SchemaContext getSchemaContext() {
- return delegate().getSchemaContext();
- }
-
- @Override
- public int hashCode() {
- return getIdentifier().hashCode();
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (!(obj instanceof DOMMountPoint)) {
- return false;
- }
-
- DOMMountPoint other = (DOMMountPoint) obj;
- return getIdentifier().equals(other.getIdentifier());
- }
-
- @Override
- protected org.opendaylight.mdsal.dom.api.DOMMountPoint delegate() {
- return delegate;
- }
-}