Add DataSchemaContext.of(DataSchemaNode) 36/106536/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 19 Jun 2023 17:57:38 +0000 (19:57 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 19 Jun 2023 18:02:36 +0000 (20:02 +0200)
This factory method is still needed by downstreams, reintroduce it with
stricter semantics.

JIRA: YANGTOOLS-1413
Change-Id: I9d1c0908b1d02f5b2575999ab290b65266bfa8f7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContext.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/AbstractContext.java

index 65cfcbcec654e7b2297750aca5019b7e2c35eb24..d911710a496a475e53d684fec0c7401ebaa874da 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.data.util;
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -151,6 +153,18 @@ public sealed interface DataSchemaContext permits AbstractContext, Composite, Si
         // Marker interface
     }
 
+    /**
+     * Get a {@link DataSchemaContext} for a particular {@link DataSchemaNode}.
+     *
+     * @param schema Backing DataSchemaNode
+     * @return A {@link DataSchemaContext}
+     * @throws NullPointerException if {@code schema} is {@code null}
+     * @throws IllegalStateException if {@code schema} is not handled
+     */
+    static @NonNull DataSchemaContext of(final DataSchemaNode schema) {
+        return AbstractContext.of(requireNonNull(schema));
+    }
+
     @NonNull DataSchemaNode dataSchemaNode();
 
     /**
index b7759e16964ae20392fbc1c51581c9fc3f516c71..952a95dc68ed5283028f34940db82805110b3ea7 100644 (file)
@@ -90,7 +90,7 @@ public abstract sealed class AbstractContext implements DataSchemaContext
         return null;
     }
 
-    static @NonNull AbstractContext of(final @NonNull DataSchemaNode schema) {
+    public static @NonNull AbstractContext of(final @NonNull DataSchemaNode schema) {
         if (schema instanceof ContainerLike containerLike) {
             return new ContainerContext(containerLike);
         } else if (schema instanceof ListSchemaNode list) {