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.common.YangDataName;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
*/
@Beta
public interface BindingRuntimeTypes extends EffectiveModelContextProvider, RuntimeTypeContainer, Immutable {
-
- Optional<IdentityRuntimeType> findIdentity(QName qname);
+ /**
+ * Lookup {@link IdentityRuntimeType} by its QNamme.
+ *
+ * @param qname Identity name
+ * @return {@link IdentityRuntimeType} or {@code null}
+ * @throws NullPointerException if {@code qname} is {@code null}
+ */
+ @Nullable IdentityRuntimeType identityChild(@NonNull QName qname);
Optional<RuntimeType> findSchema(JavaTypeName typeName);
Optional<OutputRuntimeType> findRpcOutput(QName rpcName);
+ Optional<YangDataRuntimeType> findYangData(YangDataName templateName);
+
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());
+ while (it.hasNext() && tmp instanceof RuntimeTypeContainer container) {
+ tmp = container.schemaTreeChild(it.next());
}
return tmp;
}