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%2FAbstractCompositeGenerator.java;h=5d74b61ad083ffde5e27683cd134c432daa13ada;hb=b1e88583f0d16ef8b8dab5d43f61978e064e27e5;hp=938412c1d5e9ff787d1560d36d71d6bf08b26676;hpb=102cb4f97d7ce0c79a9f0f0e03e29d2793735e2f;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java index 938412c1d5..5d74b61ad0 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java @@ -14,12 +14,12 @@ import static java.util.Objects.requireNonNull; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.binding.model.api.Enumeration; import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; -import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.model.ri.BindingTypes; @@ -172,16 +172,14 @@ public abstract class AbstractCompositeGenerator createBuilder(S statement); @Override final R createInternalRuntimeType(final AugmentResolver resolver, final S statement, final Type type) { - verify(type instanceof GeneratedType, "Unexpected type %s", type); - return createBuilder(statement).populate(resolver, this).build((GeneratedType) type); + return createBuilder(statement).populate(resolver, this).build(verifyGeneratedType(type)); } @Override @@ -269,6 +267,29 @@ public abstract class AbstractCompositeGenerator skippedChildren) { + // Link to used groupings IFF we have a corresponding generated Java class + switch (classPlacement()) { + case NONE: + case PHANTOM: + break; + default: + for (var grouping : groupings()) { + grouping.addUser(this); + } + } + + for (var child : childGenerators) { + if (child instanceof GroupingGenerator grouping) { + skippedChildren.add(grouping); + } else if (child instanceof AbstractCompositeGenerator composite) { + composite.linkUsedGroupings(skippedChildren); + } + } + } + final void startUsesAugmentLinkage(final List requirements) { for (var child : childGenerators) { if (child instanceof UsesAugmentGenerator uses) { @@ -577,7 +598,7 @@ public abstract class AbstractCompositeGenerator stmt) { if (stmt instanceof AddedByUsesAware aware - && (aware.isAddedByUses() || stmt instanceof CopyableNode copyable && copyable.isAugmenting())) { + && (aware.isAddedByUses() || aware instanceof CopyableNode copyable && copyable.isAugmenting())) { return false; } return true;