Use Empty instead of Void for argument 21/95021/5
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 3 Feb 2021 19:49:08 +0000 (20:49 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 3 Feb 2021 21:58:07 +0000 (22:58 +0100)
@NonNull is an extremely important property. Using yang.common.Empty
instead of java.lang.Void allows us to ensure ModelStatement.argument()
is non-null.

This renders a number of utility methods completely superfluous, and
we end up removing them.

JIRA: YANGTOOLS-1220
Change-Id: I86c80dfd32d3a5f377effc62c00ad12c8ca61fd6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
80 files changed:
yang/openconfig-model-api/src/main/java/module-info.java
yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigHashedValueEffectiveStatement.java
yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigHashedValueStatement.java
yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java
yang/rfc6241-model-api/src/main/java/module-info.java
yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/GetFilterElementAttributesEffectiveStatement.java
yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/GetFilterElementAttributesStatement.java
yang/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesStatementSupport.java
yang/rfc6536-model-api/src/main/java/module-info.java
yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/DefaultDenyAllEffectiveStatement.java
yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/DefaultDenyAllStatement.java
yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/DefaultDenyWriteEffectiveStatement.java
yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/DefaultDenyWriteStatement.java
yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java
yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ArgumentStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AugmentStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BaseStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BelongsToStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BitStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContactStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DescriptionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DeviateStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DeviationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/EnumStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ErrorAppTagStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ErrorMessageStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/FeatureStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/GroupingStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IdentityStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IfFeatureStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ImportStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IncludeStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MaxElementsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MinElementsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModifierStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespacedEffectiveStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OperationDeclaredStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrganizationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PathStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PositionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PrefixStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PresenceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ReferenceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RefineStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/StatusStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SubmoduleStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypedefStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UniqueStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnitsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnknownStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnrecognizedEffectiveStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnrecognizedStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/WhenStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/YangVersionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/YinElementStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/AbstractKeyStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/AbstractOrderedByStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/AbstractStatusStatement.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractEmptyStatementSupport.java [moved from yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractVoidStatementSupport.java with 53% similarity]

index 7aaf20f1a24d516e1e31953fd4eb8e7d3ca7a6dc..f930e8e4eee0729219c2b8495f5fbdc1ef23ecd7 100644 (file)
@@ -9,6 +9,7 @@ module org.opendaylight.yangtools.openconfig.model.api {
     exports org.opendaylight.yangtools.openconfig.model.api;
 
     requires transitive org.opendaylight.yangtools.yang.model.api;
+    requires org.opendaylight.yangtools.yang.common;
 
     // Annotations
     requires static com.github.spotbugs.annotations;
index 5ee1197d6c0728f1d4485da97c2905ead9e50c2f..ad768b0267e429beb4980aa13087e39af9af8011 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.yangtools.openconfig.model.api;
 
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 
 /**
@@ -16,6 +17,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
  * @author Robert Varga
  */
 public interface OpenConfigHashedValueEffectiveStatement
-    extends EffectiveStatement<Void, OpenConfigHashedValueStatement> {
+    extends EffectiveStatement<Empty, OpenConfigHashedValueStatement> {
 
 }
index f96439a1802d513dfee6e730d8653f3a21a1cb7d..464aa0ffe6084de525cf8267a1bab03ed4617227 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.yangtools.openconfig.model.api;
 
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 
 /**
@@ -15,6 +16,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
  *
  * @author Robert Varga
  */
-public interface OpenConfigHashedValueStatement extends UnknownStatement<Void> {
+public interface OpenConfigHashedValueStatement extends UnknownStatement<Empty> {
 
 }
index ca8d0f17aaf38f21e80bbbedd22959c4ca6c3fed..d2003a185bbd62e6b8719fdc126043a89be88ad6 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,14 +21,14 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 abstract class AbstractHashedValueStatementSupport
-        extends AbstractVoidStatementSupport<OpenConfigHashedValueStatement, OpenConfigHashedValueEffectiveStatement> {
+        extends AbstractEmptyStatementSupport<OpenConfigHashedValueStatement, OpenConfigHashedValueEffectiveStatement> {
 
     private static final class Declared extends WithSubstatements implements OpenConfigHashedValueStatement {
         private final @NonNull StatementDefinition definition;
@@ -45,12 +46,12 @@ abstract class AbstractHashedValueStatementSupport
     }
 
     private static final class Effective
-            extends UnknownEffectiveStatementBase<Void, OpenConfigHashedValueStatement>
+            extends UnknownEffectiveStatementBase<Empty, OpenConfigHashedValueStatement>
             implements OpenConfigHashedValueEffectiveStatement {
         private final @NonNull StatementDefinition definition;
         private final @NonNull Object path;
 
-        Effective(final Current<Void, OpenConfigHashedValueStatement> stmt,
+        Effective(final Current<Empty, OpenConfigHashedValueStatement> stmt,
                 final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
             super(stmt, substatements);
             definition = stmt.publicDefinition();
@@ -89,20 +90,20 @@ abstract class AbstractHashedValueStatementSupport
 
     @Override
     protected final OpenConfigHashedValueStatement createDeclared(
-            final StmtContext<Void, OpenConfigHashedValueStatement, ?> ctx,
+            final StmtContext<Empty, OpenConfigHashedValueStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new Declared(getPublicView(), substatements);
     }
 
     @Override
     protected final OpenConfigHashedValueStatement createEmptyDeclared(
-            final StmtContext<Void, OpenConfigHashedValueStatement, ?> ctx) {
+            final StmtContext<Empty, OpenConfigHashedValueStatement, ?> ctx) {
         return createDeclared(ctx, ImmutableList.of());
     }
 
     @Override
     protected OpenConfigHashedValueEffectiveStatement createEffective(
-            final Current<Void, OpenConfigHashedValueStatement> stmt,
+            final Current<Empty, OpenConfigHashedValueStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         return new Effective(stmt, substatements);
     }
index a75803806b12c81a83199393cdbc2ed1631e0926..033edfc2d143a13af98f3f29f87bdca51ca8bf94 100644 (file)
@@ -11,4 +11,5 @@ module org.opendaylight.yangtools.rfc6241.model.api {
     exports org.opendaylight.yangtools.rfc6241.model.api;
 
     requires transitive org.opendaylight.yangtools.yang.model.api;
+    requires org.opendaylight.yangtools.yang.common;
 }
index 3c9cfac80121a348ec6097535223bb4b462f74af..c55c8948806ba111a41be6c612c6f6044ab790d8 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6241.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
@@ -17,7 +18,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
  */
 @Beta
 public interface GetFilterElementAttributesEffectiveStatement
-        extends EffectiveStatement<Void, GetFilterElementAttributesStatement> {
+        extends EffectiveStatement<Empty, GetFilterElementAttributesStatement> {
     @Override
     default StatementDefinition statementDefinition() {
         return NetconfStatements.GET_FILTER_ELEMENT_ATTRIBUTES;
index d69f200bf224432e65542146d11b22cf3364162d..6b6814dad89baf359f8ee83504974db5d23bead9 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6241.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 
@@ -16,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
  * <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
  */
 @Beta
-public interface GetFilterElementAttributesStatement extends UnknownStatement<Void> {
+public interface GetFilterElementAttributesStatement extends UnknownStatement<Empty> {
     @Override
     default StatementDefinition statementDefinition() {
         return NetconfStatements.GET_FILTER_ELEMENT_ATTRIBUTES;
index 2e403bd7f69e3b80f2758fa7a9b7378749e71c43..f7c8b07fd6a3e1dfdc803244f3fb1fef39ef3f19 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesEf
 import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesSchemaNode;
 import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
 import org.opendaylight.yangtools.rfc6241.model.api.NetconfStatements;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
@@ -22,7 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -32,7 +33,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Beta
-public final class GetFilterElementAttributesStatementSupport extends AbstractVoidStatementSupport<
+public final class GetFilterElementAttributesStatementSupport extends AbstractEmptyStatementSupport<
         GetFilterElementAttributesStatement, GetFilterElementAttributesEffectiveStatement> {
 
     private static final class Declared extends WithSubstatements implements GetFilterElementAttributesStatement {
@@ -44,11 +45,11 @@ public final class GetFilterElementAttributesStatementSupport extends AbstractVo
     }
 
     private static final class Effective
-            extends UnknownEffectiveStatementBase<Void, GetFilterElementAttributesStatement>
+            extends UnknownEffectiveStatementBase<Empty, GetFilterElementAttributesStatement>
             implements GetFilterElementAttributesEffectiveStatement, GetFilterElementAttributesSchemaNode {
         private final @NonNull Object path;
 
-        Effective(final Current<Void, GetFilterElementAttributesStatement> stmt,
+        Effective(final Current<Empty, GetFilterElementAttributesStatement> stmt,
                 final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
             super(stmt, substatements);
             path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
@@ -88,7 +89,7 @@ public final class GetFilterElementAttributesStatementSupport extends AbstractVo
     }
 
     @Override
-    public void onFullDefinitionDeclared(final Mutable<Void, GetFilterElementAttributesStatement,
+    public void onFullDefinitionDeclared(final Mutable<Empty, GetFilterElementAttributesStatement,
             GetFilterElementAttributesEffectiveStatement> stmt) {
         super.onFullDefinitionDeclared(stmt);
         stmt.setIsSupportedToBuildEffective(computeSupported(stmt));
@@ -101,20 +102,20 @@ public final class GetFilterElementAttributesStatementSupport extends AbstractVo
 
     @Override
     protected GetFilterElementAttributesStatement createDeclared(
-            final StmtContext<Void, GetFilterElementAttributesStatement, ?> ctx,
+            final StmtContext<Empty, GetFilterElementAttributesStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new Declared(substatements);
     }
 
     @Override
     protected GetFilterElementAttributesStatement createEmptyDeclared(
-            final StmtContext<Void, GetFilterElementAttributesStatement, ?> ctx) {
+            final StmtContext<Empty, GetFilterElementAttributesStatement, ?> ctx) {
         return Declared.EMPTY;
     }
 
     @Override
     protected GetFilterElementAttributesEffectiveStatement createEffective(
-            final Current<Void, GetFilterElementAttributesStatement> stmt,
+            final Current<Empty, GetFilterElementAttributesStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         return new Effective(stmt, substatements);
     }
index 8fa10ef96d386f7c9008fa02142c7994de011188..f94d46c86638cc2783b5ff99fcad4d9c8df71143 100644 (file)
@@ -11,4 +11,5 @@ module org.opendaylight.yangtools.rfc6536.model.api {
     exports org.opendaylight.yangtools.rfc6536.model.api;
 
     requires transitive org.opendaylight.yangtools.yang.model.api;
+    requires org.opendaylight.yangtools.yang.common;
 }
index f386bcc68bab5d058f1c72ae059b09d24ca30a92..6c54a847050a5bc18a8bfcd07e285dc7f84cf3e1 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6536.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
@@ -16,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
  * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
  */
 @Beta
-public interface DefaultDenyAllEffectiveStatement extends EffectiveStatement<Void, DefaultDenyAllStatement> {
+public interface DefaultDenyAllEffectiveStatement extends EffectiveStatement<Empty, DefaultDenyAllStatement> {
     @Override
     default StatementDefinition statementDefinition() {
         return NACMStatements.DEFAULT_DENY_ALL;
index 1be4602731f073143405a628194ae03c6184a8ce..75525de3e014e77d970c7bbf799c8cbd11e7f06f 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6536.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 
@@ -16,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
  * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
  */
 @Beta
-public interface DefaultDenyAllStatement extends UnknownStatement<Void> {
+public interface DefaultDenyAllStatement extends UnknownStatement<Empty> {
     @Override
     default StatementDefinition statementDefinition() {
         return NACMStatements.DEFAULT_DENY_ALL;
index 6e749fdfbe20328cc8db216fbebbdec3bc035e51..19cceea40e4626d60a6590da02d17d7abab1396f 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6536.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
@@ -16,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
  * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
  */
 @Beta
-public interface DefaultDenyWriteEffectiveStatement extends EffectiveStatement<Void, DefaultDenyWriteStatement> {
+public interface DefaultDenyWriteEffectiveStatement extends EffectiveStatement<Empty, DefaultDenyWriteStatement> {
     @Override
     default StatementDefinition statementDefinition() {
         return NACMStatements.DEFAULT_DENY_WRITE;
index 856dc8f34e25640089ae91c97c2decac34039310..df6769ad81bc22bf24221112f714f94e8f480799 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.rfc6536.model.api;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 
@@ -16,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
  * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
  */
 @Beta
-public interface DefaultDenyWriteStatement extends UnknownStatement<Void> {
+public interface DefaultDenyWriteStatement extends UnknownStatement<Empty> {
     @Override
     default StatementDefinition statementDefinition() {
         return NACMStatements.DEFAULT_DENY_WRITE;
index d46f33d7a20c41707fdb1e838a28bfcfb016c574..39b19eaaa0386ba5e0291b824b6d8aaafcedcedf 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllEffectiveState
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllSchemaNode;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
 import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,14 +21,14 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class DefaultDenyAllStatementSupport
-        extends AbstractVoidStatementSupport<DefaultDenyAllStatement, DefaultDenyAllEffectiveStatement> {
+        extends AbstractEmptyStatementSupport<DefaultDenyAllStatement, DefaultDenyAllEffectiveStatement> {
     private static final class Declared extends WithSubstatements implements DefaultDenyAllStatement {
         static final @NonNull Declared EMPTY = new Declared(ImmutableList.of());
 
@@ -36,11 +37,11 @@ public final class DefaultDenyAllStatementSupport
         }
     }
 
-    private static final class Effective extends UnknownEffectiveStatementBase<Void, DefaultDenyAllStatement>
+    private static final class Effective extends UnknownEffectiveStatementBase<Empty, DefaultDenyAllStatement>
             implements DefaultDenyAllEffectiveStatement, DefaultDenyAllSchemaNode {
         private final @NonNull Object path;
 
-        Effective(final Current<Void, DefaultDenyAllStatement> stmt,
+        Effective(final Current<Empty, DefaultDenyAllStatement> stmt,
                 final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
             super(stmt, substatements);
             path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
@@ -84,18 +85,18 @@ public final class DefaultDenyAllStatementSupport
     }
 
     @Override
-    protected DefaultDenyAllStatement createDeclared(final StmtContext<Void, DefaultDenyAllStatement, ?> ctx,
+    protected DefaultDenyAllStatement createDeclared(final StmtContext<Empty, DefaultDenyAllStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new Declared(substatements);
     }
 
     @Override
-    protected DefaultDenyAllStatement createEmptyDeclared(final StmtContext<Void, DefaultDenyAllStatement, ?> ctx) {
+    protected DefaultDenyAllStatement createEmptyDeclared(final StmtContext<Empty, DefaultDenyAllStatement, ?> ctx) {
         return Declared.EMPTY;
     }
 
     @Override
-    protected DefaultDenyAllEffectiveStatement createEffective(final Current<Void, DefaultDenyAllStatement> stmt,
+    protected DefaultDenyAllEffectiveStatement createEffective(final Current<Empty, DefaultDenyAllStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         return new Effective(stmt, substatements);
     }
index 7c580b01951e3d5ffcd076505e6990683f31e252..dd4fd2e22f73284ba7509db6dfc3871d8b91ef2f 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveSta
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
 import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,14 +21,14 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class DefaultDenyWriteStatementSupport
-        extends AbstractVoidStatementSupport<DefaultDenyWriteStatement, DefaultDenyWriteEffectiveStatement> {
+        extends AbstractEmptyStatementSupport<DefaultDenyWriteStatement, DefaultDenyWriteEffectiveStatement> {
     private static final class Declared extends WithSubstatements implements DefaultDenyWriteStatement {
         static final @NonNull Declared EMPTY = new Declared(ImmutableList.of());
 
@@ -36,11 +37,11 @@ public final class DefaultDenyWriteStatementSupport
         }
     }
 
-    private static final class Effective extends UnknownEffectiveStatementBase<Void, DefaultDenyWriteStatement>
+    private static final class Effective extends UnknownEffectiveStatementBase<Empty, DefaultDenyWriteStatement>
             implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode {
         private final @NonNull Object path;
 
-        Effective(final Current<Void, DefaultDenyWriteStatement> stmt,
+        Effective(final Current<Empty, DefaultDenyWriteStatement> stmt,
                 final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
             super(stmt, substatements);
             path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
@@ -84,18 +85,19 @@ public final class DefaultDenyWriteStatementSupport
     }
 
     @Override
-    protected DefaultDenyWriteStatement createDeclared(final StmtContext<Void, DefaultDenyWriteStatement, ?> ctx,
+    protected DefaultDenyWriteStatement createDeclared(final StmtContext<Empty, DefaultDenyWriteStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new Declared(substatements);
     }
 
     @Override
-    protected DefaultDenyWriteStatement createEmptyDeclared(final StmtContext<Void, DefaultDenyWriteStatement, ?> ctx) {
+    protected DefaultDenyWriteStatement createEmptyDeclared(
+            final StmtContext<Empty, DefaultDenyWriteStatement, ?> ctx) {
         return Declared.EMPTY;
     }
 
     @Override
-    protected DefaultDenyWriteEffectiveStatement createEffective(final Current<Void, DefaultDenyWriteStatement> stmt,
+    protected DefaultDenyWriteEffectiveStatement createEffective(final Current<Empty, DefaultDenyWriteStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         return new Effective(stmt, substatements);
     }
index bff2296f6933f1c841d2a5efcbb9fef652f2f5dd..fe8d8b2522299bdc586ae654ec6915c863444ec0 100644 (file)
@@ -14,11 +14,12 @@ import java.util.Optional;
 import java.util.stream.Stream;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.Empty;
 
 /**
  * Effective model statement which should be used to derive application behaviour.
  *
- * @param <A> Argument type ({@link Void} if statement does not have argument.)
+ * @param <A> Argument type ({@link Empty} if statement does not have argument.)
  * @param <D> Class representing declared version of this statement.
  */
 public interface EffectiveStatement<A, D extends DeclaredStatement<A>> extends ModelStatement<A> {
index 0adbc6aba5976f8dd73ad7a3e5f31328bbfbf4d2..36aacd7998684969a656bf220c201c2ac7af3f3e 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.yangtools.yang.model.api.meta;
 
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.Empty;
 
 /**
  * Model statement. There are two base types of model statements:
@@ -25,7 +26,7 @@ import org.eclipse.jdt.annotation.NonNull;
  * </li>
  * </ul>
  *
- * @param <A> Argument type ({@link Void} if statement does not have argument.)
+ * @param <A> Argument type ({@link Empty} if statement does not have argument.)
  */
 public interface ModelStatement<A> {
     /**
@@ -38,9 +39,9 @@ public interface ModelStatement<A> {
     /**
      * Returns statement argument.
      *
-     * @return statement argument or null if statement does not have argument.
+     * @return statement argument.
      */
-    A argument();
+    @NonNull A argument();
 
     /**
      * Returns statement source, which denotes if statement was
index 3de58eabef4c5507695848c2d79ed2eff9f888b0..39b6d8252c43bbb4e6b2a6b3402b79718df1ce31 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
@@ -24,11 +21,6 @@ public interface ArgumentStatement extends DeclaredStatement<QName> {
         return YangStmtMapping.ARGUMENT;
     }
 
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @Nullable YinElementStatement getYinElement() {
         final Optional<YinElementStatement> opt = findFirstDeclaredSubstatement(YinElementStatement.class);
         return opt.isPresent() ? opt.get() : null;
index 2084abb95256fab3a8fe62ceee1bf4461c97fa19..b502b161d27135a420138496b66b93dafc9a01db 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
@@ -25,11 +23,7 @@ public interface AugmentStatement extends WithStatus<SchemaNodeIdentifier>,
         return YangStmtMapping.AUGMENT;
     }
 
-    default @NonNull SchemaNodeIdentifier getTargetNode() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
+    // FIXME: 7.0.0: determine the utility of this method
     default @NonNull Collection<? extends CaseStatement> getCases() {
         return declaredSubstatements(CaseStatement.class);
     }
index 0ca3aa558ef8d2e51c6873f1fad5b41da2295ce3..33d19ad00a36d9d76870d86fb14704a86e175763 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,9 +17,4 @@ public interface BaseStatement extends DeclaredStatement<QName> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.BASE;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 073bab840ad519c98444582d54d4433d16b5d357..deea2ef175b1230c00dae9c64d08bb7c25c973f4 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,11 +18,6 @@ public interface BelongsToStatement extends DeclaredStatement<String> {
         return YangStmtMapping.BELONGS_TO;
     }
 
-    default @NonNull String getModule() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @NonNull PrefixStatement getPrefix() {
         return findFirstDeclaredSubstatement(PrefixStatement.class).get();
     }
index 99c62694b8c4d0262aa565893f00cec9f41683ea..781c10e0171b0382cb7477fc69191292c415da48 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -22,11 +19,6 @@ public interface BitStatement extends DocumentedDeclaredStatement.WithStatus<Str
         return YangStmtMapping.BIT;
     }
 
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @Nullable PositionStatement getPosition() {
         final Optional<PositionStatement> opt = findFirstDeclaredSubstatement(PositionStatement.class);
         return opt.isPresent() ? opt.get() : null;
index 389b9c71f03cb4bd306675180b5399279578a7b5..2b0f99ac68ce5274483f149499ad71b9ad7d0dd0 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -20,9 +17,4 @@ public interface CaseStatement extends DocumentedDeclaredStatement.WithStatus<QN
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.CASE;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 9a320f7bf09ca0a3fd0a655786358be119e3026e..f8f8d2815438fd27ea4355bd8ad1625d2c99ee9e 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface ContactStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.CONTACT;
     }
-
-    default @NonNull String getText() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
 }
index e66018d53dd97198ef808a1610acbad801b0d9de..7384c77078d5e67edbea4a9c38e9efb7ba9cbe91 100644 (file)
@@ -7,15 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 
 /**
- * Statement that defines new data nodes.
- * One of container, leaf, leaf-list, list, choice, case,
- * augment, uses, anyxml and anydata.
+ * Statement that defines new data nodes. One of container, leaf, leaf-list, list, choice, case, augment, uses, anyxml
+ * and anydata.
  *
  * <p>
  * Defined in: <a href="https://tools.ietf.org/html/rfc6020#section-3">RFC6020, Section 3</a>
@@ -23,8 +19,5 @@ import org.opendaylight.yangtools.yang.common.QName;
 @Rfc6020AbnfRule("data-def-stmt")
 public interface DataDefinitionStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
         WhenStatementAwareDeclaredStatement<QName> {
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
+
 }
index d90bd75dd0256d075bf8b981e00349821af2bfb2..b317f5d33d6d6d82cc5d39ad0918b393a7de864e 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface DefaultStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.DEFAULT;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 611cd4e0c93c5787c63b743536a18f1c61103bb8..24b9ab25355d8af167c090b61ac92f89d38abed1 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,10 +16,5 @@ public interface DescriptionStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.DESCRIPTION;
     }
-
-    default @NonNull String getText() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
 
index 719eabbc5d2a912e930848a368df04bf210bfad3..59303914250107042321a374609f2e444fc66822 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,9 +17,4 @@ public interface DeviateStatement extends DeclaredStatement<DeviateKind> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.DEVIATE;
     }
-
-    default @NonNull DeviateKind getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 1369240c47e8e48fbc4732df8199e03fa1281a76..19276d8b519bf62e2ffa2f9135051c595916c6fc 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
@@ -21,11 +19,7 @@ public interface DeviationStatement extends DocumentedDeclaredStatement<Absolute
         return YangStmtMapping.DEVIATION;
     }
 
-    default @NonNull Absolute getTargetNode() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
+    // FIXME: 7.0.0: evaluate usefulness of this
     default @NonNull Collection<? extends DeviateStatement> getDeviateStatements() {
         return declaredSubstatements(DeviateStatement.class);
     }
index 08547d33316ddf81e70ddd2b92ae2a90403bb341..309c56d579fe1e070be7aba2f0d7d2544d6bbdf1 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -22,11 +19,6 @@ public interface EnumStatement extends DocumentedDeclaredStatement.WithStatus<St
         return YangStmtMapping.ENUM;
     }
 
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @Nullable ValueStatement getValue() {
         final Optional<ValueStatement> opt = findFirstDeclaredSubstatement(ValueStatement.class);
         return opt.isPresent() ? opt.get() : null;
index 23dca9fcb567724fbc19131843a32e29181c4ded..0d370a2177c86ad641c175ce36595009fe6aeb25 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,10 +16,5 @@ public interface ErrorAppTagStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.ERROR_APP_TAG;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
 
index fd49abcae22d22231557b780c7772538841efc73..9d1ff36a61db221fe11eef2a7b0b7ff76ebb12ed 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,10 +16,5 @@ public interface ErrorMessageStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.ERROR_MESSAGE;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
 
index b485cb317f15e61aff383aecc444b80179bf1c61..1c5c44f9569a9525b6a66ca70042cdd628f8f392 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -20,9 +17,4 @@ public interface FeatureStatement extends DocumentedDeclaredStatement.WithStatus
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.FEATURE;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 4bde14c318bdb250a6cb428f74fe10ee8051c367..c09d8d7f189c0a967d07f2bf2684ab8679af11a9 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -21,9 +18,4 @@ public interface GroupingStatement extends DocumentedDeclaredStatement.WithStatu
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.GROUPING;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 7a2ff3c1c23d46b8f13d7caac04773133bad8733..c4c31f0b9d9ff65949a481923d21addd665810f0 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -22,11 +20,6 @@ public interface IdentityStatement extends DocumentedDeclaredStatement.WithStatu
         return YangStmtMapping.IDENTITY;
     }
 
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     /**
      * Returns the base identities of this identity.
      *
index 797cd2e3b8e88d9b6a3a539449cb97b764682559..d090ceb3ae733ec652e64f7cf21f6d4bf8fb3e5d 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
@@ -32,8 +30,8 @@ public interface IfFeatureStatement extends DeclaredStatement<IfFeatureExpr> {
      * @return Predicate on a collection of QNames against which to evaluate
      */
     @Beta
+    // FIXME: YANGTOOLS-908: remove this method
     default @NonNull IfFeatureExpr getIfFeaturePredicate() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
+        return argument();
     }
 }
index 68f6fc6c62100cf2c8b0a49bec20926aab6f1e89..50822ffa07f4e3ae48175ed2136ed2367601ecfc 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
@@ -21,11 +19,6 @@ public interface ImportStatement extends DocumentedDeclaredStatement<String> {
         return YangStmtMapping.IMPORT;
     }
 
-    default @NonNull String getModule() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
-
     default @NonNull PrefixStatement getPrefix() {
         return findFirstDeclaredSubstatement(PrefixStatement.class).get();
     }
index 05e4196f8fe13b88b4b1cd65488a2cf8d6158852..43dc464c78c94ae9da45afa4036876764cebe94e 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -21,11 +18,6 @@ public interface IncludeStatement extends DocumentedDeclaredStatement<String> {
         return YangStmtMapping.INCLUDE;
     }
 
-    default @NonNull String getModule() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @Nullable RevisionDateStatement getRevisionDate() {
         final Optional<RevisionDateStatement> opt = findFirstDeclaredSubstatement(RevisionDateStatement.class);
         return opt.isPresent() ? opt.get() : null;
index 00b340afbbe223ef8c388159e40cc6651340fee5..fafd675813a8afa7fb445dcb1f5b3d2b29e43208 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -20,8 +17,7 @@ public interface MandatoryStatement extends DeclaredStatement<Boolean> {
         return YangStmtMapping.MANDATORY;
     }
 
-    default @NonNull Boolean getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
+    default boolean getValue() {
+        return argument();
     }
 }
index 9fe75c4f73901f32a3b261f513ede3b03a1d4505..30d2c349fa755f8f72a4d088debbccb846f96ca7 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface MaxElementsStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.MAX_ELEMENTS;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 20c50fa96f63bfc76c214295e4bd0435893c29b2..169291cbb45c0dcc5f3bb0e63a3fdc53f287ce2a 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface MinElementsStatement extends DeclaredStatement<Integer> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.MIN_ELEMENTS;
     }
-
-    default @NonNull Integer getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 3941b55e5853229f48e86223f657e5e5701d123f..78e50aa5c01868b40165162238d08ecb6922d832 100644 (file)
@@ -8,10 +8,7 @@
 
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import com.google.common.annotations.Beta;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -31,9 +28,4 @@ public interface ModifierStatement extends DeclaredStatement<ModifierKind> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.MODIFIER;
     }
-
-    default @NonNull ModifierKind getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index e9ee57446b082337d07405bd2320325ea8e4ac13..bdfbe66f6ae92239a04cb1980a0bc46cfdfe064d 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -22,11 +19,6 @@ public interface ModuleStatement extends MetaDeclaredStatement<UnqualifiedQName>
         return YangStmtMapping.MODULE;
     }
 
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
-
     @Override
     default YangVersionStatement getYangVersion() {
         final Optional<YangVersionStatement> opt = findFirstDeclaredSubstatement(YangVersionStatement.class);
index 926573feef1735663bdd872bdd310ead2ebc4ea8..18af2e8726f12595b31c1dc96c72e59209398426 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
@@ -19,9 +16,4 @@ public interface MustStatement extends ConstrainedDocumentedDeclaredStatement<Qu
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.MUST;
     }
-
-    default @NonNull QualifiedBound getCondition() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index d94ae36d4a24c50a8765a8ff5a26d3270825977b..01bb0f064d3fb1d133c7d2de43f9e67916030dbf 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.net.URI;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -20,9 +17,4 @@ public interface NamespaceStatement extends DeclaredStatement<URI> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.NAMESPACE;
     }
-
-    default @NonNull URI getUri() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 3fb7ee28fd7b54f055bd99ae4250f78702949c52..c3df735c0fafc6fed49fb65cfeefdb1cdf582cca 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -28,6 +26,6 @@ public interface NamespacedEffectiveStatement<D extends DeclaredStatement<QName>
 
     @Override
     default QName getIdentifier() {
-        return verifyNotNull(argument());
+        return argument();
     }
 }
index 4e9d061ef9a565d022a9c94d5c4f3d4712178c87..5cb43f886fed84e8e807f99cc2823719a6c7751d 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -21,9 +18,4 @@ public interface NotificationStatement extends DocumentedDeclaredStatement.WithS
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.NOTIFICATION;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index c847992e8a6a72aea0fe0384e01e34c624c49f06..32a4ed8c4a224f76574a2a55eaeef42a9080409c 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import com.google.common.annotations.Beta;
 import java.util.Collection;
 import java.util.Optional;
@@ -21,11 +19,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 @Beta
 public interface OperationDeclaredStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
         IfFeatureAwareDeclaredStatement<QName> {
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     default @NonNull Optional<InputStatement> getInput() {
         return findFirstDeclaredSubstatement(InputStatement.class);
     }
index 9eccb0e47b509c2b3b060fdce43d2a522e7b3c12..212b9879a41d4c07e34fe371ef0eec648fb68f44 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Ordering;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,9 +17,4 @@ public interface OrderedByStatement extends DeclaredStatement<Ordering> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.ORDERED_BY;
     }
-
-    default @NonNull Ordering getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index e1f0e25a1229251d22c273df394370883f284b6f..7359c0754dd262e9174f0589e0e267a29b4312dd 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface OrganizationStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.ORGANIZATION;
     }
-
-    default @NonNull String getText() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index bfec882c9ce143f4b717fa01413b49232b181d3d..8e4779c348e25ac96fb753588408af686571c5a4 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.PathExpression;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,9 +17,4 @@ public interface PathStatement extends DeclaredStatement<PathExpression> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.PATH;
     }
-
-    default @NonNull PathExpression getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 02749091f4353a533a9e71c5fcb21eb06159ecd1..88776d3a80a5c5bf1df22c18614dd48f11756c3b 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -19,9 +17,4 @@ public interface PositionStatement extends DeclaredStatement<Uint32> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.POSITION;
     }
-
-    default Uint32 getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 96a3c201b5b41ce5423f47c3c3a9611678a0e9bb..306b2071e6cfc93d2c9cf1d87615b353ebd36b4d 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface PrefixStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.PREFIX;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
 }
index fa2ad2143e7952b179d346a9cdc99f7b970010f0..c75574dcc73d714d4f29dd2a76ad47e6bbda5d05 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface PresenceStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.PRESENCE;
     }
-
-    default @NonNull String getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 1e2d0c312abc788a1b882c5ade979669ff3ac497..3e44c892a9ef31739cc5d7df5d904e0e60d82ccf 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface ReferenceStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.REFERENCE;
     }
-
-    default @NonNull String getText() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
 }
index 2297936292ec9c218665798209408e2a25864c52..f3696cfb8e0e664c704a305b06ef3f75b739cbe1 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Collection;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -26,11 +24,6 @@ public interface RefineStatement extends ConfigStatementAwareDeclaredStatement<D
         return YangStmtMapping.REFINE;
     }
 
-    default @NonNull String getTargetNode() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
-
     default @NonNull Collection<? extends DefaultStatement> getDefaults() {
         return declaredSubstatements(DefaultStatement.class);
     }
index 1e53d113c3029d97b40cc1735e925c7d28c06de4..88e377c1e43e2f5f059fbf642822e52cf265ee95 100644 (file)
@@ -17,8 +17,4 @@ public interface RevisionDateStatement extends DeclaredStatement<Revision> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.REVISION_DATE;
     }
-
-    default Revision getDate() {
-        return argument();
-    }
 }
index 84e26b46d9cffe2ddb90842ebee01c8108e87e71..7fcbf873aa2c88eea3c51207633233a0a84ff4a5 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface RevisionStatement extends DocumentedDeclaredStatement<Revision>
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.REVISION;
     }
-
-    default @NonNull Revision getDate() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 31fb566fce8aacd906ad4da6c6e35a218f9a89a8..d42fc07d21c7774cda0dfd3373b280c3e2ec0686 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,9 +17,4 @@ public interface StatusStatement extends DeclaredStatement<Status> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.STATUS;
     }
-
-    default @NonNull Status getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index e8fbb918be655945cc386d70c32ec8f7c14c807a..4672f2d13935a7cb6156f5ab0e640087d505c9ed 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
@@ -23,11 +21,6 @@ public interface SubmoduleStatement extends MetaDeclaredStatement<UnqualifiedQNa
         return YangStmtMapping.SUBMODULE;
     }
 
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(rawArgument());
-    }
-
     default @Nullable YangVersionStatement getYangVersion() {
         final Optional<YangVersionStatement> opt = findFirstDeclaredSubstatement(YangVersionStatement.class);
         return opt.isPresent() ? opt.get() : null;
index 6eb2cd69785dcbcd99f8e876c08a573b9c9bf4fe..73559549f25ee984e9a6044c04006065af61e5d4 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Collection;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -24,11 +22,6 @@ public interface TypeStatement extends DeclaredStatement<String> {
         return YangStmtMapping.TYPE;
     }
 
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
-
     @Rfc6020AbnfRule("numerical-restrictions")
     // FIXME: 7.0.0: this interface does not have an implementation
     interface NumericalRestrictions extends TypeStatement {
index ab2896c37257a05845a689d33a4c85235295faf2..56787614f723d593e0fd7c7438a9a660229cda52 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -20,9 +17,4 @@ public interface TypedefStatement extends DocumentedDeclaredStatement.WithStatus
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.TYPEDEF;
     }
-
-    default @NonNull QName getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 165f413a5c61b6b3834d51f6692eb414c5092feb..3bd55de4b48ebb2a846555916dfaafbf01245570 100644 (file)
@@ -7,23 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
 import java.util.Set;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 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.SchemaNodeIdentifier.Descendant;
 
 public interface UniqueStatement extends DeclaredStatement<Set<SchemaNodeIdentifier.Descendant>> {
     @Override
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.UNIQUE;
     }
-
-    default Set<Descendant> getTag() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
-
index 4aee8c9347d19cf7be1b7d1e0a7555cd46159fe8..1dfab9484d768416c1af7e3dc22cdd5c58bbc443 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -19,9 +16,4 @@ public interface UnitsStatement extends DeclaredStatement<String> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.UNITS;
     }
-
-    default @NonNull String getName() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index d4d326d8df4480a12ed9b1b06f3cb11368aabe19..293b7d4f323637706d0f8290e4241a941e8ae087 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 /**
@@ -15,10 +15,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
  * interfaces in this package. This interface is meant to be specialized by external semantic plugins, such that they
  * are properly anchored in the metamodel.
  *
- * @param <A> Argument type ({@link Void} if statement does not have argument.)
+ * @param <A> Argument type ({@link Empty} if statement does not have argument.)
  */
 public interface UnknownStatement<A> extends DeclaredStatement<A> {
-    default @Nullable A getArgument() {
-        return argument();
-    }
+
 }
index 0a0af9f02dc196ac2786a44bbb041476a541884f..29480585e02cf8c1c401d6639691608dc5526855 100644 (file)
@@ -11,6 +11,6 @@ import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 
 @Beta
-public interface UnrecognizedEffectiveStatement extends EffectiveStatement<String, UnrecognizedStatement> {
+public interface UnrecognizedEffectiveStatement extends EffectiveStatement<Object, UnrecognizedStatement> {
 
 }
index f14c0ec5b4f6c372904336d2ce6c8931e76edd05..6c98f990e96b3b00778bb163f8259df730be1e05 100644 (file)
@@ -10,12 +10,11 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import com.google.common.annotations.Beta;
 
 /**
- * Common interface for unrecognized unknown statements. UnrecognizedStatement
- * is an instance of a statement defined via an 'extension' statement, for which
- * the parser did not have semantic support (in which case the statement would
+ * Common interface for unrecognized unknown statements. UnrecognizedStatement is an instance of a statement defined via
+ *  an 'extension' statement, for which the parser did not have semantic support (in which case the statement would
  * result in a corresponding semantic subclass of {@link UnknownStatement}).
  */
 @Beta
-public interface UnrecognizedStatement extends UnknownStatement<String> {
+public interface UnrecognizedStatement extends UnknownStatement<Object> {
 
 }
index c17a58f8b693c80fbadad65d8d5b3afe9188ef24..7807a200d4dce56d38bc3b01140498e1fb7dfa63 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
@@ -19,9 +16,4 @@ public interface WhenStatement extends DocumentedDeclaredStatement<QualifiedBoun
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.WHEN;
     }
-
-    default @NonNull QualifiedBound getCondition() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
index 8d1cf10097f90578b0f7b8489221a6a1fca8de8c..97be7a13624d0abc1b19ab8ff1915ba5137fb7f6 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import static com.google.common.base.Verify.verifyNotNull;
-
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -20,10 +17,5 @@ public interface YangVersionStatement extends DeclaredStatement<YangVersion> {
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.YANG_VERSION;
     }
-
-    default @NonNull YangVersion getValue() {
-        // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
-        return verifyNotNull(argument());
-    }
 }
 
index 883e92c18e2e23f2c5312a8ad69acf99c4a52dbf..b1881a5005d105cbf7f4b2fc62870a07390e378f 100644 (file)
@@ -18,6 +18,6 @@ public interface YinElementStatement extends DeclaredStatement<Boolean> {
     }
 
     default boolean getValue() {
-        return argument().booleanValue();
+        return argument();
     }
 }
index 1b149836b4c26b966987dd9d10d7c405a1ac061f..b9fc1ce5c159c35ac68b28380eba39ca5eada988 100644 (file)
@@ -7,12 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
+import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
@@ -54,6 +56,21 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
     }
 
     public abstract static class WithRawArgument<A> extends AbstractDeclaredStatement<A> {
+        public abstract static class WithSubstatements<A> extends WithRawArgument<A> {
+            private final @NonNull Object substatements;
+
+            protected WithSubstatements(final String rawArgument,
+                    final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+                super(rawArgument);
+                this.substatements = maskList(substatements);
+            }
+
+            @Override
+            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+                return unmaskList(substatements);
+            }
+        }
+
         private final String rawArgument;
 
         protected WithRawArgument(final String rawArgument) {
@@ -89,7 +106,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
         }
 
         @Override
-        public final @NonNull QName argument() {
+        public final QName argument() {
             return argument;
         }
 
@@ -116,12 +133,12 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
         }
 
         protected WithRawStringArgument(final String rawArgument) {
-            super(rawArgument);
+            super(verifyNotNull(rawArgument));
         }
 
         @Override
         public final String argument() {
-            return rawArgument();
+            return verifyNotNull(rawArgument());
         }
     }
 
@@ -141,11 +158,11 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
         }
 
-        private final A argument;
+        private final @NonNull A argument;
 
         protected WithArgument(final String rawArgument, final A argument) {
             super(rawArgument);
-            this.argument = argument;
+            this.argument = requireNonNull(argument);
         }
 
         @Override
@@ -172,12 +189,12 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
 
         private final @NonNull A argument;
 
-        protected ArgumentToString(final A argument) {
+        protected ArgumentToString(final @NonNull A argument) {
             this.argument = requireNonNull(argument);
         }
 
         @Override
-        public final @NonNull A argument() {
+        public final A argument() {
             return argument;
         }
 
@@ -187,7 +204,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
         }
     }
 
-    public abstract static class WithoutArgument extends AbstractDeclaredStatement<Void> {
+    public abstract static class WithoutArgument extends AbstractDeclaredStatement<Empty> {
         public abstract static class WithSubstatements extends WithoutArgument {
             private final @NonNull Object substatements;
 
@@ -202,8 +219,8 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
         }
 
         @Override
-        public final Void argument() {
-            return null;
+        public final Empty argument() {
+            return Empty.getInstance();
         }
 
         @Override
index 3020a74172b92cb39b29c7dcfec33085b7cad285..7244fd8b475ad0c487f3e7b1f048300ae5130154 100644 (file)
@@ -24,14 +24,14 @@ import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-final class UnrecognizedEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, UnrecognizedStatement>
+final class UnrecognizedEffectiveStatementImpl extends UnknownEffectiveStatementBase<Object, UnrecognizedStatement>
         implements UnrecognizedEffectiveStatement {
     private static final Logger LOG = LoggerFactory.getLogger(UnrecognizedEffectiveStatementImpl.class);
 
     private final QName maybeQNameArgument;
     private final @Nullable SchemaPath path;
 
-    UnrecognizedEffectiveStatementImpl(final Current<String, UnrecognizedStatement> stmt,
+    UnrecognizedEffectiveStatementImpl(final Current<Object, UnrecognizedStatement> stmt,
             final @NonNull ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName qnameArgument) {
         super(stmt, substatements);
         this.maybeQNameArgument = qnameArgument != null ? qnameArgument : getNodeType();
index 9c870874d149b433078593eeed5935352f6b9adf..bcf60212588970e492d0aefa4eed4caf6a18fc60 100644 (file)
@@ -11,12 +11,13 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.Empty;
 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.UnrecognizedStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithRawArgument.WithSubstatements;
 
-final class UnrecognizedStatementImpl extends WithSubstatements implements UnrecognizedStatement {
+final class UnrecognizedStatementImpl extends WithSubstatements<Object> implements UnrecognizedStatement {
     private final @NonNull StatementDefinition definition;
 
     UnrecognizedStatementImpl(final String rawArgument, final @NonNull StatementDefinition statementDefinition,
@@ -29,4 +30,10 @@ final class UnrecognizedStatementImpl extends WithSubstatements implements Unrec
     public StatementDefinition statementDefinition() {
         return definition;
     }
+
+    @Override
+    public Object argument() {
+        final String raw = rawArgument();
+        return raw != null ? raw : Empty.getInstance();
+    }
 }
index da8eeab28f3d091af1cf3f9e3d4f13fc2e9b419a..87237df8a6e72b30e7035ea624a37f88fd3d7911 100644 (file)
@@ -29,7 +29,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 // FIXME: YANGTOOLS-1196: remove this class
 @Deprecated
 final class UnrecognizedStatementSupport
-        extends AbstractStatementSupport<String, UnrecognizedStatement, UnrecognizedEffectiveStatement> {
+        extends AbstractStatementSupport<Object, UnrecognizedStatement, UnrecognizedEffectiveStatement> {
     UnrecognizedStatementSupport(final StatementDefinition publicDefinition) {
         super(publicDefinition, StatementPolicy.alwaysCopyDeclared());
     }
@@ -62,18 +62,18 @@ final class UnrecognizedStatementSupport
     }
 
     @Override
-    protected UnrecognizedStatement createDeclared(final StmtContext<String, UnrecognizedStatement, ?> ctx,
+    protected UnrecognizedStatement createDeclared(final StmtContext<Object, UnrecognizedStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new UnrecognizedStatementImpl(ctx.rawArgument(), ctx.publicDefinition(), substatements);
     }
 
     @Override
-    protected UnrecognizedStatement createEmptyDeclared(final StmtContext<String, UnrecognizedStatement, ?> ctx) {
+    protected UnrecognizedStatement createEmptyDeclared(final StmtContext<Object, UnrecognizedStatement, ?> ctx) {
         return createDeclared(ctx, ImmutableList.of());
     }
 
     @Override
-    protected UnrecognizedEffectiveStatement createEffective(final Current<String, UnrecognizedStatement> stmt,
+    protected UnrecognizedEffectiveStatement createEffective(final Current<Object, UnrecognizedStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         // FIXME: Remove following section after fixing 4380
         final UnknownSchemaNode original = (UnknownSchemaNode) stmt.original();
@@ -81,8 +81,8 @@ final class UnrecognizedStatementSupport
             original == null ? qnameFromArgument(stmt) : original.getQName());
     }
 
-    private static QName qnameFromArgument(final Current<String, UnrecognizedStatement> stmt) {
-        final String value = stmt.argument();
+    private static QName qnameFromArgument(final Current<Object, UnrecognizedStatement> stmt) {
+        final String value = stmt.rawArgument();
         if (value == null || value.isEmpty()) {
             return stmt.publicDefinition().getStatementName();
         }
index 83864f3bb39f95bb8899dd7b87edc0b41cdcffac..45ee9c3f2a78f2907d41de33cef7cf7b1ce9dfe8 100644 (file)
@@ -50,7 +50,7 @@ final class ImportEffectiveStatementImpl extends WithSubstatements<String, Impor
 
     @Override
     public String getPrefix() {
-        return getDeclared().getPrefix().getValue();
+        return getDeclared().getPrefix().argument();
     }
 
     @Override
index 89d758ce31164fb43f3e6bb9ecdfd0c0460504ce..fa77a1ead17d77149646743e0ef425875fda88f3 100644 (file)
@@ -22,7 +22,7 @@ abstract class AbstractKeyStatement extends WithRawArgument<Set<QName>> implemen
     }
 
     @Override
-    public final @NonNull Set<QName> argument() {
+    public final Set<QName> argument() {
         return KeyStatementSupport.unmaskSet(argument);
     }
 }
index a0a5e63753011f9a6fbd633a1b691f0044cc1f09..b6749e062f59baf4fe4fffb92aec2621a5a375e9 100644 (file)
@@ -23,7 +23,7 @@ abstract class AbstractOrderedByStatement extends AbstractDeclaredStatement<Orde
     }
 
     @Override
-    public final @NonNull Ordering argument() {
+    public final Ordering argument() {
         return argument;
     }
 
index 750c6bfd2b40e490fe32c4a310655f84c04ce7b5..3a79c335641838e1f71cf75706a5e8e31e721a82 100644 (file)
@@ -22,7 +22,7 @@ abstract class AbstractStatusStatement extends AbstractDeclaredStatement<Status>
     }
 
     @Override
-    public final @NonNull Status argument() {
+    public final Status argument() {
         return argument;
     }
 
index 6c2be1ff333ee7ba13542e07faed8fee1f664369..12ad6db7d0a4df904518e490d23d48953af44e1e 100644 (file)
@@ -86,11 +86,11 @@ public class DeclaredStatementsTest {
         assertNotNull(anyxmlSchemaNode);
         final AnyxmlStatement anyxmlStatement = ((AnyxmlEffectiveStatement) anyxmlSchemaNode).getDeclared();
 
-        final QName name = anyxmlStatement.getName();
+        final QName name = anyxmlStatement.argument();
         assertNotNull(name);
 
         final WhenStatement whenStatement = anyxmlStatement.getWhenStatement().get();
-        assertNotNull(whenStatement.getCondition());
+        assertNotNull(whenStatement.argument());
         final DescriptionStatement whenStatementDescription = whenStatement.getDescription().get();
         assertTrue(whenStatement.getReference().isPresent());
 
@@ -104,7 +104,7 @@ public class DeclaredStatementsTest {
         assertNotNull(mustStatements);
         assertEquals(1, mustStatements.size());
         final MustStatement mustStatement = mustStatements.iterator().next();
-        assertNotNull(mustStatement.getCondition());
+        assertNotNull(mustStatement.argument());
         assertTrue(mustStatement.getErrorAppTagStatement().isPresent());
         assertTrue(mustStatement.getErrorMessageStatement().isPresent());
         assertTrue(mustStatement.getDescription().isPresent());
@@ -114,14 +114,14 @@ public class DeclaredStatementsTest {
         assertFalse(configStatement.getValue());
 
         final StatusStatement statusStatement = anyxmlStatement.getStatus().get();
-        final Status status = statusStatement.getValue();
+        final Status status = statusStatement.argument();
         assertNotNull(status);
 
         final DescriptionStatement descriptionStatement = anyxmlStatement.getDescription().get();
-        assertEquals("anyxml description", descriptionStatement.getText());
+        assertEquals("anyxml description", descriptionStatement.argument());
 
         final ReferenceStatement referenceStatement = anyxmlStatement.getReference().get();
-        assertEquals("anyxml reference", referenceStatement.getText());
+        assertEquals("anyxml reference", referenceStatement.argument());
 
         assertTrue(anyxmlStatement.getMandatory().isPresent());
     }
@@ -142,11 +142,11 @@ public class DeclaredStatementsTest {
         assertNotNull(choiceSchemaNode);
         final ChoiceStatement choiceStatement = ((ChoiceEffectiveStatement) choiceSchemaNode).getDeclared();
 
-        final QName name = choiceStatement.getName();
+        final QName name = choiceStatement.argument();
         assertNotNull(name);
 
         final DefaultStatement defaultStatement = choiceStatement.getDefault().get();
-        assertEquals("case-two", defaultStatement.getValue());
+        assertEquals("case-two", defaultStatement.argument());
 
         assertTrue(choiceStatement.getConfig().isPresent());
         assertTrue(choiceStatement.getMandatory().isPresent());
@@ -155,7 +155,7 @@ public class DeclaredStatementsTest {
         assertNotNull(caseStatements);
         assertEquals(3, caseStatements.size());
         final CaseStatement caseStatement = caseStatements.iterator().next();
-        final QName caseStatementName = caseStatement.getName();
+        final QName caseStatementName = caseStatement.argument();
         assertNotNull(caseStatementName);
         final WhenStatement caseStatementWhen = caseStatement.getWhenStatement().get();
         final Collection<? extends IfFeatureStatement> caseStatementIfFeatures = caseStatement.getIfFeatures();
@@ -198,7 +198,7 @@ public class DeclaredStatementsTest {
         final AugmentationSchemaNode augmentationSchema = augmentationSchemas.iterator().next();
         final AugmentStatement augmentStatement = ((AugmentEffectiveStatement) augmentationSchema).getDeclared();
 
-        final SchemaNodeIdentifier targetNode = augmentStatement.getTargetNode();
+        final SchemaNodeIdentifier targetNode = augmentStatement.argument();
         assertNotNull(targetNode);
 
         final Collection<? extends DataDefinitionStatement> augmentStatementDataDefinitions =
@@ -222,25 +222,23 @@ public class DeclaredStatementsTest {
         assertNotNull(testModule);
 
         final ModuleStatement moduleStatement = ((ModuleEffectiveStatement) testModule).getDeclared();
-
-        final String moduleStatementName = moduleStatement.getName();
-        assertNotNull(moduleStatementName);
+        assertNotNull(moduleStatement.argument());
 
         final YangVersionStatement moduleStatementYangVersion = moduleStatement.getYangVersion();
         assertNotNull(moduleStatementYangVersion);
-        assertNotNull(moduleStatementYangVersion.getValue());
+        assertNotNull(moduleStatementYangVersion.argument());
 
         final NamespaceStatement moduleStatementNamspace = moduleStatement.getNamespace();
         assertNotNull(moduleStatementNamspace);
-        assertNotNull(moduleStatementNamspace.getUri());
+        assertNotNull(moduleStatementNamspace.argument());
 
         final PrefixStatement moduleStatementPrefix = moduleStatement.getPrefix();
         assertNotNull(moduleStatementPrefix);
-        assertNotNull(moduleStatementPrefix.getValue());
+        assertNotNull(moduleStatementPrefix.argument());
 
         assertEquals(1, moduleStatement.getIncludes().size());
         final IncludeStatement includeStatement = moduleStatement.getIncludes().iterator().next();
-        assertEquals("child-module-declared-test", includeStatement.getModule());
+        assertEquals("child-module-declared-test", includeStatement.argument());
 
         final Collection<? extends Submodule> submodules = testModule.getSubmodules();
         assertNotNull(submodules);
@@ -249,15 +247,14 @@ public class DeclaredStatementsTest {
         final Submodule submodule = submodules.iterator().next();
         final SubmoduleStatement submoduleStatement = ((SubmoduleEffectiveStatement) submodule).getDeclared();
 
-        final String submoduleStatementName = submoduleStatement.getName();
-        assertNotNull(submoduleStatementName);
+        assertNotNull(submoduleStatement.argument());
 
         final YangVersionStatement submoduleStatementYangVersion = submoduleStatement.getYangVersion();
         assertNotNull(submoduleStatementYangVersion);
 
         final BelongsToStatement belongsToStatement = submoduleStatement.getBelongsTo();
         assertNotNull(belongsToStatement);
-        assertNotNull(belongsToStatement.getModule());
+        assertNotNull(belongsToStatement.argument());
         assertNotNull(belongsToStatement.getPrefix());
     }
 
@@ -280,60 +277,60 @@ public class DeclaredStatementsTest {
 
         assertEquals(1, moduleStatement.getImports().size());
         final ImportStatement importStatement = moduleStatement.getImports().iterator().next();
-        assertEquals("imported-module-declared-test", importStatement.getModule());
-        assertEquals("imdt", importStatement.getPrefix().getValue());
-        assertEquals(revision, importStatement.getRevisionDate().getDate());
+        assertEquals("imported-module-declared-test", importStatement.argument());
+        assertEquals("imdt", importStatement.getPrefix().argument());
+        assertEquals(revision, importStatement.getRevisionDate().argument());
 
-        assertEquals("test description", moduleStatement.getDescription().get().getText());
-        assertEquals("test reference", moduleStatement.getReference().get().getText());
-        assertEquals("test organization", moduleStatement.getOrganization().get().getText());
-        assertEquals("test contact", moduleStatement.getContact().get().getText());
+        assertEquals("test description", moduleStatement.getDescription().get().argument());
+        assertEquals("test reference", moduleStatement.getReference().get().argument());
+        assertEquals("test organization", moduleStatement.getOrganization().get().argument());
+        assertEquals("test contact", moduleStatement.getContact().get().argument());
 
         assertEquals(1, moduleStatement.getRevisions().size());
         final RevisionStatement revisionStatement = moduleStatement.getRevisions().iterator().next();
-        assertEquals(revision, revisionStatement.getDate());
-        assertEquals("test description", revisionStatement.getDescription().get().getText());
-        assertEquals("test reference", revisionStatement.getReference().get().getText());
+        assertEquals(revision, revisionStatement.argument());
+        assertEquals("test description", revisionStatement.getDescription().get().argument());
+        assertEquals("test reference", revisionStatement.getReference().get().argument());
 
         assertEquals(1, moduleStatement.getExtensions().size());
         final ExtensionStatement extensionStatement = moduleStatement.getExtensions().iterator().next();
-        assertEquals(Status.CURRENT, extensionStatement.getStatus().get().getValue());
-        assertEquals("test description", extensionStatement.getDescription().get().getText());
-        assertEquals("test reference", extensionStatement.getReference().get().getText());
+        assertEquals(Status.CURRENT, extensionStatement.getStatus().get().argument());
+        assertEquals("test description", extensionStatement.getDescription().get().argument());
+        assertEquals("test reference", extensionStatement.getReference().get().argument());
         final ArgumentStatement argumentStatement = extensionStatement.getArgument();
-        assertEquals("ext-argument", argumentStatement.getName().getLocalName());
-        assertTrue(argumentStatement.getYinElement().getValue());
+        assertEquals("ext-argument", argumentStatement.argument().getLocalName());
+        assertTrue(argumentStatement.getYinElement().argument());
 
         assertEquals(2, moduleStatement.getFeatures().size());
         final FeatureStatement featureStatement = moduleStatement.getFeatures().iterator().next();
-        assertEquals(Status.CURRENT, featureStatement.getStatus().get().getValue());
-        assertEquals("test description", featureStatement.getDescription().get().getText());
-        assertEquals("test reference", featureStatement.getReference().get().getText());
-        assertEquals("test-feature", featureStatement.getName().getLocalName());
+        assertEquals(Status.CURRENT, featureStatement.getStatus().get().argument());
+        assertEquals("test description", featureStatement.getDescription().get().argument());
+        assertEquals("test reference", featureStatement.getReference().get().argument());
+        assertEquals("test-feature", featureStatement.argument().getLocalName());
         assertEquals(1, featureStatement.getIfFeatures().size());
 
         assertEquals(2, moduleStatement.getIdentities().size());
         IdentityStatement identityStatement = null;
         for (final IdentityStatement identity : moduleStatement.getIdentities()) {
-            if (identity.getName().getLocalName().equals("test-id")) {
+            if (identity.argument().getLocalName().equals("test-id")) {
                 identityStatement = identity;
             }
         }
 
-        assertEquals("test-base-id", identityStatement.getBases().iterator().next().getName().getLocalName());
-        assertEquals(Status.CURRENT, identityStatement.getStatus().get().getValue());
-        assertEquals("test description", identityStatement.getDescription().get().getText());
-        assertEquals("test reference", identityStatement.getReference().get().getText());
-        assertEquals("test-id", identityStatement.getName().getLocalName());
+        assertEquals("test-base-id", identityStatement.getBases().iterator().next().argument().getLocalName());
+        assertEquals(Status.CURRENT, identityStatement.getStatus().get().argument());
+        assertEquals("test description", identityStatement.getDescription().get().argument());
+        assertEquals("test reference", identityStatement.getReference().get().argument());
+        assertEquals("test-id", identityStatement.argument().getLocalName());
 
         assertEquals(1, moduleStatement.getTypedefs().size());
         final TypedefStatement typedefStatement = moduleStatement.getTypedefs().iterator().next();
-        assertEquals(Status.CURRENT, typedefStatement.getStatus().get().getValue());
-        assertEquals("test description", typedefStatement.getDescription().get().getText());
-        assertEquals("test reference", typedefStatement.getReference().get().getText());
-        assertEquals("test-typedef", typedefStatement.getName().getLocalName());
-        assertEquals("int32", typedefStatement.getType().getName());
-        assertEquals("meter", typedefStatement.getUnits().get().getName());
+        assertEquals(Status.CURRENT, typedefStatement.getStatus().get().argument());
+        assertEquals("test description", typedefStatement.getDescription().get().argument());
+        assertEquals("test reference", typedefStatement.getReference().get().argument());
+        assertEquals("test-typedef", typedefStatement.argument().getLocalName());
+        assertEquals("int32", typedefStatement.getType().argument());
+        assertEquals("meter", typedefStatement.getUnits().get().argument());
     }
 
     @Test
@@ -353,7 +350,7 @@ public class DeclaredStatementsTest {
         final ContainerStatement containerStatement =
                 ((ContainerEffectiveStatement) containerSchemaNode).getDeclared();
 
-        final QName name = containerStatement.getName();
+        final QName name = containerStatement.argument();
         assertNotNull(name);
 
         final WhenStatement containerStatementWhen = containerStatement.getWhenStatement().get();
@@ -369,7 +366,7 @@ public class DeclaredStatementsTest {
 
         final PresenceStatement containerStatementPresence = containerStatement.getPresence();
         assertNotNull(containerStatementPresence);
-        assertNotNull(containerStatementPresence.getValue());
+        assertNotNull(containerStatementPresence.argument());
 
         assertTrue(containerStatement.getConfig().isPresent());
         assertTrue(containerStatement.getStatus().isPresent());
@@ -8,20 +8,22 @@
 package org.opendaylight.yangtools.yang.parser.spi.meta;
 
 import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Empty;
 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;
 
 @Beta
-public abstract class AbstractVoidStatementSupport<D extends DeclaredStatement<Void>,
-        E extends EffectiveStatement<Void, D>> extends AbstractStatementSupport<Void, D, E> {
-    protected AbstractVoidStatementSupport(final StatementDefinition publicDefinition,
-            final StatementPolicy<Void, D> policy) {
+public abstract class AbstractEmptyStatementSupport<D extends DeclaredStatement<Empty>,
+        E extends EffectiveStatement<Empty, D>> extends AbstractStatementSupport<Empty, D, E> {
+    protected AbstractEmptyStatementSupport(final StatementDefinition publicDefinition,
+            final StatementPolicy<Empty, D> policy) {
         super(publicDefinition, policy);
     }
 
     @Override
-    public final Void parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return null;
+    public final Empty parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+        InferenceException.throwIf(value != null, ctx, "Unexpected argument value %s", value);
+        return Empty.getInstance();
     }
 }