Rename DataSchemaContextNode to DataSchemaContext 96/106096/3
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 21 May 2023 10:52:56 +0000 (12:52 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 21 May 2023 11:27:07 +0000 (13:27 +0200)
Drop the 'Node' suffix, as it quite overloaded.

JIRA: YANGTOOLS-1413
Change-Id: I68931049b215239bca1a3382c879200a3e801c4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
20 files changed:
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/InMemoryDataTree.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractStringInstanceIdentifierCodec.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContextNode.java with 81% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContextTree.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/XpathStringParsingPathArgumentBuilder.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/AbstractCompositeContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/AbstractCompositeContextNode.java with 58% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/AbstractContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/AbstractDataSchemaContextNode.java with 69% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/AbstractListLikeContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/AbstractListLikeContextNode.java with 58% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/AbstractPathMixinContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/AbstractMixinContextNode.java with 65% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ChoiceContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ChoiceContextNode.java with 60% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ContainerContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ContainerContextNode.java with 72% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/LeafContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/LeafContextNode.java with 72% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/LeafListContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/LeafListContextNode.java with 68% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/LeafListItemContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/LeafListItemContextNode.java with 72% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ListContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ListContextNode.java with 71% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ListItemContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ListItemContextNode.java with 80% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/MapContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/MapContextNode.java with 70% similarity]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/OpaqueContext.java [moved from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/OpaqueContextNode.java with 74% similarity]
data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/impl/context/YT1412Test.java [moved from data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/impl/model/YT1412Test.java with 77% similarity]

