X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fnamespace%2FStmtNamespaceContext.java;h=bbf8043be15cbcd5b01d390784581314ff36f656;hb=bb9c8c8751e338d2e683063144d1d5810b22eee7;hp=38bd6c144a01cd4342b90e6076c4fa3f58ee6d70;hpb=5fe0d9e2a63cc9cf3be8c39f32305cf9e2a8be4e;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/StmtNamespaceContext.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/StmtNamespaceContext.java index 38bd6c144a..bbf8043be1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/StmtNamespaceContext.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/StmtNamespaceContext.java @@ -39,9 +39,9 @@ final class StmtNamespaceContext implements YangNamespaceContext { this.moduleToPrefix = qnameToPrefix == null ? ImmutableBiMap.of() : ImmutableBiMap.copyOf(qnameToPrefix); // Additional mappings + final Map additional = new HashMap<>(); final Map> imports = ctx.getAllFromNamespace(ImportPrefixToModuleCtx.class); if (imports != null) { - final Map additional = new HashMap<>(); for (Entry> entry : imports.entrySet()) { if (!moduleToPrefix.containsValue(entry.getKey())) { QNameModule qnameModule = ctx.getFromNamespace(ModuleCtxToModuleQName.class, entry.getValue()); @@ -56,10 +56,20 @@ final class StmtNamespaceContext implements YangNamespaceContext { } } } - this.prefixToModule = ImmutableMap.copyOf(additional); - } else { - this.prefixToModule = ImmutableMap.of(); } + if (ctx.producesDeclared(SubmoduleStatement.class)) { + final Map belongsTo = ctx.getAllFromNamespace(BelongsToPrefixToModuleName.class); + if (belongsTo != null) { + for (Entry entry : belongsTo.entrySet()) { + final QNameModule module = ctx.getFromNamespace(ModuleNameToModuleQName.class, entry.getValue()); + if (module != null && !additional.containsKey(entry.getKey())) { + additional.put(entry.getKey(), module); + } + } + } + } + + this.prefixToModule = ImmutableMap.copyOf(additional); } @Override