X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=parser%2Fyang-parser-reactor%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Freactor%2FInferredStatementContext.java;h=011603fc1905234afd46bf4190203d4d4385b316;hb=9f7435b4949af08b999ed2b0d0cdb05a98c17e7b;hp=ba888efc4b9131916ed9486c2da2d14481d1d154;hpb=f2f58c4a05c511e5f8a886e874180b1d278a1e5b;p=yangtools.git diff --git a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java index ba888efc4b..011603fc19 100644 --- a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java +++ b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java @@ -426,7 +426,22 @@ final class InferredStatementContext, E extend return null; } - final QName templateQName = qname.bindTo(StmtContextUtils.getRootModuleQName(prototype)); + // Determine if the requested QName can be satisfied from the prototype: for that to happen it has to match + // our transformation implied by targetModule. + final var requestedNamespace = qname.getModule(); + final QName templateQName; + if (targetModule != null) { + if (!targetModule.equals(requestedNamespace)) { + return null; + } + templateQName = qname.bindTo(StmtContextUtils.getRootModuleQName(prototype)); + } else { + if (!StmtContextUtils.getRootModuleQName(prototype).equals(requestedNamespace)) { + return null; + } + templateQName = qname; + } + LOG.debug("Materializing child {} from {}", qname, templateQName); final StmtContext template;