Remove ModuleIdentifier from reactor namespaces 94/64994/9
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 1 Nov 2017 12:26:03 +0000 (13:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 3 Nov 2017 15:46:02 +0000 (16:46 +0100)
SourceIdentifier fills in the same role, eliminate use of ModuleIdentifier
in reactor sources.

Change-Id: I437307249ec5b88a79864bdaebbf99e90bdd4696
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IncludeStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.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/SubmoduleNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportedModuleContext.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToSourceIdentifier.java [moved from yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToModuleIdentifier.java with 68% similarity]

index 1a1fd8f18403d60c1ec7be729dac471350524cce..b472682b5457a06329be15e1436642d49103ba64 100644 (file)
@@ -20,7 +20,6 @@ import java.util.Collection;
 import java.util.Optional;
 import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 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.ImportStatement;
@@ -30,7 +29,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
 import org.opendaylight.yangtools.yang.parser.spi.ModuleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
@@ -49,7 +47,7 @@ import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToModuleCtx;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToSemVerSourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportedModuleContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleIdentifier;
+import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToSourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ImportEffectiveStatementImpl;
@@ -155,7 +153,7 @@ public class ImportStatementDefinition extends
                     NamespaceKeyCriterion.latestRevisionModule(moduleName), SOURCE_LINKAGE);
             } else {
                 imported = importAction.requiresCtx(stmt, ModuleNamespace.class,
-                    ModuleIdentifierImpl.create(moduleName, Optional.of(revision)), SOURCE_LINKAGE);
+                    RevisionSourceIdentifier.create(moduleName, Optional.of(revision)), SOURCE_LINKAGE);
             }
 
             final Prerequisite<Mutable<?, ?, ?>> linkageTarget = importAction.mutatesCtx(stmt.getRoot(),
@@ -167,7 +165,7 @@ public class ImportStatementDefinition extends
                     final StmtContext<?, ?, ?> importedModule = imported.resolve(ctx);
 
                     linkageTarget.resolve(ctx).addToNs(ImportedModuleContext.class,
-                        stmt.getFromNamespace(ModuleCtxToModuleIdentifier.class, importedModule), importedModule);
+                        stmt.getFromNamespace(ModuleCtxToSourceIdentifier.class, importedModule), importedModule);
                     final String impPrefix = firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class);
                     final URI modNs = firstAttributeOf(importedModule.declaredSubstatements(),
                         NamespaceStatement.class);
@@ -290,8 +288,8 @@ public class ImportStatementDefinition extends
                 public void apply(final InferenceContext ctx) {
                     final StmtContext<?, ?, ?> importedModule = imported.resolve(ctx);
                     final SemVer importedVersion = stmt.getFromNamespace(SemanticVersionNamespace.class, stmt);
-                    final ModuleIdentifier importedModuleIdentifier = importedModule.getFromNamespace(
-                        ModuleCtxToModuleIdentifier.class, importedModule);
+                    final SourceIdentifier importedModuleIdentifier = importedModule.getFromNamespace(
+                        ModuleCtxToSourceIdentifier.class, importedModule);
                     final SemVerSourceIdentifier semVerModuleIdentifier = createSemVerModuleIdentifier(
                         importedModuleIdentifier, importedVersion);
 
@@ -326,7 +324,7 @@ public class ImportStatementDefinition extends
         }
 
         private static SemVerSourceIdentifier createSemVerModuleIdentifier(
-                final ModuleIdentifier importedModuleIdentifier, final SemVer semVer) {
+                final SourceIdentifier importedModuleIdentifier, final SemVer semVer) {
             return SemVerSourceIdentifier.create(importedModuleIdentifier.getName(),
                 importedModuleIdentifier.getRevision(), semVer);
         }
index 74419055c88f105ba8159d555229010110a1cbf5..94410e044aee7ecee34aab7a9005261ca144ac36 100644 (file)
@@ -21,7 +21,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
-import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
 import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
