Cleanup yang-parser-spi namespaces 52/68552/9
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 23 Feb 2018 15:25:29 +0000 (16:25 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 25 Jan 2019 15:20:18 +0000 (15:20 +0000)
Statement-related namespaces should use proper type capture, so that
we get proper binding to effective statements.

JIRA: YANGTOOLS-852
Change-Id: I0096410ad87dd76be6f6301935a426a82df85ece
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
19 files changed:
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/AbstractModuleStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/AbstractSubmoduleStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/SubmoduleEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IdentityRefSpecificationEffectiveStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesEffectiveStatementImpl.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/ExtensionNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/FeatureNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/GroupingNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/IdentityNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/ModuleNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/NamespaceToModule.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/PreLinkageModuleNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/SubmoduleNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SemanticVersionModuleNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNamespaceForBelongsTo.java

index 55e38c0933f04a444ed5e7c877ec9453231182ca..487f0049e74e1ccff5245ace8838efd8d1f85116 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace;
@@ -37,7 +38,7 @@ public abstract class UnknownEffectiveStatementBase<A, D extends UnknownStatemen
     protected UnknownEffectiveStatementBase(final StmtContext<A, D, ?> ctx) {
         super(ctx);
 
-        final StmtContext<?, ExtensionStatement, EffectiveStatement<QName, ExtensionStatement>> extensionInit =
+        final StmtContext<?, ExtensionStatement, ExtensionEffectiveStatement> extensionInit =
                 ctx.getFromNamespace(ExtensionNamespace.class, ctx.getPublicDefinition().getStatementName());
 
         if (extensionInit == null) {
index c24bacef4a40bfdb6c615e5d941a866d0ebb86c0..b1037dbd2170b4354a9645b112176c4560008f8f 100644 (file)
@@ -9,15 +9,16 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 abstract class AbstractIdentityStatementSupport
-        extends AbstractQNameStatementSupport<IdentityStatement, EffectiveStatement<QName, IdentityStatement>> {
+        extends AbstractQNameStatementSupport<IdentityStatement, IdentityEffectiveStatement> {
 
     AbstractIdentityStatementSupport() {
         super(YangStmtMapping.IDENTITY);
@@ -34,14 +35,14 @@ abstract class AbstractIdentityStatementSupport
     }
 
     @Override
-    public final EffectiveStatement<QName, IdentityStatement> createEffective(
-            final StmtContext<QName, IdentityStatement, EffectiveStatement<QName, IdentityStatement>> ctx) {
+    public final IdentityEffectiveStatement createEffective(
+            final StmtContext<QName, IdentityStatement, IdentityEffectiveStatement> ctx) {
         return new IdentityEffectiveStatementImpl(ctx);
     }
 
     @Override
-    public final void onStatementDefinitionDeclared(final StmtContext.Mutable<QName, IdentityStatement,
-            EffectiveStatement<QName, IdentityStatement>> stmt) {
+    public final void onStatementDefinitionDeclared(
+            final Mutable<QName, IdentityStatement, IdentityEffectiveStatement> stmt) {
         stmt.addToNs(IdentityNamespace.class, stmt.coerceStatementArgument(), stmt);
     }
-}
\ No newline at end of file
+}
index 4b7d8bbf6cb73c484a96d96b8da6847def9e1fc5..fd555f8e5e2a253188aa29066f16056a541f51af 100644 (file)
@@ -19,7 +19,6 @@ import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveSchemaNode;
@@ -33,8 +32,7 @@ final class IdentityEffectiveStatementImpl extends AbstractEffectiveSchemaNode<I
     private @NonNull Set<IdentitySchemaNode> baseIdentities;
     private boolean sealed;
 
-    IdentityEffectiveStatementImpl(
-            final StmtContext<QName, IdentityStatement, EffectiveStatement<QName, IdentityStatement>> ctx) {
+    IdentityEffectiveStatementImpl(final StmtContext<QName, IdentityStatement, IdentityEffectiveStatement> ctx) {
         super(ctx);
 
         this.baseIdentities = new HashSet<>();
index 6851219ac39ce8ac79fa4788a940e7f1aea4bfb4..09d0ce8e674b43d367b6760a79d8d8690b69df16 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
@@ -42,8 +42,8 @@ import org.opendaylight.yangtools.yang.parser.spi.source.ModuleQNameToModuleName
 import org.opendaylight.yangtools.yang.parser.spi.source.PrefixToModule;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
-abstract class AbstractModuleStatementSupport extends
-        AbstractStatementSupport<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
+abstract class AbstractModuleStatementSupport
+        extends AbstractStatementSupport<String, ModuleStatement, ModuleEffectiveStatement> {
     AbstractModuleStatementSupport() {
         super(YangStmtMapping.MODULE);
     }
@@ -59,14 +59,13 @@ abstract class AbstractModuleStatementSupport extends
     }
 
     @Override
-    public final EffectiveStatement<String, ModuleStatement> createEffective(
-            final StmtContext<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> ctx) {
+    public final ModuleEffectiveStatement createEffective(
+            final StmtContext<String, ModuleStatement, ModuleEffectiveStatement> ctx) {
         return new ModuleEffectiveStatementImpl(ctx);
     }
 
     @Override
-    public final void onPreLinkageDeclared(final Mutable<String, ModuleStatement,
-            EffectiveStatement<String, ModuleStatement>> stmt) {
+    public final void onPreLinkageDeclared(final Mutable<String, ModuleStatement, ModuleEffectiveStatement> stmt) {
         final String moduleName = stmt.getStatementArgument();
 
         final URI moduleNs = firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class);
@@ -89,8 +88,7 @@ abstract class AbstractModuleStatementSupport extends
     }
 
     @Override
-    public final void onLinkageDeclared(final Mutable<String, ModuleStatement,
-            EffectiveStatement<String, ModuleStatement>> stmt) {
+    public final void onLinkageDeclared(final Mutable<String, ModuleStatement, ModuleEffectiveStatement> stmt) {
 
         final Optional<URI> moduleNs = Optional.ofNullable(firstAttributeOf(stmt.declaredSubstatements(),
                 NamespaceStatement.class));
@@ -99,7 +97,7 @@ abstract class AbstractModuleStatementSupport extends
 
         final Optional<Revision> revisionDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements());
         final QNameModule qNameModule = QNameModule.create(moduleNs.get(), revisionDate.orElse(null)).intern();
-        final StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>> possibleDuplicateModule =
+        final StmtContext<?, ModuleStatement, ModuleEffectiveStatement> possibleDuplicateModule =
                 stmt.getFromNamespace(NamespaceToModule.class, qNameModule);
         if (possibleDuplicateModule != null && possibleDuplicateModule != stmt) {
             throw new SourceException(stmt.getStatementSourceReference(), "Module namespace collision: %s. At %s",
@@ -130,7 +128,7 @@ abstract class AbstractModuleStatementSupport extends
     }
 
     private static void addToSemVerModuleNamespace(
-            final Mutable<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> stmt,
+            final Mutable<String, ModuleStatement, ModuleEffectiveStatement> stmt,
             final SourceIdentifier moduleIdentifier) {
         final String moduleName = stmt.coerceStatementArgument();
         final SemVer moduleSemVer = stmt.getFromNamespace(SemanticVersionNamespace.class, stmt);
index 22005a85d20603f10cbc8d6dda0913f828aa4db4..eb0810db857b194a9afefdccabad60258d0bf4b1 100644 (file)
@@ -19,7 +19,6 @@ import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatementNamespace;
@@ -54,8 +53,7 @@ final class ModuleEffectiveStatementImpl extends AbstractEffectiveModule<ModuleS
     private final ImmutableMap<QNameModule, String> namespaceToPrefix;
     private final @NonNull QNameModule qnameModule;
 
-    ModuleEffectiveStatementImpl(
-            final StmtContext<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> ctx) {
+    ModuleEffectiveStatementImpl(final StmtContext<String, ModuleStatement, ModuleEffectiveStatement> ctx) {
         super(ctx);
         qnameModule = verifyNotNull(ctx.getFromNamespace(ModuleCtxToModuleQName.class, ctx));
 
@@ -86,21 +84,18 @@ final class ModuleEffectiveStatementImpl extends AbstractEffectiveModule<ModuleS
                 : ImmutableMap.copyOf(Maps.transformValues(submodules,
                     submodule -> (SubmoduleEffectiveStatement) submodule.buildEffective()));
 
-        final Map<QName, StmtContext<?, ExtensionStatement, EffectiveStatement<QName, ExtensionStatement>>> extensions =
+        final Map<QName, StmtContext<?, ExtensionStatement, ExtensionEffectiveStatement>> extensions =
                 ctx.getAllFromCurrentStmtCtxNamespace(ExtensionNamespace.class);
         qnameToExtension = extensions == null ? ImmutableMap.of()
-                : ImmutableMap.copyOf(Maps.transformValues(extensions,
-                    stmt -> (ExtensionEffectiveStatement) stmt.buildEffective()));
-        final Map<QName, StmtContext<?, FeatureStatement, EffectiveStatement<QName, FeatureStatement>>> features =
+                : ImmutableMap.copyOf(Maps.transformValues(extensions, StmtContext::buildEffective));
+        final Map<QName, StmtContext<?, FeatureStatement, FeatureEffectiveStatement>> features =
                 ctx.getAllFromCurrentStmtCtxNamespace(FeatureNamespace.class);
         qnameToFeature = features == null ? ImmutableMap.of()
-                : ImmutableMap.copyOf(Maps.transformValues(features,
-                    stmt -> (FeatureEffectiveStatement) stmt.buildEffective()));
-        final Map<QName, StmtContext<?, IdentityStatement, EffectiveStatement<QName, IdentityStatement>>> identities =
+                : ImmutableMap.copyOf(Maps.transformValues(features, StmtContext::buildEffective));
+        final Map<QName, StmtContext<?, IdentityStatement, IdentityEffectiveStatement>> identities =
                 ctx.getAllFromCurrentStmtCtxNamespace(IdentityNamespace.class);
         qnameToIdentity = identities == null ? ImmutableMap.of()
-                : ImmutableMap.copyOf(Maps.transformValues(identities,
-                    stmt -> (IdentityEffectiveStatement) stmt.buildEffective()));
+                : ImmutableMap.copyOf(Maps.transformValues(identities, StmtContext::buildEffective));
     }
 
     @Override
index e248f5a0a65920c75b4f302cada5767f7cd7323c..db6523f8a2d1bd16b690990109987fad921f5bd9 100644 (file)
@@ -11,9 +11,9 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.f
 import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf;
 
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModule
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 abstract class AbstractSubmoduleStatementSupport
-        extends AbstractStatementSupport<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> {
+        extends AbstractStatementSupport<String, SubmoduleStatement, SubmoduleEffectiveStatement> {
     AbstractSubmoduleStatementSupport() {
         super(YangStmtMapping.SUBMODULE);
     }
@@ -42,25 +42,24 @@ abstract class AbstractSubmoduleStatementSupport
     }
 
     @Override
-    public final EffectiveStatement<String, SubmoduleStatement> createEffective(
-            final StmtContext<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> ctx) {
+    public final SubmoduleEffectiveStatement createEffective(
+            final StmtContext<String, SubmoduleStatement, SubmoduleEffectiveStatement> ctx) {
         return new SubmoduleEffectiveStatementImpl(ctx);
     }
 
     @Override
     public final void onPreLinkageDeclared(
-            final Mutable<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> stmt) {
+            final Mutable<String, SubmoduleStatement, SubmoduleEffectiveStatement> stmt) {
         stmt.setRootIdentifier(RevisionSourceIdentifier.create(stmt.getStatementArgument(),
             StmtContextUtils.getLatestRevision(stmt.declaredSubstatements())));
     }
 
     @Override
-    public final void onLinkageDeclared(
-            final Mutable<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> stmt) {
+    public final void onLinkageDeclared(final Mutable<String, SubmoduleStatement, SubmoduleEffectiveStatement> stmt) {
         final SourceIdentifier submoduleIdentifier = RevisionSourceIdentifier.create(stmt.coerceStatementArgument(),
             StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()));
 
-        final StmtContext<?, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>>
+        final StmtContext<?, SubmoduleStatement, SubmoduleEffectiveStatement>
             possibleDuplicateSubmodule = stmt.getFromNamespace(SubmoduleNamespace.class, submoduleIdentifier);
         if (possibleDuplicateSubmodule != null && possibleDuplicateSubmodule != stmt) {
             throw new SourceException(stmt.getStatementSourceReference(), "Submodule name collision: %s. At %s",
@@ -79,4 +78,4 @@ abstract class AbstractSubmoduleStatementSupport
 
         stmt.addToNs(BelongsToPrefixToModuleName.class, prefix, belongsToModuleName);
     }
-}
\ No newline at end of file
+}
index 9e5881530987c2d01618582067688052c24ff53f..a53155396152912e26850fafc4013adfc400bae4 100644 (file)
@@ -13,7 +13,6 @@ import java.util.Objects;
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleEffectiveStatement;
@@ -27,8 +26,7 @@ final class SubmoduleEffectiveStatementImpl extends AbstractEffectiveModule<Subm
 
     private final QNameModule qnameModule;
 
-    SubmoduleEffectiveStatementImpl(
-            final StmtContext<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> ctx) {
+    SubmoduleEffectiveStatementImpl(final StmtContext<String, SubmoduleStatement, SubmoduleEffectiveStatement> ctx) {
         super(ctx);
 
         final String belongsToModuleName = firstAttributeOf(ctx.declaredSubstatements(), BelongsToStatement.class);
index d1065b034b74c50292c41989c6027ed9c5809b45..a0e03346a9a06c886f972a79b19dc3aa29c8e20b 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.IdentityRefSpecification;
@@ -38,7 +39,7 @@ public final class IdentityRefSpecificationEffectiveStatement extends
         for (final EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
             if (stmt instanceof BaseEffectiveStatement) {
                 final QName identityQName = ((BaseEffectiveStatement) stmt).argument();
-                final StmtContext<?, IdentityStatement, EffectiveStatement<QName, IdentityStatement>> identityCtx =
+                final StmtContext<?, IdentityStatement, IdentityEffectiveStatement> identityCtx =
                         ctx.getFromNamespace(IdentityNamespace.class, identityQName);
                 builder.addIdentity((IdentitySchemaNode) identityCtx.buildEffective());
             }
index 1a1c3a11e21f56e475fc55e1e629b6ce85740fa8..8ccf4fc0d23df1d79159e6eb4ca57fa9b7513d19 100644 (file)
@@ -28,6 +28,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement;
@@ -52,7 +53,7 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
         super(ctx);
 
         // initGroupingPath
-        final StmtContext<?, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> grpCtx =
+        final StmtContext<?, GroupingStatement, GroupingEffectiveStatement> grpCtx =
                 ctx.getFromNamespace(GroupingNamespace.class, ctx.coerceStatementArgument());
         this.groupingPath = grpCtx.getSchemaPath().get();
 
index 4ca6d751069ee3dfdf95c29d88158fafdc883579..6bd2bd2e3452449bfe06c8578b7f83f331f0fca5 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
@@ -20,9 +20,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * extension identifier namespace, where each extension is identified by a QName formed from the
  * defining module's QNameModule and the identifier specified in extension statement's argument.
  */
-public interface ExtensionNamespace
-    extends StatementNamespace<QName, ExtensionStatement, EffectiveStatement<QName, ExtensionStatement>> {
-    NamespaceBehaviour<QName, StmtContext<?, ExtensionStatement, EffectiveStatement<QName, ExtensionStatement>>,
+public interface ExtensionNamespace extends StatementNamespace<QName, ExtensionStatement, ExtensionEffectiveStatement> {
+    NamespaceBehaviour<QName, StmtContext<?, ExtensionStatement, ExtensionEffectiveStatement>,
             @NonNull ExtensionNamespace> BEHAVIOUR = NamespaceBehaviour.global(ExtensionNamespace.class);
 
 }
index 7a56e9d19de6c64d18509797e5a9487c42a764af..2114d93b3c920330eb653772bc828465b2732315 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
 
@@ -17,7 +17,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
  * same feature identifier namespace. Each feature is identified by a QName formed from
  * the defining module's QNameModule and the feature name.
  */
-public interface FeatureNamespace
-    extends StatementNamespace<QName, FeatureStatement, EffectiveStatement<QName, FeatureStatement>> {
+public interface FeatureNamespace extends StatementNamespace<QName, FeatureStatement, FeatureEffectiveStatement> {
 
 }
index 94c762297e3991d7ed9cbabfbd1f22a607cdb7de..c407ef9ed682f581d6a91706d1d63580e799dfb3 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace.TreeScoped;
@@ -23,9 +23,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * <p>
  * This means that any descendant node may use that grouping, and it MUST NOT define a grouping with the same name.
  */
-public interface GroupingNamespace
-    extends TreeScoped<QName, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> {
-    NamespaceBehaviour<QName, StmtContext<?, GroupingStatement, EffectiveStatement<QName, GroupingStatement>>,
+public interface GroupingNamespace extends TreeScoped<QName, GroupingStatement, GroupingEffectiveStatement> {
+    NamespaceBehaviour<QName, StmtContext<?, GroupingStatement, GroupingEffectiveStatement>,
             @NonNull GroupingNamespace> BEHAVIOUR = NamespaceBehaviour.treeScoped(GroupingNamespace.class);
 
 }
index fc4e79781e6c8c453897fd203028f2628f648572..b092406658567ea12734145e6dbb6b005c6ac5ee 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
@@ -20,8 +20,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * namespace.
  */
 public interface IdentityNamespace extends
-        StatementNamespace<QName, IdentityStatement, EffectiveStatement<QName, IdentityStatement>> {
-    NamespaceBehaviour<QName, StmtContext<?, IdentityStatement, EffectiveStatement<QName, IdentityStatement>>,
+        StatementNamespace<QName, IdentityStatement, IdentityEffectiveStatement> {
+    NamespaceBehaviour<QName, StmtContext<?, IdentityStatement, IdentityEffectiveStatement>,
             @NonNull IdentityNamespace> BEHAVIOUR = NamespaceBehaviour.global(IdentityNamespace.class);
 
 }
index ca10a802bec456f86a37d90864709e3480b0fc35..9788fde789ed4f71c0b1b141978ed5c6cd25c6c1 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
@@ -19,8 +19,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * Module namespace. All modules known to the reactor are populated to this namespace. Each module is identified
  * by a {@link SourceIdentifier}.
  */
-public interface ModuleNamespace extends
-        StatementNamespace<SourceIdentifier, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
-    NamespaceBehaviour<SourceIdentifier, StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>>,
+public interface ModuleNamespace
+        extends StatementNamespace<SourceIdentifier, ModuleStatement, ModuleEffectiveStatement> {
+    NamespaceBehaviour<SourceIdentifier, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
             @NonNull ModuleNamespace> BEHAVIOUR = NamespaceBehaviour.global(ModuleNamespace.class);
 }
index b0f0433f9f380edf52cab7a073a53b38b1c2be83..dc81edf388ca0556eb47e327d1a4bdad0c113671 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
@@ -18,8 +18,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 /**
  * A derived namespace allowing lookup of modules based on their {@link QNameModule}.
  */
-public interface NamespaceToModule
-    extends StatementNamespace<QNameModule, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
-    NamespaceBehaviour<QNameModule, StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>>,
+public interface NamespaceToModule extends StatementNamespace<QNameModule, ModuleStatement, ModuleEffectiveStatement> {
+    NamespaceBehaviour<QNameModule, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
             @NonNull NamespaceToModule> BEHAVIOUR = NamespaceBehaviour.global(NamespaceToModule.class);
 }
index 177e5bcabaac0b0b6ec6ff7797e89dde92552565..3eb1278a8ad0560caf69aeb3e6cfb01eaa00ea1b 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
@@ -18,9 +18,9 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * Intermediate-stage namespace equivalent to ModuleNamespace except it is keyed by module names. This namespace is
  * used to resolve inter-module references before actual linkage occurs.
  */
-public interface PreLinkageModuleNamespace extends
-        StatementNamespace<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
-    NamespaceBehaviour<String, StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>>,
+public interface PreLinkageModuleNamespace
+        extends StatementNamespace<String, ModuleStatement, ModuleEffectiveStatement> {
+    NamespaceBehaviour<String, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
             @NonNull PreLinkageModuleNamespace> BEHAVIOUR = NamespaceBehaviour.global(PreLinkageModuleNamespace.class);
 
 }
index cce756d4a6600e5a856bfbfdf6f275762f253cb4..0fbb318c9d6e27dffc2800af7956283716735fad 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.spi;
 
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
@@ -20,8 +20,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  */
 // FIXME: describe scoping of this namespace
 public interface SubmoduleNamespace
-    extends StatementNamespace<SourceIdentifier, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> {
-    NamespaceBehaviour<SourceIdentifier, StmtContext<?, SubmoduleStatement,
-            EffectiveStatement<String, SubmoduleStatement>>, @NonNull SubmoduleNamespace> BEHAVIOUR =
+    extends StatementNamespace<SourceIdentifier, SubmoduleStatement, SubmoduleEffectiveStatement> {
+    NamespaceBehaviour<SourceIdentifier, StmtContext<?, SubmoduleStatement, SubmoduleEffectiveStatement>,
+            @NonNull SubmoduleNamespace> BEHAVIOUR =
             NamespaceBehaviour.global(SubmoduleNamespace.class);
 }
index b3348c52506170cef918e107d1f0fe200c50a25d..57eab173276d50f375290aa26a879f6a93417037 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 
 import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
 
@@ -19,9 +19,9 @@ import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
  */
 @Beta
 public interface SemanticVersionModuleNamespace
-    extends StatementNamespace<SemVerSourceIdentifier, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
-    NamespaceBehaviour<SemVerSourceIdentifier, StmtContext<?, ModuleStatement,
-            EffectiveStatement<String, ModuleStatement>>, @NonNull SemanticVersionModuleNamespace> BEHAVIOUR =
+    extends StatementNamespace<SemVerSourceIdentifier, ModuleStatement, ModuleEffectiveStatement> {
+    NamespaceBehaviour<SemVerSourceIdentifier, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
+            @NonNull SemanticVersionModuleNamespace> BEHAVIOUR =
             NamespaceBehaviour.global(SemanticVersionModuleNamespace.class);
 
 }
index d55d2fad65af1869da1474c407c8d7d4790af19d..9a520dde98f4420bc715c46c619279db5dc498fe 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
@@ -18,9 +18,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
  * namespace class similar to {@link org.opendaylight.yangtools.yang.parser.spi.ModuleNamespace} for storing modules
  * into Yang model storage but keyed by plain name.
  */
-public interface ModuleNamespaceForBelongsTo extends
-        StatementNamespace<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
-    NamespaceBehaviour<String, StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>>,
-            @NonNull ModuleNamespaceForBelongsTo> BEHAVIOUR = NamespaceBehaviour.global(
-                ModuleNamespaceForBelongsTo.class);
+public interface ModuleNamespaceForBelongsTo
+        extends StatementNamespace<String, ModuleStatement, ModuleEffectiveStatement> {
+    NamespaceBehaviour<String, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
+        @NonNull ModuleNamespaceForBelongsTo> BEHAVIOUR = NamespaceBehaviour.global(ModuleNamespaceForBelongsTo.class);
 }