Revert "Bug 4640: Change semantic-version to openconfig-version"
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / ModuleStatementSupport.java
index d387a1c199f7275e1267a29dc48068bbef2e30af..2fbdad58e6fd3ee36e41cd8e754b1a4d7b34ccbf 100644 (file)
@@ -124,6 +124,8 @@ public class ModuleStatementSupport extends
         final QNameModule qNameModule = QNameModule.create(moduleNs, revisionDate.orElse(null)).intern();
 
         stmt.addToNs(ModuleCtxToModuleQName.class, stmt, qNameModule);
+        stmt.setRootIdentifier(ModuleIdentifierImpl.create(stmt.getStatementArgument(),
+                Optional.empty(), revisionDate));
     }
 
     @Override
@@ -140,6 +142,14 @@ public class ModuleStatementSupport extends
         }
 
         final QNameModule qNameModule = QNameModule.create(moduleNs.get(), revisionDate.orElse(null)).intern();
+
+        final StmtContext<?, ModuleStatement, EffectiveStatement<String, ModuleStatement>> possibleDuplicateModule =
+                stmt.getFromNamespace(NamespaceToModule.class, qNameModule);
+        if (possibleDuplicateModule != null && possibleDuplicateModule != stmt) {
+            throw new SourceException(stmt.getStatementSourceReference(), "Module namespace collision: %s. At %s",
+                    qNameModule.getNamespace(), possibleDuplicateModule.getStatementSourceReference());
+        }
+
         final ModuleIdentifier moduleIdentifier = ModuleIdentifierImpl.create(stmt.getStatementArgument(),
                 Optional.empty(), revisionDate);