X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2FImportStatementDefinition.java;h=77337197b990d5cadb6c70206c24999265531a61;hb=refs%2Fchanges%2F55%2F52055%2F10;hp=74fb2afd1bbaca846a058aae005f7d1a2dec2607;hpb=cde047f709ab56c39012678faba8b56da458d05b;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java index 74fb2afd1b..77337197b9 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java @@ -83,6 +83,13 @@ public class ImportStatementDefinition extends @Override public void onPreLinkageDeclared(final Mutable> stmt) { + /* + * Add ModuleIdentifier of a module which is required by this module. + * Based on this information, required modules are searched from library + * sources. + */ + stmt.addRequiredModule(RevisionImport.getImportedModuleIdentifier(stmt)); + final String moduleName = stmt.getStatementArgument(); final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_PRE_LINKAGE); final Prerequisite> imported = importAction.requiresCtx(stmt, @@ -93,7 +100,7 @@ public class ImportStatementDefinition extends importAction.apply(new InferenceAction() { @Override public void apply() { - StmtContext importedModuleContext = imported.get(); + final StmtContext importedModuleContext = imported.get(); Verify.verify(moduleName.equals(importedModuleContext.getStatementArgument())); final URI importedModuleNamespace = importedModuleContext.getFromNamespace(ModuleNameToNamespace.class, moduleName); @@ -149,7 +156,7 @@ public class ImportStatementDefinition extends StmtContext importedModule = null; ModuleIdentifier importedModuleIdentifier = null; if (impIdentifier.getRevision() == SimpleDateFormatUtil.DEFAULT_DATE_IMP) { - Entry>> recentModuleEntry = findRecentModule( + final Entry>> recentModuleEntry = findRecentModule( impIdentifier, stmt.getAllFromNamespace(ModuleNamespace.class)); if (recentModuleEntry != null) { importedModuleIdentifier = recentModuleEntry.getKey(); @@ -163,7 +170,7 @@ public class ImportStatementDefinition extends } linkageTarget.get().addToNs(ImportedModuleContext.class, importedModuleIdentifier, importedModule); - String impPrefix = firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class); + final String impPrefix = firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class); stmt.addToNs(ImpPrefixToModuleIdentifier.class, impPrefix, importedModuleIdentifier); final URI modNs = firstAttributeOf(importedModule.declaredSubstatements(), NamespaceStatement.class); @@ -188,7 +195,7 @@ public class ImportStatementDefinition extends ModuleIdentifier recentModuleIdentifier = impIdentifier; Entry>> recentModuleEntry = null; - for (Entry>> moduleEntry : allModules + for (final Entry>> moduleEntry : allModules .entrySet()) { final ModuleIdentifier id = moduleEntry.getKey(); @@ -229,7 +236,7 @@ public class ImportStatementDefinition extends importAction.apply(new InferenceAction() { @Override public void apply() { - Entry> importedModuleEntry= findRecentCompatibleModuleEntry( + final Entry> importedModuleEntry= findRecentCompatibleModuleEntry( impIdentifier.getName(), stmt); StmtContext importedModule = null; @@ -246,7 +253,7 @@ public class ImportStatementDefinition extends } linkageTarget.get().addToNs(ImportedModuleContext.class, importedModuleIdentifier, importedModule); - String impPrefix = firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class); + final String impPrefix = firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class); stmt.addToNs(ImpPrefixToModuleIdentifier.class, impPrefix, importedModuleIdentifier); stmt.addToNs(ImpPrefixToSemVerModuleIdentifier.class, impPrefix, semVerModuleIdentifier);