Add default implementations of StatementDefinition methods 46/69246/4
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 8 Mar 2018 01:51:57 +0000 (02:51 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 8 Mar 2018 12:05:41 +0000 (13:05 +0100)
StatementSupport should be forwarding StatementDefinition methods
it is inheriting to the public view it is capturing.

This makes the API somewhat cleaner by making it explicit these
methods are related.

Change-Id: I3ec5d2bf182824225ebe7a1596cf60f5047848e0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractStatementSupport.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ForwardingStatementSupport.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java

index 3b9a8bd6060d2a984b88ee7a7cc5ffdff042227d..ba0a930ae74f5506236aebc461e46f135fca2730 100644 (file)
@@ -10,9 +10,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -38,29 +36,6 @@ public abstract class AbstractStatementSupport<A, D extends DeclaredStatement<A>
         checkArgument(publicDefinition != this);
     }
 
-    @Nonnull
-    @Override
-    public final QName getStatementName() {
-        return type.getStatementName();
-    }
-
-    @Override
-    public final QName getArgumentName() {
-        return type.getArgumentName();
-    }
-
-    @Nonnull
-    @Override
-    public final Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
-        return type.getDeclaredRepresentationClass();
-    }
-
-    @Nonnull
-    @Override
-    public final Class<? extends EffectiveStatement<?,?>> getEffectiveRepresentationClass() {
-        return type.getEffectiveRepresentationClass();
-    }
-
     @Override
     public final StatementDefinition getPublicView() {
         return type;
@@ -122,11 +97,6 @@ public abstract class AbstractStatementSupport<A, D extends DeclaredStatement<A>
         }
     }
 
-    @Override
-    public boolean isArgumentYinElement() {
-        return getPublicView().isArgumentYinElement();
-    }
-
     @Override
     public boolean hasArgumentSpecificSupports() {
         // Most of statement supports don't have any argument specific
index d5f53fa79f7dae917fa5de6d9357d009af2bc452..54bcf11c306c9ec6b64317af376986c4d38269f3 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ForwardingObject;
 import java.util.Optional;
-import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -33,31 +32,6 @@ public abstract class ForwardingStatementSupport<A, D extends DeclaredStatement<
     @Override
     protected abstract StatementSupport<A, D, E> delegate();
 
-    @Override
-    public QName getStatementName() {
-        return delegate().getStatementName();
-    }
-
-    @Override
-    public QName getArgumentName() {
-        return delegate().getArgumentName();
-    }
-
-    @Override
-    public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
-        return delegate().getDeclaredRepresentationClass();
-    }
-
-    @Override
-    public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
-        return delegate().getEffectiveRepresentationClass();
-    }
-
-    @Override
-    public boolean isArgumentYinElement() {
-        return delegate().isArgumentYinElement();
-    }
-
     @Override
     public D createDeclared(final StmtContext<A, D, ?> ctx) {
         return delegate().createDeclared(ctx);
index 8465e3881eb6badef2a0657a31b1232b5237e2da..f4a63cf76f2d7b81685f2d3c6e3cf82e6177a3b6 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 import com.google.common.annotations.Beta;
 import java.util.Optional;
 import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -217,4 +218,29 @@ public interface StatementSupport<A, D extends DeclaredStatement<A>, E extends E
     default boolean isIgnoringConfig() {
         return false;
     }
+
+    @Override
+    default QName getStatementName() {
+        return getPublicView().getStatementName();
+    }
+
+    @Override
+    default QName getArgumentName() {
+        return getPublicView().getArgumentName();
+    }
+
+    @Override
+    default Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
+        return getPublicView().getDeclaredRepresentationClass();
+    }
+
+    @Override
+    default Class<? extends EffectiveStatement<?,?>> getEffectiveRepresentationClass() {
+        return getPublicView().getEffectiveRepresentationClass();
+    }
+
+    @Override
+    default boolean isArgumentYinElement() {
+        return getPublicView().isArgumentYinElement();
+    }
 }