Drop the 'Node' suffix, as it quite overloaded.
JIRA: YANGTOOLS-1413
Change-Id: I68931049b215239bca1a3382c879200a3e801c4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
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;
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;
}
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);
}
}
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 {
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;
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;
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;
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;
@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;
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;
* {@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}.
*
* @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
* @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.
* @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;
}
/**
- * 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.
* @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.
* @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);
}
/**
* <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}.
*
/**
* 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
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;
* 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);
}
}
});
- 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) {
* @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);
*/
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) {
return CheckedValue.ofValue(new NodeAndStack(node, stack));
}
- public DataSchemaContextNode.@NonNull Composite getRoot() {
+ public DataSchemaContext.@NonNull Composite getRoot() {
return root;
}
}
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;
private final SchemaInferenceStack stack;
private final String data;
- private DataSchemaContextNode current;
+ private DataSchemaContext current;
private QNameModule lastModule;
private int offset;
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) {
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;
}
// 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);
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);
}
* 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;
}
@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;
}
@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);
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);
}
}
* 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;
* {@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;
}
return pathStep;
}
- Set<QName> qnameIdentifiers() {
+ ImmutableSet<QName> qnameIdentifiers() {
return ImmutableSet.of(dataSchemaNode.getQName());
}
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;
}
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);
}
}
}
* 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);
}
* 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
* 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()) {
}
@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);
* 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);
}
}
* 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);
}
}
* 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.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;
}
}
* 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);
}
* 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.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;
}
}
* 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;
/**
* 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);
}
* 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.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;
}
}
* 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);
}
}
* 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;
@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());
@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());
@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());
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());
}
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());
}
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());
}
}