@@ -92,7 +91,7 @@ public class IncludeStatementImpl extends AbstractDeclaredStatement<String> impl
                     NamespaceKeyCriterion.latestRevisionModule(submoduleName), SOURCE_LINKAGE);
             } else {
                 requiresCtxPrerequisite = includeAction.requiresCtx(stmt, SubmoduleNamespace.class,
-                    ModuleIdentifierImpl.create(submoduleName, Optional.of(revision.getStatementArgument())),
+                    RevisionSourceIdentifier.create(submoduleName, Optional.of(revision.getStatementArgument())),
                     SOURCE_LINKAGE);
             }
 
index cb61af8a4485956e07a88c8cd09acb9861810dff..28fb20bca28cbe731a034aabbea982a0a4c05300 100644 (file)
@@ -14,7 +14,6 @@ import java.util.Optional;
 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.ModuleIdentifier;
 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.ModuleStatement;
@@ -22,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
-import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.ModuleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.NamespaceToModule;
 import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
@@ -35,8 +34,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToModuleCtx;
-import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName;
+import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToSourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToModuleQName;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNamespaceForBelongsTo;
@@ -140,7 +139,7 @@ public class ModuleStatementSupport extends
                     qNameModule.getNamespace(), possibleDuplicateModule.getStatementSourceReference());
         }
 
