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=9cf3f6c9514275d2e1815ecc595bf815218be4a7;hb=a9bdd9337094457150a89f630dedd21d70177a90;hp=2190e66a25e0a350e68c6e73590ddbd70cb8e07b;hpb=b0d52d88a50259a179b0f128ba9c5e39f4dd30e9;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 2190e66a25..9cf3f6c951 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 @@ -430,7 +430,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;