Add BaseSchemaTreeStatementSupport.parseArgumentValue() 68/93468/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 29 Oct 2020 13:13:12 +0000 (14:13 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 29 Oct 2020 15:53:13 +0000 (16:53 +0100)
Almost all subclasses of BaseSchemaTreeStatementSupport do the same
thing for parseArgumentValue(). Centralize the default behaviour there,
while allowing input/output statements to do their own thing.

JIRA: YANGTOOLS-1154
Change-Id: I7a3daf3a9c90eefadc1cad8043af3a2e7b9065e0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 2ecfbbbba0d6add3664d998cbff940645bbb1428)

12 files changed:
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseSchemaTreeStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/action/ActionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/AbstractCaseStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/AbstractChoiceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/AbstractContainerStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/AbstractLeafListStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/AbstractListStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/AbstractRpcStatementSupport.java

index 023dc921c1491fa936ca5ab2b0bbb95f39aa3e3a..0d180264f33f6a662dfa01ed20069ce70658dc53 100644 (file)
@@ -12,7 +12,9 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 /**
  * Specialization of {@link BaseQNameStatementSupport} for stating the onStatementAdded method.
@@ -35,4 +37,9 @@ public abstract class BaseSchemaTreeStatementSupport<D extends DeclaredStatement
         stmt.coerceParentContext().addToNs(ChildSchemaNodeNamespace.class, stmt.coerceStatementArgument(), stmt);
     }
 
+    // Non-final because {@code input} and {@code output} are doing their own thing.
+    @Override
+    public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+        return StmtContextUtils.parseIdentifier(ctx, value);
+    }
 }
index 0e0ad7dbb24f87e5670900512d6eb68d731d1444..8fcd5c2c8e8a95cefffeedd85dd4388c02b4cd14 100644 (file)
@@ -56,11 +56,6 @@ public final class ActionStatementSupport extends
         return INSTANCE;
     }
 
-    @Override
-    public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     public void onFullDefinitionDeclared(final Mutable<QName, ActionStatement, ActionEffectiveStatement> stmt) {
         super.onFullDefinitionDeclared(stmt);
index 6df1db5001fb4b96141c83f893f734b78719c284..aeef09144637b45a11ab0b3c0335c64cc77d0dcb 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class AnydataStatementSupport
@@ -48,11 +47,6 @@ public final class AnydataStatementSupport
         return INSTANCE;
     }
 
-    @Override
-    public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected SubstatementValidator getSubstatementValidator() {
         return SUBSTATEMENT_VALIDATOR;
index 39ceab02da38abe9022ed696e51b2120857dddeb..00500eaf23d3f51d786d3bbfc92f72df1102a33e 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class AnyxmlStatementSupport
@@ -48,11 +47,6 @@ public final class AnyxmlStatementSupport
         return INSTANCE;
     }
 
-    @Override
-    public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected SubstatementValidator getSubstatementValidator() {
         return SUBSTATEMENT_VALIDATOR;
index 6b5881e9b3505a8dba99bd2031f7d4ed022eef59..d927160149dccf1dd8ad2668bc4b2876e36fac6f 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseImplicitStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 abstract class AbstractCaseStatementSupport
         extends BaseImplicitStatementSupport<CaseStatement, CaseEffectiveStatement> {
@@ -30,11 +29,6 @@ abstract class AbstractCaseStatementSupport
         super(YangStmtMapping.CASE);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected final CaseStatement createDeclared(final StmtContext<QName, CaseStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
index 35dc8d5132559a2f8ee17c03640bd024155a0c2e..9b95f1389ccde6b92245342c53b09442c81d500f 100644 (file)
@@ -30,7 +30,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ImplicitParentAwareStatem
 import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 abstract class AbstractChoiceStatementSupport
@@ -40,11 +39,6 @@ abstract class AbstractChoiceStatementSupport
         super(YangStmtMapping.CHOICE);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     public final Optional<StatementSupport<?, ?, ?>> getImplicitParentFor(final StatementDefinition stmtDef) {
         return YangValidationBundles.SUPPORTED_CASE_SHORTHANDS.contains(stmtDef) ? Optional.of(implictCase())
index ea952cf101afad489aff9a295c5520411a30d973..539645446f12a85741dcc54c129ce5a0cc5ccdbf 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 abstract class AbstractContainerStatementSupport
         extends BaseSchemaTreeStatementSupport<ContainerStatement, ContainerEffectiveStatement> {
@@ -30,11 +29,6 @@ abstract class AbstractContainerStatementSupport
         super(YangStmtMapping.CONTAINER);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?,?,?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected final ContainerStatement createDeclared(final StmtContext<QName, ContainerStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
index 567c5355da958d59467063dcbf6c96875ae3af22..0eb9f63f65e9a1a5e2e847ef06a99ec1fa40c6a4 100644 (file)
@@ -55,11 +55,6 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport<L
         return INSTANCE;
     }
 
-    @Override
-    public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx,value);
-    }
-
     @Override
     public void onFullDefinitionDeclared(final Mutable<QName, LeafStatement, LeafEffectiveStatement> ctx) {
         super.onFullDefinitionDeclared(ctx);
index c05f4a1db9dff1595c910c0b50443fffa2366da5..c5bfcc982fbf643e5f4f7d36ed55594aadc350b3 100644 (file)
@@ -29,7 +29,6 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStateme
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 abstract class AbstractLeafListStatementSupport
@@ -38,11 +37,6 @@ abstract class AbstractLeafListStatementSupport
         super(YangStmtMapping.LEAF_LIST);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected final LeafListStatement createDeclared(final StmtContext<QName, LeafListStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
index 680d9c866c41723f4070dd67d678a67b2610bf58..a3532cd6bb2caaea67b96b90cfe67142f727be3f 100644 (file)
@@ -39,7 +39,6 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,11 +53,6 @@ abstract class AbstractListStatementSupport extends
         super(YangStmtMapping.LIST);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected final ListStatement createDeclared(final StmtContext<QName, ListStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
index b9f86e85f43709327a6aaa62dced498d5508839d..1436ae350f2c0a6ef6c88a6d8aae2db5df77f753 100644 (file)
@@ -16,7 +16,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveState
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 abstract class AbstractNotificationStatementSupport
         extends BaseSchemaTreeStatementSupport<NotificationStatement, NotificationEffectiveStatement> {
@@ -24,11 +23,6 @@ abstract class AbstractNotificationStatementSupport
         super(YangStmtMapping.NOTIFICATION);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     protected final NotificationStatement createDeclared(final StmtContext<QName, NotificationStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
index 5bcf4b066c467417fffd0d8f59cdb900956cd329..3d1e3a650e31163f6ef3eff524f294929d0b3e29 100644 (file)
@@ -44,11 +44,6 @@ abstract class AbstractRpcStatementSupport extends BaseSchemaTreeStatementSuppor
         super(YangStmtMapping.RPC);
     }
 
-    @Override
-    public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return StmtContextUtils.parseIdentifier(ctx, value);
-    }
-
     @Override
     public final void onFullDefinitionDeclared(final Mutable<QName, RpcStatement, RpcEffectiveStatement> stmt) {
         super.onFullDefinitionDeclared(stmt);