Add ForwardingYangLibSupport 71/93071/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 14 Oct 2020 14:48:23 +0000 (16:48 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 15 Oct 2020 06:57:22 +0000 (08:57 +0200)
OSGi wiring for YangLibSupport is using forwarding in two
implementations. Simplify both by factoring out
ForwardingYangLibSupport.

Change-Id: I05a48ebd689a47c248d79f8bdb878994098ce63f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 48000bfc57f2f974d0114df51e444f9b731b9f0f)
(cherry picked from commit b050aa9d39e5ddf99a9303a4a9f3292a00771af7)

yanglib/mdsal-yanglib-api/src/main/java/org/opendaylight/mdsal/yanglib/spi/ForwardingYangLibSupport.java [new file with mode: 0644]

diff --git a/yanglib/mdsal-yanglib-api/src/main/java/org/opendaylight/mdsal/yanglib/spi/ForwardingYangLibSupport.java b/yanglib/mdsal-yanglib-api/src/main/java/org/opendaylight/mdsal/yanglib/spi/ForwardingYangLibSupport.java
new file mode 100644 (file)
index 0000000..8296b7d
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2020 PANTHEON.tech, 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.mdsal.yanglib.spi;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ForwardingObject;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
+import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.yang.common.Revision;
+
+@Beta
+public abstract class ForwardingYangLibSupport extends ForwardingObject implements YangLibSupport {
+    @Override
+    public MountPointContextFactory createMountPointContextFactory(final MountPointIdentifier mountId,
+            final SchemaContextResolver resolver) {
+        return delegate().createMountPointContextFactory(mountId, resolver);
+    }
+
+    @Override
+    public Revision implementedRevision() {
+        return delegate().implementedRevision();
+    }
+
+    @Override
+    protected abstract @NonNull YangLibSupport delegate();
+}