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%2Frt%2FDefaultBindingRuntimeTypes.java;h=9222de82662bb49b7876b2ed0c98a510ff7da4f1;hb=0ee55d1f9da11dd03ff05fc67d10cbcbfe63fd2c;hp=9bd748f7ddb1933c88cc94e9e75e51a2cef149e4;hpb=2037a8c6e17b521c9ccf1ee3a1a965fa96cade3d;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/rt/DefaultBindingRuntimeTypes.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/rt/DefaultBindingRuntimeTypes.java index 9bd748f7dd..9222de8266 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/rt/DefaultBindingRuntimeTypes.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/rt/DefaultBindingRuntimeTypes.java @@ -11,13 +11,18 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Maps; +import com.google.common.collect.SetMultimap; import java.util.Map; import java.util.Optional; +import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.model.api.JavaTypeName; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeTypes; +import org.opendaylight.mdsal.binding.runtime.api.CaseRuntimeType; +import org.opendaylight.mdsal.binding.runtime.api.ChoiceRuntimeType; import org.opendaylight.mdsal.binding.runtime.api.GeneratedRuntimeType; import org.opendaylight.mdsal.binding.runtime.api.IdentityRuntimeType; import org.opendaylight.mdsal.binding.runtime.api.InputRuntimeType; @@ -33,6 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; */ public final class DefaultBindingRuntimeTypes implements BindingRuntimeTypes { private final @NonNull EffectiveModelContext context; + private final ImmutableSetMultimap choiceToCases; private final ImmutableMap modulesByNamespace; private final ImmutableSortedMap modulesByPackage; private final ImmutableMap identities; @@ -43,12 +49,14 @@ public final class DefaultBindingRuntimeTypes implements BindingRuntimeTypes { public DefaultBindingRuntimeTypes(final EffectiveModelContext context, final Map modules, final Map types, final Map identities, final Map rpcInputs, - final Map rpcOutputs) { + final Map rpcOutputs, + final SetMultimap choiceToCases) { this.context = requireNonNull(context); this.identities = ImmutableMap.copyOf(identities); this.types = ImmutableMap.copyOf(types); this.rpcInputs = ImmutableMap.copyOf(rpcInputs); this.rpcOutputs = ImmutableMap.copyOf(rpcOutputs); + this.choiceToCases = ImmutableSetMultimap.copyOf(choiceToCases); modulesByNamespace = ImmutableMap.copyOf(modules); modulesByPackage = ImmutableSortedMap.copyOf(Maps.uniqueIndex(modules.values(), @@ -93,6 +101,11 @@ public final class DefaultBindingRuntimeTypes implements BindingRuntimeTypes { return Optional.ofNullable(rpcOutputs.get(requireNonNull(rpcName))); } + @Override + public Set allCaseChildren(final ChoiceRuntimeType choiceType) { + return choiceToCases.get(choiceType.getIdentifier()); + } + @Override public String toString() { return MoreObjects.toStringHelper(this)