-        final ModuleIdentifier moduleIdentifier = ModuleIdentifierImpl.create(stmt.getStatementArgument(),
+        final SourceIdentifier moduleIdentifier = RevisionSourceIdentifier.create(stmt.getStatementArgument(),
                 revisionDate);
 
         stmt.addContext(ModuleNamespace.class, moduleIdentifier, stmt);
@@ -154,7 +153,7 @@ public class ModuleStatementSupport extends
         stmt.addToNs(PrefixToModule.class, modulePrefix, qNameModule);
         stmt.addToNs(ModuleNameToModuleQName.class, stmt.getStatementArgument(), qNameModule);
         stmt.addToNs(ModuleCtxToModuleQName.class, stmt, qNameModule); // tu
-        stmt.addToNs(ModuleCtxToModuleIdentifier.class, stmt, moduleIdentifier);
+        stmt.addToNs(ModuleCtxToSourceIdentifier.class, stmt, moduleIdentifier);
         stmt.addToNs(ModuleQNameToModuleName.class, qNameModule, stmt.getStatementArgument());
         stmt.addToNs(ImportPrefixToModuleCtx.class, modulePrefix, stmt);
 
@@ -165,7 +164,7 @@ public class ModuleStatementSupport extends
 
     private static void addToSemVerModuleNamespace(
             final Mutable<String, ModuleStatement, EffectiveStatement<String, ModuleStatement>> stmt,
-            final ModuleIdentifier moduleIdentifier) {
+            final SourceIdentifier moduleIdentifier) {
         final String moduleName = stmt.getStatementArgument();
         final SemVer moduleSemVer = stmt.getFromNamespace(SemanticVersionNamespace.class, stmt);
         final SemVerSourceIdentifier id = SemVerSourceIdentifier.create(moduleName, moduleSemVer);
index d136396805d7b7afc57d2ca0d176a669bef06f1f..866eb99e13dc1f64ce34b1913b9aa21e3e6676b9 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
 import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
@@ -100,7 +101,8 @@ public class SubmoduleStatementImpl extends AbstractRootStatement<SubmoduleState
         @Override
         public void onLinkageDeclared(
                 final Mutable<String, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> stmt) {
-            final ModuleIdentifier submoduleIdentifier = getSubmoduleIdentifier(stmt);
+            final SourceIdentifier submoduleIdentifier = RevisionSourceIdentifier.create(stmt.getStatementArgument(),
+                StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()));
 
             final StmtContext<?, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>>
                 possibleDuplicateSubmodule = stmt.getFromNamespace(SubmoduleNamespace.class, submoduleIdentifier);
index b025d4aab80415bc4ee33bde29e09445ef27c6e1..c40642e874268ae41f80724917301c644806f989 100644 (file)
@@ -46,8 +46,8 @@ import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToSemVerSou
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportedModuleContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.IncludedModuleContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.IncludedSubmoduleNameToModuleCtx;
-import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName;
+import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToSourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToModuleQName;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNamespaceForBelongsTo;
@@ -129,7 +129,7 @@ public final class YangInferencePipeline {
             .addSupport(global(SubmoduleNamespace.class))
             .addSupport(global(NamespaceToModule.class))
             .addSupport(global(ModuleNameToModuleQName.class))
-            .addSupport(global(ModuleCtxToModuleIdentifier.class))
+            .addSupport(global(ModuleCtxToSourceIdentifier.class))
             .addSupport(global(ModuleQNameToModuleName.class))
             .addSupport(global(PrefixToModule.class))
             .addSupport(QNameCacheNamespace.getInstance())
index a300e2e696977b4abe86d93e9c130f2311c60e14..2fdc2837b4954d43f9717a8f9de3ff38c68a30a8 100644 (file)
@@ -7,15 +7,15 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi;
 
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 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.StatementNamespace;
 
 /**
  * Module namespace. All modules known to the reactor are populated to this namespace. Each module is identified
- * by a {@link ModuleIdentifier}.
+ * by a {@link SourceIdentifier}.
  */
 public interface ModuleNamespace extends
-        StatementNamespace<ModuleIdentifier, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
+        StatementNamespace<SourceIdentifier, ModuleStatement, EffectiveStatement<String, ModuleStatement>> {
 }
index a2bdd7d9ba4a9aa7438381b829dbba069316ad6e..979910ebf44c14434602dd8914f8157df2e8082a 100644 (file)
@@ -7,9 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi;
 
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 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.StatementNamespace;
 
 /**
@@ -17,6 +17,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace;
  */
 // FIXME: describe scoping of this namespace
 public interface SubmoduleNamespace
-    extends StatementNamespace<ModuleIdentifier, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> {
+    extends StatementNamespace<SourceIdentifier, SubmoduleStatement, EffectiveStatement<String, SubmoduleStatement>> {
 
 }
index c285614482cd1ba806547cccc8e14a01fefee1d6..90d20108b0bcd62e1223a8db8320a595aaf2c1fb 100644 (file)
@@ -14,7 +14,7 @@ import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
 /**
  * Namespace key matching criterion.
@@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
  */
 @Beta
 public abstract class NamespaceKeyCriterion<K> {
-    private static final class LatestRevisionModule extends NamespaceKeyCriterion<ModuleIdentifier> {
+    private static final class LatestRevisionModule extends NamespaceKeyCriterion<SourceIdentifier> {
         private final String moduleName;
 
         LatestRevisionModule(final String moduleName) {
@@ -33,12 +33,12 @@ public abstract class NamespaceKeyCriterion<K> {
         }
 
         @Override
-        public boolean match(final ModuleIdentifier key) {
+        public boolean match(final SourceIdentifier key) {
             return moduleName.equals(key.getName());
         }
 
         @Override
-        public ModuleIdentifier select(final ModuleIdentifier first, final ModuleIdentifier second) {
+        public SourceIdentifier select(final SourceIdentifier first, final SourceIdentifier second) {
             return Revision.compare(first.getRevision(), second.getRevision()) >= 0 ? first : second;
         }
 
@@ -54,7 +54,7 @@ public abstract class NamespaceKeyCriterion<K> {
      * @param moduleName Module name
      * @return A criterion object.
      */
-    public static NamespaceKeyCriterion<ModuleIdentifier> latestRevisionModule(final String moduleName) {
+    public static NamespaceKeyCriterion<SourceIdentifier> latestRevisionModule(final String moduleName) {
         return new LatestRevisionModule(moduleName);
     }
 
index 7d40e51467f8109de58e3fd5baebf47cbff26b71..4c835b253b3ec7c018a1975a68cecf4a8525875f 100644 (file)
@@ -7,9 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ImportedNamespaceContext;
 
-public interface ImportedModuleContext extends ImportedNamespaceContext<ModuleIdentifier> {
+public interface ImportedModuleContext extends ImportedNamespaceContext<SourceIdentifier> {
 
 }
@@ -7,13 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 /**
- * Global mapping of modules to module identifier.
+ * Global mapping of modules to source identifier.
  */
-public interface ModuleCtxToModuleIdentifier extends IdentifierNamespace<StmtContext<?, ?, ?>, ModuleIdentifier> {
+public interface ModuleCtxToSourceIdentifier extends IdentifierNamespace<StmtContext<?, ?, ?>, SourceIdentifier> {
 
 }