X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-runtime-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fruntime%2Fapi%2FBindingRuntimeTypes.java;h=73235013f51ca3d187b1708bdf65ae66dc2cd944;hb=refs%2Fchanges%2F45%2F98245%2F100;hp=d0ac16642ab2fbe5979223eccbdfe1f15bd1d7fb;hpb=8f2a259e8bf106c4b33acd8df3a7dbe19aaa43d0;p=mdsal.git diff --git a/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/BindingRuntimeTypes.java b/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/BindingRuntimeTypes.java index d0ac16642a..73235013f5 100644 --- a/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/BindingRuntimeTypes.java +++ b/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/BindingRuntimeTypes.java @@ -8,33 +8,34 @@ package org.opendaylight.mdsal.binding.runtime.api; import com.google.common.annotations.Beta; -import com.google.common.collect.Multimap; -import java.util.Collection; import java.util.Optional; -import org.opendaylight.mdsal.binding.model.api.Type; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.mdsal.binding.model.api.JavaTypeName; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; -import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; /** * The result of BindingGenerator run. Contains mapping between Types and SchemaNodes. */ @Beta -public interface BindingRuntimeTypes extends EffectiveModelContextProvider, Immutable { +public interface BindingRuntimeTypes extends EffectiveModelContextProvider, RuntimeTypeContainer, Immutable { - Optional findAugmentation(Type type); + Optional findIdentity(QName qname); - Optional findIdentity(QName qname); + Optional findSchema(JavaTypeName typeName); - Optional findSchema(Type type); + Optional findRpcInput(QName rpcName); - Optional findType(WithStatus schema); + Optional findRpcOutput(QName rpcName); - Optional findOriginalAugmentationType(AugmentationSchemaNode augment); - - Multimap getChoiceToCases(); - - Collection findCases(Type choiceType); + default @Nullable RuntimeType schemaTreeChild(final Absolute path) { + final var it = path.getNodeIdentifiers().iterator(); + var tmp = schemaTreeChild(it.next()); + while (it.hasNext() && tmp instanceof RuntimeTypeContainer) { + tmp = ((RuntimeTypeContainer) tmp).schemaTreeChild(it.next()); + } + return tmp; + } }