index 1854017f371dfbfc9467425e4a092705dcb5c55b..7052d87df3de3726b400f4a9706bc2285e012481 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.base.MoreObjects;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.VarHandle;
-import java.util.Optional;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
@@ -21,7 +20,6 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
 import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -76,14 +74,14 @@ public final class InMemoryDataTree extends AbstractDataTreeTip implements DataT
     }
 
     private ModificationApplyOperation getOperation(final DataSchemaNode rootSchemaNode) {
-        if (rootSchemaNode instanceof ContainerLike && maskMandatory) {
-            return new ContainerModificationStrategy((ContainerLike) rootSchemaNode, treeConfig);
+        if (rootSchemaNode instanceof ContainerLike rootContainerLike && maskMandatory) {
+            return new ContainerModificationStrategy(rootContainerLike, treeConfig);
         }
-        if (rootSchemaNode instanceof ListSchemaNode) {
+        if (rootSchemaNode instanceof ListSchemaNode rootList) {
             final PathArgument arg = treeConfig.getRootPath().getLastPathArgument();
             if (arg instanceof NodeIdentifierWithPredicates) {
-                return maskMandatory ? new MapEntryModificationStrategy((ListSchemaNode) rootSchemaNode, treeConfig)
-                        : MapEntryModificationStrategy.of((ListSchemaNode) rootSchemaNode, treeConfig);
+                return maskMandatory ? new MapEntryModificationStrategy(rootList, treeConfig)
+                        : MapEntryModificationStrategy.of(rootList, treeConfig);
             }
         }
 
@@ -108,20 +106,20 @@ public final class InMemoryDataTree extends AbstractDataTreeTip implements DataT
 
         LOG.debug("Following schema contexts will be attempted {}", newSchemaContext);
 
-        final DataSchemaContextTree contextTree = DataSchemaContextTree.from(newSchemaContext);
-        final Optional<DataSchemaContextNode> rootContextNode = contextTree.findChild(getRootPath());
+        final var contextTree = DataSchemaContextTree.from(newSchemaContext);
+        final var rootContextNode = contextTree.findChild(getRootPath());
         if (!rootContextNode.isPresent()) {
             LOG.warn("Could not find root {} in new schema context, not upgrading", getRootPath());
             return;
         }
 
-        final DataSchemaNode rootSchemaNode = rootContextNode.orElseThrow().getDataSchemaNode();
+        final var rootSchemaNode = rootContextNode.orElseThrow().dataSchemaNode();
         if (!(rootSchemaNode instanceof DataNodeContainer)) {
             LOG.warn("Root {} resolves to non-container type {}, not upgrading", getRootPath(), rootSchemaNode);
             return;
         }
 
-        final ModificationApplyOperation rootNode = getOperation(rootSchemaNode);
+        final var rootNode = getOperation(rootSchemaNode);
         DataTreeState currentState;
         DataTreeState newState;
         do {
index 2a2fdbe0388ad5ca4b62f1ad40eca1529cdac0c0..dc2a0653011421032448c1c6d5b1398bf72f9a63 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.data.tree.impl.di;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
-import java.util.Optional;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.eclipse.jdt.annotation.NonNull;
@@ -31,7 +30,6 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedExcepti
 import org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree;
 import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
 import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -155,11 +153,11 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
 
     private static DataSchemaNode getRootSchemaNode(final EffectiveModelContext schemaContext,
             final YangInstanceIdentifier rootPath) {
-        final DataSchemaContextTree contextTree = DataSchemaContextTree.from(schemaContext);
-        final Optional<DataSchemaContextNode> rootContextNode = contextTree.findChild(rootPath);
+        final var contextTree = DataSchemaContextTree.from(schemaContext);
+        final var rootContextNode = contextTree.findChild(rootPath);
         checkArgument(rootContextNode.isPresent(), "Failed to find root %s in schema context", rootPath);
 
-        final DataSchemaNode rootSchemaNode = rootContextNode.orElseThrow().getDataSchemaNode();
+        final var rootSchemaNode = rootContextNode.orElseThrow().dataSchemaNode();
         checkArgument(rootSchemaNode instanceof DataNodeContainer, "Root %s resolves to non-container type %s",
             rootPath, rootSchemaNode);
         return rootSchemaNode;
index 109a16876e41ae2ce348bbe88d84b3021dadb39c..b404a2d7287d214f1612322a9f0cb35fa2d6d046 100644 (file)
@@ -23,8 +23,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
 import org.opendaylight.yangtools.yang.data.api.codec.InstanceIdentifierCodec;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.Composite;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.PathMixin;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.Composite;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.PathMixin;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.util.LeafrefResolver;
 
@@ -46,7 +46,7 @@ public abstract class AbstractStringInstanceIdentifierCodec extends AbstractName
     @Override
     protected final String serializeImpl(final YangInstanceIdentifier data) {
         final StringBuilder sb = new StringBuilder();
-        DataSchemaContextNode current = getDataContextTree().getRoot();
+        DataSchemaContext current = getDataContextTree().getRoot();
         QNameModule lastModule = null;
         for (var arg : data.getPathArguments()) {
             current = current instanceof Composite composite ? composite.childByArg(arg) : null;
similarity index 81%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContext.java
index 04abc1fd045f3fef3eaadab72347ba80dde2e9de..65cfcbcec654e7b2297750aca5019b7e2c35eb24 100644 (file)
@@ -20,13 +20,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.Composite;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.SimpleValue;
-import org.opendaylight.yangtools.yang.data.util.impl.model.AbstractCompositeContextNode;
-import org.opendaylight.yangtools.yang.data.util.impl.model.AbstractDataSchemaContextNode;
-import org.opendaylight.yangtools.yang.data.util.impl.model.AbstractMixinContextNode;
-import org.opendaylight.yangtools.yang.data.util.impl.model.LeafContextNode;
-import org.opendaylight.yangtools.yang.data.util.impl.model.LeafListItemContextNode;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.Composite;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.SimpleValue;
+import org.opendaylight.yangtools.yang.data.util.impl.context.AbstractCompositeContext;
+import org.opendaylight.yangtools.yang.data.util.impl.context.AbstractContext;
+import org.opendaylight.yangtools.yang.data.util.impl.context.AbstractPathMixinContext;
+import org.opendaylight.yangtools.yang.data.util.impl.context.LeafContext;
+import org.opendaylight.yangtools.yang.data.util.impl.context.LeafListItemContext;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
@@ -38,11 +38,11 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
  * {@link org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode} and serialization format defined in RFC6020,
  * since the mapping is not one-to-one.
  */
-public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextNode, Composite, SimpleValue {
+public sealed interface DataSchemaContext permits AbstractContext, Composite, SimpleValue {
     /**
-     * A {@link DataSchemaContextNode} containing other {@link DataSchemaContextNode}s.
+     * A {@link DataSchemaContext} containing other {@link DataSchemaContext}s.
      */
-    sealed interface Composite extends DataSchemaContextNode permits PathMixin, AbstractCompositeContextNode {
+    sealed interface Composite extends DataSchemaContext permits PathMixin, AbstractCompositeContext {
         /**
          * Find a child node identifier by its {@link PathArgument}.
          *
@@ -50,7 +50,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
          * @return A child node, or {@code null} if not found
          * @throws NullPointerException if {@code arg} is {@code null}
          */
-        @Nullable DataSchemaContextNode childByArg(PathArgument arg);
+        @Nullable DataSchemaContext childByArg(PathArgument arg);
 
         /**
          * Find a child node identifier by its {code data tree} {@link QName}. This method returns intermediate nodes
@@ -63,7 +63,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
          * @return A child node, or {@code null} if not found
          * @throws NullPointerException if {@code arg} is {@code null}
          */
-        @Nullable DataSchemaContextNode childByQName(QName qname);
+        @Nullable DataSchemaContext childByQName(QName qname);
 
         /**
          * Find a child node as identified by a {@link YangInstanceIdentifier} relative to this node.
@@ -72,7 +72,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
          * @return Child node if present, or empty when corresponding child is not found.
          * @throws NullPointerException if {@code path} is {@code null}
          */
-        default @Nullable DataSchemaContextNode childByPath(final @NonNull YangInstanceIdentifier path) {
+        default @Nullable DataSchemaContext childByPath(final @NonNull YangInstanceIdentifier path) {
             final var it = path.getPathArguments().iterator();
             if (!it.hasNext()) {
                 return this;
@@ -92,7 +92,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
         }
 
         /**
-         * Attempt to enter a child {@link DataSchemaContextNode} towards the {@link DataSchemaNode} child identified by
+         * Attempt to enter a child {@link DataSchemaContext} towards the {@link DataSchemaNode} child identified by
          * specified {@code data tree} {@link QName}, adjusting provided {@code stack} with inference steps
          * corresponding to the transition to the returned node. The stack is expected to be correctly pointing at this
          * node's schema, otherwise the results of this method are undefined.
@@ -102,10 +102,10 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
          * @return A DataSchemaContextNode on the path towards the specified child
          * @throws NullPointerException if any argument is {@code null}
          */
-        @Nullable DataSchemaContextNode enterChild(SchemaInferenceStack stack, QName child);
+        @Nullable DataSchemaContext enterChild(SchemaInferenceStack stack, QName child);
 
         /**
-         * Attempt to enter a child {@link DataSchemaContextNode} towards the {@link DataSchemaNode} child identified by
+         * Attempt to enter a child {@link DataSchemaContext} towards the {@link DataSchemaNode} child identified by
          * specified {@link PathArgument}, adjusting provided {@code stack} with inference steps corresponding to
          * the transition to the returned node. The stack is expected to be correctly pointing at this node's schema,
          * otherwise the results of this method are undefined.
@@ -115,7 +115,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
          * @return A DataSchemaContextNode for the specified child
          * @throws NullPointerException if any argument is {@code null}
          */
-        @Nullable DataSchemaContextNode enterChild(SchemaInferenceStack stack, PathArgument child);
+        @Nullable DataSchemaContext enterChild(SchemaInferenceStack stack, PathArgument child);
     }
 
     /**
@@ -133,7 +133,7 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
     * <p>
     * This trait is important for XML codec, but also for JSON encoding of {@link YangInstanceIdentifier}.
     */
-    sealed interface PathMixin extends Composite permits AbstractMixinContextNode {
+    sealed interface PathMixin extends Composite permits AbstractPathMixinContext {
         /**
          * The mixed-in {@link NodeIdentifier}.
          *
@@ -147,11 +147,11 @@ public sealed interface DataSchemaContextNode permits AbstractDataSchemaContextN
     /**
      * Marker interface for contexts which boil down to a simple, not-structured value. The
      */
-    sealed interface SimpleValue extends DataSchemaContextNode permits LeafContextNode, LeafListItemContextNode {
+    sealed interface SimpleValue extends DataSchemaContext permits LeafContext, LeafListItemContext {
         // Marker interface
     }
 
-    @NonNull DataSchemaNode getDataSchemaNode();
+    @NonNull DataSchemaNode dataSchemaNode();
 
     /**
      * Return the fixed {@link YangInstanceIdentifier} step, if available. This method returns {@code null} for contexts
index ce6e52945b315a9cd15a9b162cc045c5bc72605d..063ae6fbf6975b19f74e9654956cd2069de0b403 100644 (file)
@@ -17,8 +17,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.CheckedValue;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.Composite;
-import org.opendaylight.yangtools.yang.data.util.impl.model.ContainerContextNode;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.Composite;
+import org.opendaylight.yangtools.yang.data.util.impl.context.ContainerContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.spi.AbstractEffectiveModelContextProvider;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
@@ -28,8 +28,8 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
  * schema and data has differences, the mapping is not trivial -- which is where this class comes in.
  */
 public final class DataSchemaContextTree extends AbstractEffectiveModelContextProvider {
-    public record NodeAndStack(@NonNull DataSchemaContextNode node, @NonNull SchemaInferenceStack stack) {
-        public NodeAndStack(final @NonNull DataSchemaContextNode node, final @NonNull SchemaInferenceStack stack) {
+    public record NodeAndStack(@NonNull DataSchemaContext node, @NonNull SchemaInferenceStack stack) {
+        public NodeAndStack(final @NonNull DataSchemaContext node, final @NonNull SchemaInferenceStack stack) {
             this.node = requireNonNull(node);
             this.stack = requireNonNull(stack);
         }
@@ -43,11 +43,11 @@ public final class DataSchemaContextTree extends AbstractEffectiveModelContextPr
             }
         });
 
-    private final @NonNull ContainerContextNode root;
+    private final @NonNull ContainerContext root;
 
     private DataSchemaContextTree(final EffectiveModelContext ctx) {
         super(ctx);
-        root = new ContainerContextNode(ctx);
+        root = new ContainerContext(ctx);
     }
 
     public static @NonNull DataSchemaContextTree from(final @NonNull EffectiveModelContext ctx) {
@@ -61,7 +61,7 @@ public final class DataSchemaContextTree extends AbstractEffectiveModelContextPr
      * @return Child node if present, or empty when corresponding child is not found.
      * @throws NullPointerException if {@code path} is null
      */
-    public @NonNull Optional<@NonNull DataSchemaContextNode> findChild(final @NonNull YangInstanceIdentifier path) {
+    public @NonNull Optional<@NonNull DataSchemaContext> findChild(final @NonNull YangInstanceIdentifier path) {
         // Optional.ofNullable() inline due to annotations
         final var child = root.childByPath(path);
         return child == null ? Optional.empty() : Optional.of(child);
@@ -77,8 +77,8 @@ public final class DataSchemaContextTree extends AbstractEffectiveModelContextPr
      */
     public @NonNull CheckedValue<@NonNull NodeAndStack, @NonNull IllegalArgumentException> enterPath(
             final YangInstanceIdentifier path) {
-        final var stack = SchemaInferenceStack.of((EffectiveModelContext) root.getDataSchemaNode());
-        DataSchemaContextNode node = root;
+        final var stack = SchemaInferenceStack.of((EffectiveModelContext) root.dataSchemaNode());
+        DataSchemaContext node = root;
         for (var arg : path.getPathArguments()) {
             final var child = node instanceof Composite composite ? composite.enterChild(stack, arg) : null;
             if (child == null) {
@@ -90,7 +90,7 @@ public final class DataSchemaContextTree extends AbstractEffectiveModelContextPr
         return CheckedValue.ofValue(new NodeAndStack(node, stack));
     }
 
-    public DataSchemaContextNode.@NonNull Composite getRoot() {
+    public DataSchemaContext.@NonNull Composite getRoot() {
         return root;
     }
 }
index 4e2955f60133f471a633bba00734964683b98183..e238a807863835e38c077dc68e2a928b6d4c19d6 100644 (file)
@@ -22,9 +22,9 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.Composite;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.PathMixin;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.SimpleValue;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.Composite;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.PathMixin;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.SimpleValue;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
@@ -71,7 +71,7 @@ final class XpathStringParsingPathArgumentBuilder implements Mutable {
     private final SchemaInferenceStack stack;
     private final String data;
 
-    private DataSchemaContextNode current;
+    private DataSchemaContext current;
     private QNameModule lastModule;
     private int offset;
 
@@ -113,7 +113,7 @@ final class XpathStringParsingPathArgumentBuilder implements Mutable {
         return computeIdentifierWithPredicate(name);
     }
 
-    private DataSchemaContextNode nextContextNode(final QName qname) {
+    private DataSchemaContext nextContextNode(final QName qname) {
         current = getChild(current, qname);
         checkValid(current != null, "%s is not correct schema node identifier.", qname);
         while (current instanceof PathMixin mixin) {
@@ -124,7 +124,7 @@ final class XpathStringParsingPathArgumentBuilder implements Mutable {
         return current;
     }
 
-    private static DataSchemaContextNode getChild(final DataSchemaContextNode parent, final QName qname) {
+    private static DataSchemaContext getChild(final DataSchemaContext parent, final QName qname) {
         return parent instanceof Composite composite ? composite.childByQName(qname) : null;
     }
 
@@ -170,7 +170,7 @@ final class XpathStringParsingPathArgumentBuilder implements Mutable {
             // Break-out from method for leaf-list case
             if (key == null && currentNode instanceof SimpleValue) {
                 checkValid(offset == data.length(), "Leaf argument must be last argument of instance identifier.");
-                final var currentSchema = currentNode.getDataSchemaNode();
+                final var currentSchema = currentNode.dataSchemaNode();
 
                 final Object value = codec.deserializeKeyValue(currentSchema,
                     type -> resolveLeafref(currentSchema.getQName(), type), keyValue);
@@ -181,7 +181,7 @@ final class XpathStringParsingPathArgumentBuilder implements Mutable {
                 throw iae("%s is not correct schema node identifier.", key);
             }
 
-            final Object value = codec.deserializeKeyValue(keyNode.getDataSchemaNode(),
+            final Object value = codec.deserializeKeyValue(keyNode.dataSchemaNode(),
                 type -> resolveLeafref(key, type), keyValue);
             keyValues.put(key, value);
         }
@@ -5,37 +5,35 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.Composite;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.Composite;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 
-public abstract sealed class AbstractCompositeContextNode extends AbstractDataSchemaContextNode implements Composite
-        permits ListItemContextNode, ContainerContextNode {
+public abstract sealed class AbstractCompositeContext extends AbstractContext implements Composite
+        permits ListItemContext, ContainerContext {
     // FIXME: ImmutableMaps with compare-and-swap updates
-    private final ConcurrentMap<PathArgument, AbstractDataSchemaContextNode> byArg = new ConcurrentHashMap<>();
-    private final ConcurrentMap<QName, AbstractDataSchemaContextNode> byQName = new ConcurrentHashMap<>();
+    private final ConcurrentMap<PathArgument, AbstractContext> byArg = new ConcurrentHashMap<>();
+    private final ConcurrentMap<QName, AbstractContext> byQName = new ConcurrentHashMap<>();
     private final DataNodeContainer container;
 
-    AbstractCompositeContextNode(final NodeIdentifier pathStep, final DataNodeContainer container,
+    AbstractCompositeContext(final NodeIdentifier pathStep, final DataNodeContainer container,
             final DataSchemaNode schema) {
         super(pathStep, schema);
         this.container = requireNonNull(container);
     }
 
     @Override
-    public final AbstractDataSchemaContextNode childByArg(final PathArgument arg) {
+    public final AbstractContext childByArg(final PathArgument arg) {
         final var existing = byArg.get(requireNonNull(arg));
         if (existing != null) {
             return existing;
@@ -44,7 +42,7 @@ public abstract sealed class AbstractCompositeContextNode extends AbstractDataSc
     }
 
     @Override
-    public final AbstractDataSchemaContextNode childByQName(final QName qname) {
+    public final AbstractContext childByQName(final QName qname) {
         var existing = byQName.get(requireNonNull(qname));
         if (existing != null) {
             return existing;
@@ -53,17 +51,16 @@ public abstract sealed class AbstractCompositeContextNode extends AbstractDataSc
     }
 
     @Override
-    public final DataSchemaContextNode enterChild(final SchemaInferenceStack stack, final QName qname) {
+    public final AbstractContext enterChild(final SchemaInferenceStack stack, final QName qname) {
         return pushToStack(stack, childByQName(qname));
     }
 
     @Override
-    public final DataSchemaContextNode enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
+    public final AbstractContext enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
         return pushToStack(stack, childByArg(arg));
     }
 
-    private static @Nullable DataSchemaContextNode pushToStack(final SchemaInferenceStack stack,
-            final @Nullable AbstractDataSchemaContextNode child) {
+    private static AbstractContext pushToStack(final SchemaInferenceStack stack, final AbstractContext child) {
         requireNonNull(stack);
         if (child != null) {
             child.pushToStack(stack);
@@ -71,20 +68,19 @@ public abstract sealed class AbstractCompositeContextNode extends AbstractDataSc
         return child;
     }
 
-    private AbstractDataSchemaContextNode fromLocalSchema(final PathArgument child) {
+    private AbstractContext fromLocalSchema(final PathArgument child) {
         return fromSchemaAndQNameChecked(container, child.getNodeType());
     }
 
-    private static AbstractDataSchemaContextNode fromLocalSchemaAndQName(final DataNodeContainer schema,
-            final QName child) {
+    private static AbstractContext fromLocalSchemaAndQName(final DataNodeContainer schema, final QName child) {
         return fromSchemaAndQNameChecked(schema, child);
     }
 
-    private AbstractDataSchemaContextNode register(final AbstractDataSchemaContextNode potential) {
+    private AbstractContext register(final AbstractContext potential) {
         if (potential != null) {
             // FIXME: use putIfAbsent() to make sure we do not perform accidental overrwrites
             byArg.put(potential.getPathStep(), potential);
-            for (QName qname : potential.qnameIdentifiers()) {
+            for (var qname : potential.qnameIdentifiers()) {
                 byQName.put(qname, potential);
             }
         }
@@ -5,21 +5,19 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
-import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -34,20 +32,19 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
  * {@link org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode} and serialization format defined in RFC6020,
  * since the mapping is not one-to-one.
  */
-public abstract sealed class AbstractDataSchemaContextNode implements DataSchemaContextNode
-        permits AbstractMixinContextNode, AbstractCompositeContextNode,
-                LeafContextNode, LeafListItemContextNode, OpaqueContextNode {
-    private final @Nullable NodeIdentifier pathStep;
+public abstract sealed class AbstractContext implements DataSchemaContext
+        permits AbstractPathMixinContext, AbstractCompositeContext, LeafContext, LeafListItemContext, OpaqueContext {
+    private final NodeIdentifier pathStep;
 
     final @NonNull DataSchemaNode dataSchemaNode;
 
-    AbstractDataSchemaContextNode(final NodeIdentifier pathStep, final DataSchemaNode dataSchemaNode) {
+    AbstractContext(final NodeIdentifier pathStep, final DataSchemaNode dataSchemaNode) {
         this.dataSchemaNode = requireNonNull(dataSchemaNode);
         this.pathStep = pathStep;
     }
 
     @Override
-    public final DataSchemaNode getDataSchemaNode() {
+    public final DataSchemaNode dataSchemaNode() {
         return dataSchemaNode;
     }
 
@@ -56,7 +53,7 @@ public abstract sealed class AbstractDataSchemaContextNode implements DataSchema
         return pathStep;
     }
 
-    Set<QName> qnameIdentifiers() {
+    ImmutableSet<QName> qnameIdentifiers() {
         return ImmutableSet.of(dataSchemaNode.getQName());
     }
 
@@ -70,21 +67,21 @@ public abstract sealed class AbstractDataSchemaContextNode implements DataSchema
         stack.enterSchemaTree(dataSchemaNode.getQName());
     }
 
-    static AbstractDataSchemaContextNode fromSchemaAndQNameChecked(final DataNodeContainer schema, final QName child) {
+    static AbstractContext fromSchemaAndQNameChecked(final DataNodeContainer schema, final QName child) {
         return lenientOf(findChildSchemaNode(schema, child));
     }
 
     private static DataSchemaNode findChildSchemaNode(final DataNodeContainer parent, final QName child) {
-        final DataSchemaNode potential = parent.dataChildByName(child);
+        final var potential = parent.dataChildByName(child);
         return potential == null ? findChoice(Iterables.filter(parent.getChildNodes(), ChoiceSchemaNode.class), child)
                 : potential;
     }
 
     // FIXME: this looks like it should be a Predicate on a stream with findFirst()
     private static ChoiceSchemaNode findChoice(final Iterable<ChoiceSchemaNode> choices, final QName child) {
-        for (ChoiceSchemaNode choice : choices) {
+        for (var choice : choices) {
             // FIXME: this looks weird: what are we looking for again?
-            for (CaseSchemaNode caze : choice.getCases()) {
+            for (var caze : choice.getCases()) {
                 if (findChildSchemaNode(caze, child) != null) {
                     return choice;
                 }
@@ -93,53 +90,53 @@ public abstract sealed class AbstractDataSchemaContextNode implements DataSchema
         return null;
     }
 
-    static @NonNull AbstractDataSchemaContextNode of(final @NonNull DataSchemaNode schema) {
+    static @NonNull AbstractContext of(final @NonNull DataSchemaNode schema) {
         if (schema instanceof ContainerLike containerLike) {
-            return new ContainerContextNode(containerLike);
+            return new ContainerContext(containerLike);
         } else if (schema instanceof ListSchemaNode list) {
             return fromListSchemaNode(list);
         } else if (schema instanceof LeafSchemaNode leaf) {
-            return new LeafContextNode(leaf);
+            return new LeafContext(leaf);
         } else if (schema instanceof ChoiceSchemaNode choice) {
-            return new ChoiceContextNode(choice);
+            return new ChoiceContext(choice);
         } else if (schema instanceof LeafListSchemaNode leafList) {
-            return new LeafListContextNode(leafList);
+            return new LeafListContext(leafList);
         } else if (schema instanceof AnydataSchemaNode anydata) {
-            return new OpaqueContextNode(anydata);
+            return new OpaqueContext(anydata);
         } else if (schema instanceof AnyxmlSchemaNode anyxml) {
-            return new OpaqueContextNode(anyxml);
+            return new OpaqueContext(anyxml);
         } else {
             throw new IllegalStateException("Unhandled schema " + schema);
         }
     }
 
     // FIXME: do we tolerate null argument? do we tolerate unknown subclasses?
-    private static @Nullable AbstractDataSchemaContextNode lenientOf(final @Nullable DataSchemaNode schema) {
+    private static @Nullable AbstractContext lenientOf(final @Nullable DataSchemaNode schema) {
         if (schema instanceof ContainerLike containerLike) {
-            return new ContainerContextNode(containerLike);
+            return new ContainerContext(containerLike);
         } else if (schema instanceof ListSchemaNode list) {
             return fromListSchemaNode(list);
         } else if (schema instanceof LeafSchemaNode leaf) {
-            return new LeafContextNode(leaf);
+            return new LeafContext(leaf);
         } else if (schema instanceof ChoiceSchemaNode choice) {
-            return new ChoiceContextNode(choice);
+            return new ChoiceContext(choice);
         } else if (schema instanceof LeafListSchemaNode leafList) {
-            return new LeafListContextNode(leafList);
+            return new LeafListContext(leafList);
         } else if (schema instanceof AnydataSchemaNode anydata) {
-            return new OpaqueContextNode(anydata);
+            return new OpaqueContext(anydata);
         } else if (schema instanceof AnyxmlSchemaNode anyxml) {
-            return new OpaqueContextNode(anyxml);
+            return new OpaqueContext(anyxml);
         } else {
             return null;
         }
     }
 
-    private static @NonNull AbstractDataSchemaContextNode fromListSchemaNode(final ListSchemaNode potential) {
+    private static @NonNull AbstractContext fromListSchemaNode(final ListSchemaNode potential) {
         var keyDefinition = potential.getKeyDefinition();
         if (keyDefinition.isEmpty()) {
-            return new ListContextNode(potential);
+            return new ListContext(potential);
         } else {
-            return new MapContextNode(potential);
+            return new MapContext(potential);
         }
     }
 }
@@ -5,45 +5,47 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 
 /**
- * An {@link AbstractMixinContextNode} which corresponding to a {@code list} or {@code leaf-list} node. NormalizedNode
- * representation of these nodes is similar to JSON encoding and therefore we have two {@link DataSchemaContextNode}
- * levels backed by a single {@link DataSchemaNode}.
+ * An {@link AbstractPathMixinContext} which corresponding to a {@code list} or {@code leaf-list} node. NormalizedNode
+ * representation of these nodes is similar to JSON encoding and therefore we have two {@link DataSchemaContext} levels
+ * backed by a single {@link DataSchemaNode}.
  */
-abstract sealed class AbstractListLikeContextNode extends AbstractMixinContextNode
-        permits LeafListContextNode, ListContextNode, MapContextNode {
-    private final @NonNull AbstractDataSchemaContextNode child;
+abstract sealed class AbstractListLikeContext extends AbstractPathMixinContext
+        permits LeafListContext, ListContext, MapContext {
+    private final AbstractContext child;
 
-    AbstractListLikeContextNode(final DataSchemaNode schema, final AbstractDataSchemaContextNode child) {
+    AbstractListLikeContext(final DataSchemaNode schema, final AbstractContext child) {
         super(schema);
         this.child = requireNonNull(child);
     }
 
     @Override
-    public final AbstractDataSchemaContextNode childByQName(final QName qname) {
+    public final AbstractContext childByQName(final QName qname) {
         return qname.equals(dataSchemaNode.getQName()) ? child : null;
     }
 
+    @Override
+    public abstract AbstractContext childByArg(PathArgument arg);
+
     // Stack is already pointing to the corresponding statement, now we are just working with the child
     @Override
-    public final AbstractDataSchemaContextNode enterChild(final SchemaInferenceStack stack, final QName qname) {
+    public final AbstractContext enterChild(final SchemaInferenceStack stack, final QName qname) {
         requireNonNull(stack);
         return childByQName(qname);
     }
 
     @Override
-    public final DataSchemaContextNode enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
+    public final AbstractContext enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
         requireNonNull(stack);
         return childByArg(arg);
     }
@@ -5,15 +5,15 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.PathMixin;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.PathMixin;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 
-public abstract sealed class AbstractMixinContextNode extends AbstractDataSchemaContextNode implements PathMixin
-        permits AbstractListLikeContextNode, ChoiceContextNode {
-    AbstractMixinContextNode(final DataSchemaNode schema) {
+public abstract sealed class AbstractPathMixinContext extends AbstractContext implements PathMixin
+        permits AbstractListLikeContext, ChoiceContext {
+    AbstractPathMixinContext(final DataSchemaNode schema) {
         super(NodeIdentifier.create(schema.getQName()), schema);
     }
 }
\ No newline at end of file
similarity index 60%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ChoiceContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ChoiceContext.java
index 4d55778cac0387894b6fd21002feb2b98428861a..aa5387dc4f9ec99e3873001792ec23b1fe6cadd2 100644 (file)
@@ -5,36 +5,33 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
-import java.util.Set;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
+import com.google.common.collect.ImmutableSet;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 
-final class ChoiceContextNode extends AbstractMixinContextNode {
-    private final ImmutableMap<NodeIdentifier, AbstractDataSchemaContextNode> byArg;
-    private final ImmutableMap<QName, AbstractDataSchemaContextNode> byQName;
-    private final ImmutableMap<DataSchemaContextNode, QName> childToCase;
+final class ChoiceContext extends AbstractPathMixinContext {
+    private final ImmutableMap<NodeIdentifier, AbstractContext> byArg;
+    private final ImmutableMap<QName, AbstractContext> byQName;
+    private final ImmutableMap<AbstractContext, QName> childToCase;
 
-    ChoiceContextNode(final ChoiceSchemaNode schema) {
+    ChoiceContext(final ChoiceSchemaNode schema) {
         super(schema);
-        final var childToCaseBuilder = ImmutableMap.<DataSchemaContextNode, QName>builder();
-        final var byQNameBuilder = ImmutableMap.<QName, AbstractDataSchemaContextNode>builder();
-        final var byArgBuilder = ImmutableMap.<NodeIdentifier, AbstractDataSchemaContextNode>builder();
+        final var childToCaseBuilder = ImmutableMap.<AbstractContext, QName>builder();
+        final var byQNameBuilder = ImmutableMap.<QName, AbstractContext>builder();
+        final var byArgBuilder = ImmutableMap.<NodeIdentifier, AbstractContext>builder();
 
         for (var caze : schema.getCases()) {
             for (var cazeChild : caze.getChildNodes()) {
-                final var childOp = AbstractDataSchemaContextNode.of(cazeChild);
+                final var childOp = AbstractContext.of(cazeChild);
                 byArgBuilder.put(childOp.getPathStep(), childOp);
                 childToCaseBuilder.put(childOp, caze.getQName());
                 for (QName qname : childOp.qnameIdentifiers()) {
@@ -49,37 +46,36 @@ final class ChoiceContextNode extends AbstractMixinContextNode {
     }
 
     @Override
-    public AbstractDataSchemaContextNode childByArg(final PathArgument arg) {
+    public AbstractContext childByArg(final PathArgument arg) {
         return byArg.get(requireNonNull(arg));
     }
 
     @Override
-    public AbstractDataSchemaContextNode childByQName(final QName child) {
+    public AbstractContext childByQName(final QName child) {
         return byQName.get(requireNonNull(child));
     }
 
     @Override
-    Set<QName> qnameIdentifiers() {
+    ImmutableSet<QName> qnameIdentifiers() {
         return byQName.keySet();
     }
 
     @Override
-    public DataSchemaContextNode enterChild(final SchemaInferenceStack stack, final QName qname) {
+    public AbstractContext enterChild(final SchemaInferenceStack stack, final QName qname) {
         return pushToStack(stack, childByQName(qname));
     }
 
     @Override
-    public DataSchemaContextNode enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
+    public AbstractContext enterChild(final SchemaInferenceStack stack, final PathArgument arg) {
         return pushToStack(stack, childByArg(arg));
     }
 
     @Override
-    void pushToStack(final @NonNull SchemaInferenceStack stack) {
+    void pushToStack(final SchemaInferenceStack stack) {
         stack.enterChoice(dataSchemaNode.getQName());
     }
 
-    private @Nullable DataSchemaContextNode pushToStack(final SchemaInferenceStack stack,
-            final @Nullable AbstractDataSchemaContextNode child) {
+    private AbstractContext pushToStack(final SchemaInferenceStack stack, final AbstractContext child) {
         requireNonNull(stack);
         if (child != null) {
             final var caseName = verifyNotNull(childToCase.get(child), "No case statement for %s in %s", child, this);
similarity index 72%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ContainerContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ContainerContext.java
index d0df8ebabdc792368d4b1ea59c833a197270bb4c..884470f252e372cd8118c0b0ca2dd445494a1287 100644 (file)
@@ -5,13 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 
-public final class ContainerContextNode extends AbstractCompositeContextNode {
-    public ContainerContextNode(final ContainerLike schema) {
+public final class ContainerContext extends AbstractCompositeContext {
+    public ContainerContext(final ContainerLike schema) {
         super(NodeIdentifier.create(schema.getQName()), schema, schema);
     }
 }
similarity index 72%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/LeafContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/LeafContext.java
index 785194179ac077f7ec607b1c581ac1b772af65e3..a0b4debfd0be3eadb84bfbcf8296a0de1b2d8682 100644 (file)
@@ -5,14 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.SimpleValue;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.SimpleValue;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 
-public final class LeafContextNode extends AbstractDataSchemaContextNode implements SimpleValue {
-    LeafContextNode(final LeafSchemaNode schema) {
+public final class LeafContext extends AbstractContext implements SimpleValue {
+    LeafContext(final LeafSchemaNode schema) {
         super(NodeIdentifier.create(schema.getQName()), schema);
     }
 }
similarity index 68%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/LeafListContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/LeafListContext.java
index 7cd323cb8bdc92cae5005d7466811bd23f9374d4..054a55d0848c124ff216657378a825c4a7effc93 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
@@ -13,13 +13,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithV
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 
-final class LeafListContextNode extends AbstractListLikeContextNode {
-    LeafListContextNode(final LeafListSchemaNode schema) {
-        super(schema, new LeafListItemContextNode(schema));
+final class LeafListContext extends AbstractListLikeContext {
+    LeafListContext(final LeafListSchemaNode schema) {
+        super(schema, new LeafListItemContext(schema));
     }
 
     @Override
-    public AbstractDataSchemaContextNode childByArg(final PathArgument arg) {
+    public AbstractContext childByArg(final PathArgument arg) {
         return requireNonNull(arg) instanceof NodeWithValue ? childByQName(arg.getNodeType()) : null;
     }
 }
@@ -5,14 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
-import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode.SimpleValue;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContext.SimpleValue;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 
-public final class LeafListItemContextNode extends AbstractDataSchemaContextNode implements SimpleValue {
-    LeafListItemContextNode(final LeafListSchemaNode schema) {
+public final class LeafListItemContext extends AbstractContext implements SimpleValue {
+    LeafListItemContext(final LeafListSchemaNode schema) {
         super(null, schema);
     }
 
similarity index 71%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ListContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ListContext.java
index ff9b5b092bb617e818000467574d7f721bd206c1..2c9d01ebf96a133c2f63edaffd639ed94d9f4666 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
@@ -13,15 +13,15 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
-final class ListContextNode extends AbstractListLikeContextNode {
-    ListContextNode(final ListSchemaNode schema) {
+final class ListContext extends AbstractListLikeContext {
+    ListContext(final ListSchemaNode schema) {
         // FIXME: yeah, NodeIdentifier is being used for individual nodes, but it really should not
         //        (they are not addressable)
-        super(schema, new ListItemContextNode(NodeIdentifier.create(schema.getQName()), schema));
+        super(schema, new ListItemContext(NodeIdentifier.create(schema.getQName()), schema));
     }
 
     @Override
-    public AbstractDataSchemaContextNode childByArg(final PathArgument arg) {
+    public AbstractContext childByArg(final PathArgument arg) {
         return requireNonNull(arg) instanceof NodeIdentifier ? childByQName(arg.getNodeType()) : null;
     }
 }
similarity index 80%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/ListItemContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/ListItemContext.java
index 47ed32d3fa202448021335b287ad4b8ba39e135e..da3a708ed02c605a4b36dcdd137928e9706e7366 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
@@ -16,8 +16,8 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 /**
  * Individual list items -- be {@link MapEntryNode} or {@link UnkeyedListEntryNode}.
  */
-final class ListItemContextNode extends AbstractCompositeContextNode {
-    ListItemContextNode(final NodeIdentifier pathStep, final ListSchemaNode schema) {
+final class ListItemContext extends AbstractCompositeContext {
+    ListItemContext(final NodeIdentifier pathStep, final ListSchemaNode schema) {
         super(pathStep, schema, schema);
     }
 
similarity index 70%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/MapContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/MapContext.java
index a93e96386cbf8f0eebb9bc7e60992bd6ba76e505..a31ab9d91148c544f99b5b099934e7f65bcb6d28 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static java.util.Objects.requireNonNull;
 
@@ -13,13 +13,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
-final class MapContextNode extends AbstractListLikeContextNode {
-    MapContextNode(final ListSchemaNode list) {
-        super(list, new ListItemContextNode(null, list));
+final class MapContext extends AbstractListLikeContext {
+    MapContext(final ListSchemaNode list) {
+        super(list, new ListItemContext(null, list));
     }
 
     @Override
-    public AbstractDataSchemaContextNode childByArg(final PathArgument arg) {
+    public AbstractContext childByArg(final PathArgument arg) {
         return requireNonNull(arg) instanceof NodeIdentifierWithPredicates ? childByQName(arg.getNodeType()) : null;
     }
 }
similarity index 74%
rename from data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/model/OpaqueContextNode.java
rename to data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/impl/context/OpaqueContext.java
index 5ede935c4dfb52fe8623c95e897c1b31395fad99..50591ba052ed8972b647f818de6a0f7650b0ae0d 100644 (file)
@@ -5,13 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 
-final class OpaqueContextNode extends AbstractDataSchemaContextNode {
-    OpaqueContextNode(final DataSchemaNode schema) {
+final class OpaqueContext extends AbstractContext {
+    OpaqueContext(final DataSchemaNode schema) {
         super(NodeIdentifier.create(schema.getQName()), schema);
     }
 }
similarity index 77%
rename from data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/impl/model/YT1412Test.java
rename to data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/impl/context/YT1412Test.java
index 825eacc126534374c4d7bdfaedcc3e9f90311fcc..70f8bff32c97e8de5c8b2a6d21161c52e4361259 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.util.impl.model;
+package org.opendaylight.yangtools.yang.data.util.impl.context;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -51,16 +51,16 @@ class YT1412Test {
 
     @Test
     void testEnterThroughChoice() {
-        final var one = assertInstanceOf(ContainerContextNode.class, CONTEXT.getRoot().enterChild(stack, ONE));
+        final var one = assertInstanceOf(ContainerContext.class, CONTEXT.getRoot().enterChild(stack, ONE));
         assertInstanceOf(ContainerEffectiveStatement.class, stack.currentStatement());
 
-        final var two = assertInstanceOf(ChoiceContextNode.class, one.enterChild(stack, FOUR));
+        final var two = assertInstanceOf(ChoiceContext.class, one.enterChild(stack, FOUR));
         assertInstanceOf(ChoiceEffectiveStatement.class, stack.currentStatement());
 
-        final var three = assertInstanceOf(ChoiceContextNode.class, two.enterChild(stack, FOUR));
+        final var three = assertInstanceOf(ChoiceContext.class, two.enterChild(stack, FOUR));
         assertInstanceOf(ChoiceEffectiveStatement.class, stack.currentStatement());
 
-        assertInstanceOf(LeafContextNode.class, three.enterChild(stack, FOUR));
+        assertInstanceOf(LeafContext.class, three.enterChild(stack, FOUR));
         assertInstanceOf(LeafEffectiveStatement.class, stack.currentStatement());
 
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, FOUR, FOUR), stack.toSchemaNodeIdentifier());
@@ -68,13 +68,13 @@ class YT1412Test {
 
     @Test
     void testEnterThroughAugment() {
-        final var one = assertInstanceOf(ContainerContextNode.class, CONTEXT.getRoot().enterChild(stack, ONE));
+        final var one = assertInstanceOf(ContainerContext.class, CONTEXT.getRoot().enterChild(stack, ONE));
         assertInstanceOf(ContainerEffectiveStatement.class, stack.currentStatement());
 
-        final var five = assertInstanceOf(ListContextNode.class, one.enterChild(stack, FIVE));
+        final var five = assertInstanceOf(ListContext.class, one.enterChild(stack, FIVE));
         assertInstanceOf(ListEffectiveStatement.class, stack.currentStatement());
 
-        assertInstanceOf(ListItemContextNode.class, five.enterChild(stack, FIVE));
+        assertInstanceOf(ListItemContext.class, five.enterChild(stack, FIVE));
         assertInstanceOf(ListEffectiveStatement.class, stack.currentStatement());
 
         assertEquals(Absolute.of(ONE, FIVE), stack.toSchemaNodeIdentifier());
@@ -82,16 +82,16 @@ class YT1412Test {
 
     @Test
     void testEnterThroughAugmentChoiceAugment() {
-        final var one = assertInstanceOf(ContainerContextNode.class, CONTEXT.getRoot().enterChild(stack, ONE));
+        final var one = assertInstanceOf(ContainerContext.class, CONTEXT.getRoot().enterChild(stack, ONE));
         assertInstanceOf(ContainerEffectiveStatement.class, stack.currentStatement());
 
-        final var two = assertInstanceOf(ChoiceContextNode.class, one.enterChild(stack, SIX));
+        final var two = assertInstanceOf(ChoiceContext.class, one.enterChild(stack, SIX));
         assertInstanceOf(ChoiceEffectiveStatement.class, stack.currentStatement());
 
-        final var three = assertInstanceOf(ChoiceContextNode.class, two.enterChild(stack, SIX));
+        final var three = assertInstanceOf(ChoiceContext.class, two.enterChild(stack, SIX));
         assertInstanceOf(ChoiceEffectiveStatement.class, stack.currentStatement());
 
-        assertInstanceOf(LeafContextNode.class, three.enterChild(stack, SIX));
+        assertInstanceOf(LeafContext.class, three.enterChild(stack, SIX));
         assertInstanceOf(LeafEffectiveStatement.class, stack.currentStatement());
 
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, SIX, SIX), stack.toSchemaNodeIdentifier());
@@ -101,7 +101,7 @@ class YT1412Test {
     void testEnterChoicePath() {
         final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, TWO, THREE, FOUR)).orElseThrow();
 
-        assertInstanceOf(LeafContextNode.class, result.node());
+        assertInstanceOf(LeafContext.class, result.node());
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, FOUR, FOUR), result.stack().toSchemaNodeIdentifier());
     }
 
@@ -109,7 +109,7 @@ class YT1412Test {
     void testEnterAugmentPath() {
         final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, FIVE, FIVE)).orElseThrow();
 
-        assertInstanceOf(ListItemContextNode.class, result.node());
+        assertInstanceOf(ListItemContext.class, result.node());
         assertEquals(Absolute.of(ONE, FIVE), result.stack().toSchemaNodeIdentifier());
     }
 
@@ -117,7 +117,7 @@ class YT1412Test {
     void testEnterAugmentChoicePath() {
         final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, TWO, THREE, SIX)).orElseThrow();
 
-        assertInstanceOf(LeafContextNode.class, result.node());
+        assertInstanceOf(LeafContext.class, result.node());
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, SIX, SIX), result.stack().toSchemaNodeIdentifier());
     }
 }