X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2Freactor%2FUsesAugmentGenerator.java;h=e933dbaaed7a20b35acaa0524700e18ff9f09841;hb=ecdcdb340457ded6898193197e88ea33c84d58ae;hp=81c93f723ef157a94728f4682905a654982ef719;hpb=60039d4d027e172f6e1d644fb1c2fa60688c06c0;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/UsesAugmentGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/UsesAugmentGenerator.java index 81c93f723e..e933dbaaed 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/UsesAugmentGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/UsesAugmentGenerator.java @@ -13,6 +13,7 @@ import static java.util.Objects.requireNonNull; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement; /** @@ -24,9 +25,20 @@ final class UsesAugmentGenerator extends AbstractAugmentGenerator { private GroupingGenerator grouping; UsesAugmentGenerator(final AugmentEffectiveStatement statement, final UsesEffectiveStatement uses, - final AbstractCompositeGenerator parent) { + final AbstractCompositeGenerator parent) { super(statement, parent); this.uses = requireNonNull(uses); + + // FIXME: use SchemaTreeAwareEffectiveStatement + var stmt = parent.statement(); + for (var qname : statement.argument().getNodeIdentifiers()) { + final var tmp = stmt; + stmt = stmt.streamEffectiveSubstatements(SchemaTreeEffectiveStatement.class) + .filter(child -> qname.equals(child.argument())) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Failed to find " + qname + " in " + tmp)); + } + setTargetStatement(stmt); } void resolveGrouping(final UsesEffectiveStatement resolvedUses, final GroupingGenerator resolvedGrouping) {