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%2FCaseGenerator.java;h=1b3bc495db6487f65e8d42dbdc235f69e9129166;hb=ecdcdb340457ded6898193197e88ea33c84d58ae;hp=84a29c0a85792c16320b1e45a33b5fd244051b41;hpb=60039d4d027e172f6e1d644fb1c2fa60688c06c0;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/CaseGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/CaseGenerator.java index 84a29c0a85..1b3bc495db 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/CaseGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/CaseGenerator.java @@ -9,17 +9,23 @@ package org.opendaylight.mdsal.binding.generator.impl.reactor; import static com.google.common.base.Verify.verify; +import java.util.List; +import org.opendaylight.mdsal.binding.generator.impl.rt.DerivedCaseRuntimeType; +import org.opendaylight.mdsal.binding.generator.impl.rt.OriginalCaseRuntimeType; import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.model.ri.BindingTypes; +import org.opendaylight.mdsal.binding.runtime.api.AugmentRuntimeType; +import org.opendaylight.mdsal.binding.runtime.api.CaseRuntimeType; +import org.opendaylight.mdsal.binding.runtime.api.RuntimeType; import org.opendaylight.yangtools.yang.model.api.stmt.CaseEffectiveStatement; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; /** * Generator corresponding to a {@code case} statement. */ -final class CaseGenerator extends CompositeSchemaTreeGenerator { - CaseGenerator(final CaseEffectiveStatement statement, final AbstractCompositeGenerator parent) { +final class CaseGenerator extends CompositeSchemaTreeGenerator { + CaseGenerator(final CaseEffectiveStatement statement, final AbstractCompositeGenerator parent) { super(statement, parent); } @@ -36,10 +42,10 @@ final class CaseGenerator extends CompositeSchemaTreeGenerator parent = getParent(); + final AbstractCompositeGenerator parent = getParent(); final ChoiceGenerator choice; if (parent instanceof AbstractAugmentGenerator) { - final AbstractCompositeGenerator target = ((AbstractAugmentGenerator) parent).targetGenerator(); + final AbstractCompositeGenerator target = ((AbstractAugmentGenerator) parent).targetGenerator(); verify(target instanceof ChoiceGenerator, "Unexpected parent augment %s target %s", parent, target); choice = (ChoiceGenerator) target; } else { @@ -66,4 +72,13 @@ final class CaseGenerator extends CompositeSchemaTreeGenerator children, final List augments) { + final var original = getOriginal(); + return statement.equals(original.statement()) + ? new OriginalCaseRuntimeType(type, statement, children, augments) + : new DerivedCaseRuntimeType(type, statement, children, augments, original.runtimeType().orElseThrow()); + } }