Change BindingRuntimeTypes.findIdentity() 61/109361/4
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 16 Dec 2023 22:43:15 +0000 (23:43 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 17 Dec 2023 01:53:28 +0000 (02:53 +0100)
Rename the method to identityChild(), returning a @Nullable instead of
an Optional. Add the appropriate documentation.

Change-Id: I9c95c61d015595f876371cfc5e1e521a1b4b3cbe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/rt/DefaultBindingRuntimeTypes.java
binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/AbstractBindingRuntimeContext.java
binding/mdsal-binding-runtime-api/src/main/java/org/opendaylight/mdsal/binding/runtime/api/BindingRuntimeTypes.java

index 22709fac7aaab4b109d428f414bb230047632ef7..13c49461c2f7925caa727a56c654941abedc02e1 100644 (file)
@@ -71,8 +71,8 @@ public final class DefaultBindingRuntimeTypes implements BindingRuntimeTypes {
     }
 
     @Override
-    public Optional<IdentityRuntimeType> findIdentity(final QName qname) {
-        return Optional.ofNullable(identities.get(requireNonNull(qname)));
+    public IdentityRuntimeType identityChild(final QName qname) {
+        return identities.get(requireNonNull(qname));
     }
 
     @Override
index bf0dc18a1de77c4392c859b2b8e247dbd45fdf64..e5006154df301f878f0fb9a3c2e5609288f9dee1 100644 (file)
@@ -40,8 +40,10 @@ public abstract class AbstractBindingRuntimeContext implements BindingRuntimeCon
         CacheBuilder.newBuilder().weakValues().build(new CacheLoader<>() {
             @Override
             public Class<? extends BaseIdentity> 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) {
index b7d102d290eee6e4ce8c29ac1fc6ec89b1b84fa0..6837ef6655dd731b8f6ce0a91a465deea02331f2 100644 (file)
@@ -25,8 +25,14 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol
  */
 @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);