From: Robert Varga Date: Sat, 16 Dec 2023 22:43:15 +0000 (+0100) Subject: Change BindingRuntimeTypes.findIdentity() X-Git-Tag: v13.0.0~72 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F61%2F109361%2F4;p=mdsal.git Change BindingRuntimeTypes.findIdentity() Rename the method to identityChild(), returning a @Nullable instead of an Optional. Add the appropriate documentation. Change-Id: I9c95c61d015595f876371cfc5e1e521a1b4b3cbe Signed-off-by: Robert Varga --- 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 22709fac7a..13c49461c2 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 @@ -71,8 +71,8 @@ public final class DefaultBindingRuntimeTypes implements BindingRuntimeTypes { } @Override - public Optional findIdentity(final QName qname) { - return Optional.ofNullable(identities.get(requireNonNull(qname))); + public IdentityRuntimeType identityChild(final QName qname) { + return identities.get(requireNonNull(qname)); } @Override diff --git a/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/AbstractBindingRuntimeContext.java b/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/AbstractBindingRuntimeContext.java index bf0dc18a1d..e5006154df 100644 --- a/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/AbstractBindingRuntimeContext.java +++ b/binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/AbstractBindingRuntimeContext.java @@ -40,8 +40,10 @@ public abstract class AbstractBindingRuntimeContext implements BindingRuntimeCon CacheBuilder.newBuilder().weakValues().build(new CacheLoader<>() { @Override public Class load(final QName key) { - final var type = getTypes().findIdentity(key).orElseThrow( - () -> new IllegalArgumentException("Supplied QName " + key + " is not a valid identity")); + final var type = getTypes().identityChild(key); + if (type == null) { + throw new IllegalArgumentException("Supplied QName " + key + " is not a valid identity"); + } try { return loadClass(type.getIdentifier()).asSubclass(BaseIdentity.class); } catch (ClassNotFoundException e) { 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 b7d102d290..6837ef6655 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 @@ -25,8 +25,14 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol */ @Beta public interface BindingRuntimeTypes extends EffectiveModelContextProvider, RuntimeTypeContainer, Immutable { - - Optional 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 findSchema(JavaTypeName typeName);