<artifactId>yang-data-transform</artifactId>
<version>8.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-api</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-spi</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-codec-binfmt</artifactId>
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
requires transitive org.opendaylight.yangtools.yang.common;
requires transitive org.opendaylight.yangtools.yang.model.api;
requires transitive org.opendaylight.yangtools.yang.data.api;
+ requires transitive org.opendaylight.yangtools.yang.data.tree.api;
+ requires transitive org.opendaylight.yangtools.yang.data.tree.spi;
requires java.xml;
requires org.opendaylight.yangtools.yang.data.impl;
requires org.opendaylight.yangtools.rfc8528.data.api;
import static java.util.Objects.requireNonNull;
import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Abstract base class for our internal implementation of {@link DataTreeCandidateNode},
* this component.
*/
abstract class AbstractDataTreeCandidateNode implements DataTreeCandidateNode {
- private final ModificationType type;
+ private final @NonNull ModificationType type;
AbstractDataTreeCandidateNode(final ModificationType type) {
this.type = requireNonNull(type);
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidateNodes;
+import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* A deserialized {@link DataTreeCandidateNode} which represents a deletion.
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* A deserialized {@link DataTreeCandidateNode} which represents a modification in
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class UnmodifiedRootDataTreeCandidateNode extends AbstractDataTreeCandidateNode {
static final UnmodifiedRootDataTreeCandidateNode INSTANCE = new UnmodifiedRootDataTreeCandidateNode();
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
<module>yang-data-transform</module>
<module>yang-data-util</module>
+ <!-- Data Tree API and implementation -->
+ <module>yang-data-tree-api</module>
+ <module>yang-data-tree-spi</module>
+
<!-- Metadata (annotation) metamodel support -->
<module>rfc7952-data-api</module>
<module>rfc7952-data-util</module>
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.api.schema.tree;
-
-import static java.util.Objects.requireNonNull;
-
-import java.util.Optional;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-
-/**
- * A {@link DataTreeModification} implementation which delegates all calls to
- * another instance, making sure no method is being invoked from multiple threads
- * concurrently.
- */
-public final class SynchronizedDataTreeModification implements DataTreeModification {
- private final DataTreeModification delegate;
-
- private SynchronizedDataTreeModification(final DataTreeModification delegate) {
- this.delegate = requireNonNull(delegate);
- }
-
- public static DataTreeModification create(final DataTreeModification delegate) {
- return new SynchronizedDataTreeModification(delegate);
- }
-
- @Override
- public synchronized Optional<NormalizedNode> readNode(final YangInstanceIdentifier path) {
- return delegate.readNode(path);
- }
-
- @Override
- public synchronized DataTreeModification newModification() {
- return delegate.newModification();
- }
-
- @Override
- public synchronized void delete(final YangInstanceIdentifier path) {
- delegate.delete(path);
- }
-
- @Override
- public synchronized void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
- delegate.merge(path, data);
- }
-
- @Override
- public synchronized void write(final YangInstanceIdentifier path, final NormalizedNode data) {
- delegate.write(path, data);
- }
-
- @Override
- public synchronized void ready() {
- delegate.ready();
- }
-
- @Override
- public synchronized void applyToCursor(final DataTreeModificationCursor cursor) {
- delegate.applyToCursor(cursor);
- }
-
- @Override
- public synchronized EffectiveModelContext getEffectiveModelContext() {
- return delegate.getEffectiveModelContext();
- }
-}
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-spi</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-spi</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-util</artifactId>
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeFactory;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeFactory;
module org.opendaylight.yangtools.yang.data.impl {
// FIXME: do not export data.impl.*
requires transitive org.opendaylight.yangtools.yang.data.api;
requires transitive org.opendaylight.yangtools.yang.data.spi;
requires transitive org.opendaylight.yangtools.yang.data.util;
+ requires transitive org.opendaylight.yangtools.yang.data.tree.api;
requires transitive org.opendaylight.yangtools.yang.model.api;
requires transitive org.opendaylight.yangtools.yang.model.spi;
requires transitive org.opendaylight.yangtools.rfc7952.data.api;
requires transitive org.opendaylight.yangtools.rfc8528.data.api;
requires org.opendaylight.yangtools.rfc8528.data.util;
+ requires org.opendaylight.yangtools.yang.data.tree.spi;
requires org.opendaylight.yangtools.yang.model.util;
requires org.opendaylight.yangtools.yang.parser.api;
requires org.opendaylight.yangtools.yang.xpath.api;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.ValueNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshotCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshotCursor;
abstract class AbstractCursor<T extends AbstractCursorAware> implements DataTreeSnapshotCursor {
@SuppressWarnings("rawtypes")
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip;
@NonNullByDefault
abstract class AbstractDataTreeCandidate extends AbstractDataTreeTip implements DataTreeCandidateTip {
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeTip;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeTip;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
abstract class AbstractDataTreeTip implements DataTreeTip {
/**
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidateNodes;
abstract class AbstractModifiedNodeBasedCandidateNode implements DataTreeCandidateNode {
private final ModifiedNode mod;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeContainerBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.spi.tree.MutableTreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.ModifiedNodeDoesNotExistException;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
abstract class AbstractNodeContainerModificationStrategy<T extends WithStatus>
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Mixin-type support class for subclasses of {@link ModificationApplyOperation} which need to provide automatic
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableChoiceNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.Visible;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.ContainerLike;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.Visible;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+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.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
import org.opendaylight.yangtools.yang.model.api.ContainerLike;
import com.google.common.base.MoreObjects;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
final class InMemoryDataTreeCandidate extends AbstractDataTreeCandidate {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeFactory;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+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.api.DataTreeFactory;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
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.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor;
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNodes;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
import org.slf4j.Logger;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
final class InMemoryDataTreeModificationCursor extends AbstractCursor<InMemoryDataTreeModification>
implements DataTreeModificationCursor {
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshotCursor;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshotCursor;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemLeafSetNode;
import org.opendaylight.yangtools.yang.data.api.schema.UserLeafSetNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.Invisible;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
final class LeafSetModificationStrategy extends Invisible<LeafListSchemaNode> {
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeContainerBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.IncorrectDataStructureException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
final class ListModificationStrategy extends SchemaAwareApplyOperation<ListSchemaNode> {
*/
package org.opendaylight.yangtools.yang.data.impl.schema.tree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Enumeration of all possible node modification states. These are used in
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy<ListSchemaNode> {
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.Invisible;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
final class MapModificationStrategy extends Invisible<ListSchemaNode> {
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.RequiredElementCountException;
+import org.opendaylight.yangtools.yang.data.tree.api.RequiredElementCountException;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
import org.opendaylight.yangtools.yang.model.api.ElementCountConstraintAware;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangNetconfError;
import org.opendaylight.yangtools.yang.data.api.YangNetconfErrorAware;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.RequiredElementCountException;
+import org.opendaylight.yangtools.yang.data.tree.api.RequiredElementCountException;
/**
* Exception thrown when unique constraints would be violated and we cannot throw a
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
/**
* An operation responsible for applying {@link ModifiedNode} on tree. The operation is a hierachical composite -
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Node Modification Node and Tree.
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Internal utility class for an empty candidate. We instantiate this class
*
* <p>
* Note: This is helpful for implementing
- * {@link org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification}
+ * {@link org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification}
* which may be derived from
- * {@link org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree} before
+ * {@link org.opendaylight.yangtools.yang.data.tree.api.DataTree} before
* update of schema and user actually writes data after schema update. During
* update user did not invoked any operation.
*/
import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
* @param modification Node modification which should be applied.
* @param current Current state of data tree
* @throws ConflictingModificationAppliedException If subtree was changed in conflicting way
- * @throws org.opendaylight.yangtools.yang.data.api.schema.tree.IncorrectDataStructureException If subtree
+ * @throws org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException If subtree
* modification is not applicable (e.g. leaf node).
*/
protected abstract void checkTouchApplicable(ModificationPath path, NodeModification modification,
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.ContainerLike;
/**
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.UniqueConstraintException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.UniqueConstraintException;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.data.api.ImmutableYangNetconfError;
import org.opendaylight.yangtools.yang.data.api.YangNetconfError;
import org.opendaylight.yangtools.yang.data.api.YangNetconfErrorAware;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.UniqueConstraintException;
+import org.opendaylight.yangtools.yang.data.tree.api.UniqueConstraintException;
/**
* Exception thrown when unique constraints would be violated and we cannot throw a {@link UniqueConstraintException}.
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.IncorrectDataStructureException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
final class ValueNodeModificationStrategy<T extends DataSchemaNode, V extends NormalizedNode>
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefContext;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidation;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefContext;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefDataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidation;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefContext;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefDataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidation;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefContext;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefDataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefValidation;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
public class Bug2690Test extends AbstractTestModelTest {
private DataTree inMemoryDataTree;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* BUG-3674: issuing a delete on a non-existent entry must be preserved in
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
public class Bug4295Test {
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class Bug5830Test {
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class Bug5968MergeTest {
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class Bug5968Test {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class Bug8291Test {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class CaseAugmentTest {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class CaseExclusionTest {
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
// TODO: expand these tests to catch some more obscure cases
public class ConfigStatementValidationTest extends AbstractTestModelTest {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
+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.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
+import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
public class DataTreeTransactionTest extends AbstractTestModelTest {
private DataTree tree;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.ModifiedNodeDoesNotExistException;
public class ErrorReportingTest extends AbstractTestModelTest {
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+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.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class MandatoryLeafTest {
import org.junit.Test;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
public class MapEntryRootTest extends AbstractTestModelTest {
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
/*
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.spi.tree.Version;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
public final class StructuralApplyModificationTest extends AbstractTestModelTest {
private DataTree inMemoryDataTree;
import org.opendaylight.yangtools.yang.data.api.YangNetconfErrorAware;
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.tree.DataTreeCandidate;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.UniqueConstraintException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+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.api.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
+import org.opendaylight.yangtools.yang.data.tree.api.UniqueConstraintException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class UniqueConstraintTest {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class YT1104Test {
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class YT776Test {
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>bundle-parent</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ <relativePath>../../bundle-parent</relativePath>
+ </parent>
+
+ <artifactId>yang-data-tree-api</artifactId>
+ <packaging>bundle</packaging>
+ <name>${project.artifactId}</name>
+ <description>${project.artifactId}</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>concepts</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-model-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+module org.opendaylight.yangtools.yang.data.tree.api {
+ exports org.opendaylight.yangtools.yang.data.tree.api;
+
+ requires transitive com.google.common;
+ requires transitive org.opendaylight.yangtools.concepts;
+ requires transitive org.opendaylight.yangtools.yang.data.api;
+ requires transitive org.opendaylight.yangtools.yang.model.api;
+
+ // Annotations
+ requires static transitive org.eclipse.jdt.annotation;
+}
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
/**
- * Exception thrown when the backed of a {@link DataTreeSnapshotCursor}
- * detects an errors which prevents it from completing the requested operation.
+ * Exception thrown when the backend of a {@link DataTreeSnapshotCursor} detects an errors which prevents it from
+ * completing the requested operation.
*/
@Beta
public class BackendFailedException extends IllegalStateException {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import java.util.Optional;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import java.util.Optional;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
/**
- * An encapsulation of a validated data tree modification. This candidate
- * is ready for atomic commit to the datastore. It allows access to before-
- * and after-state as it will be seen in to subsequent commit. This capture
- * can be accessed for reference, but cannot be modified and the content
- * is limited to nodes which were affected by the modification from which
- * this instance originated.
+ * An encapsulation of a validated data tree modification. This candidate is ready for atomic commit to the datastore.
+ * It allows access to before- and after-state as it will be seen in to subsequent commit. This capture can be accessed
+ * for reference, but cannot be modified and the content is limited to nodes which were affected by the modification
+ * from which this instance originated.
*/
@NonNullByDefault
public interface DataTreeCandidate {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import java.util.Collection;
import java.util.Optional;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import static java.util.Objects.requireNonNull;
* </ul>
*
* <p>
- * TreeConfig can be easily extended in order to support further data tree
- * configuration options, like following:
+ * TreeConfig can be easily extended in order to support further data tree configuration options, like following:
* <ul>
* <li>enable/disable case exclusion validation</li>
* <li>enable/disable other indexes</li>
* </ul>
*
* <p>
- * This can be useful when strict validation is not required or useful for some
- * reasons.
+ * This can be useful when strict validation is not required or useful for some reasons.
*/
@Beta
public class DataTreeConfiguration implements Immutable {
public Builder(final TreeType treeType) {
this.treeType = requireNonNull(treeType);
- this.rootPath = YangInstanceIdentifier.empty();
+ rootPath = YangInstanceIdentifier.empty();
}
public Builder setUniqueIndexes(final boolean uniqueIndexes) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
* {@link #create(DataTreeConfiguration, EffectiveModelContext)} is recommended, as it does not suffer from this
* shortcoming.
*
- * @param treeConfig
- * Tree configuration.
+ * @param treeConfig Tree configuration.
* @return A data tree instance.
* @throws NullPointerException if treeConfig is null
*/
* of the configuration. Mandatory nodes whose enforcement point is the root node will not be enforced even if some
* are present in the SchemaContext and validation is requested in configuration.
*
- * @param treeConfig
- * Tree configuration.
+ * @param treeConfig Tree configuration.
* @return A data tree instance.
* @throws NullPointerException if any of the arguments are null
* @throws IllegalArgumentException if tree configuration does not match the SchemaContext, for example by root path
/**
* Create a new data tree based on specified configuration, with the specified node.
*
- * @param treeConfig
- * Tree configuration.
+ * @param treeConfig Tree configuration.
* @return A data tree instance.
* @throws DataValidationFailedException if initial root is not valid according to the schema context
* @throws NullPointerException if any of the arguments are 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
/**
- * Class encapsulation of set of modifications to a base tree. This tree is backed
- * by a read-only snapshot and tracks modifications on top of that. The modification
- * has the ability to rebase itself to a new snapshot.
+ * Class encapsulation of set of modifications to a base tree. This tree is backed by a read-only snapshot and tracks
+ * modifications on top of that. The modification has the ability to rebase itself to a new snapshot.
*/
public interface DataTreeModification extends DataTreeSnapshot {
/**
void delete(YangInstanceIdentifier path);
/**
- * Merge the specified data with the currently-present data
- * at specified path.
+ * Merge the specified data with the currently-present data at specified path.
*
* @param path Node path
* @param data Data to be merged
void write(YangInstanceIdentifier path, NormalizedNode data);
/**
- * Finish creation of a modification, making it ready for application
- * to the data tree. Any calls to this object's methods except
- * {@link #applyToCursor(DataTreeModificationCursor)} will result
- * in undefined behavior, possibly with an
- * {@link IllegalStateException} being thrown.
+ * Finish creation of a modification, making it ready for application to the data tree. Any calls to this object's
+ * methods except {@link #applyToCursor(DataTreeModificationCursor)} will result in undefined behavior, possibly
+ * with an {@link IllegalStateException} being thrown.
*/
void ready();
/**
- * Apply the contents of this modification to a cursor. This can be used
- * to replicate this modification onto another one. The cursor's position
- * must match the root of this modification, otherwise performing this
- * operation will result in undefined behavior.
+ * Apply the contents of this modification to a cursor. This can be used to replicate this modification onto another
+ * one. The cursor's position must match the root of this modification, otherwise performing this operation will
+ * result in undefined behavior.
*
* @param cursor cursor to which this modification
*/
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
/**
- * Extension to the {@link DataTreeSnapshotCursor} which allows modifying the data tree.
- * An instance of this interface can be obtained from {@link CursorAwareDataTreeModification}
- * and modifications made through this interface are staged in the parent modification.
+ * Extension to the {@link DataTreeSnapshotCursor} which allows modifying the data tree. An instance of this interface
+ * can be obtained from {@link CursorAwareDataTreeModification} and modifications made through this interface are staged
+ * in the parent modification.
*/
@Beta
public interface DataTreeModificationCursor extends DataTreeSnapshotCursor {
* Delete the specified child.
*
* @param child Child identifier
- * @throws BackendFailedException when implementation-specific errors occurs
- * while servicing the request.
+ * @throws BackendFailedException when implementation-specific errors occurs while servicing the request.
*/
void delete(PathArgument child);
*
* @param child Child identifier
* @param data Data to be merged
- * @throws BackendFailedException when implementation-specific errors occurs
- * while servicing the request.
+ * @throws BackendFailedException when implementation-specific errors occurs while servicing the request.
*/
void merge(PathArgument child, NormalizedNode data);
*
* @param child Child identifier
* @param data New node data
- * @throws BackendFailedException when implementation-specific errors occurs
- * while servicing the request.
+ * @throws BackendFailedException when implementation-specific errors occurs while servicing the request.
*/
void write(PathArgument child, NormalizedNode data);
}
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import java.util.Optional;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNullByDefault;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import static java.util.Objects.requireNonNull;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
/**
* Enumeration of all possible node modification states. These are used in data tree modification context to quickly
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNullByDefault;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
import java.util.List;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import com.google.common.annotations.Beta;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
import static java.util.Objects.requireNonNull;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>bundle-parent</artifactId>
+ <version>8.0.0-SNAPSHOT</version>
+ <relativePath>../../bundle-parent</relativePath>
+ </parent>
+
+ <artifactId>yang-data-tree-spi</artifactId>
+ <packaging>bundle</packaging>
+ <name>${project.artifactId}</name>
+ <description>${project.artifactId}</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+module org.opendaylight.yangtools.yang.data.tree.spi {
+ exports org.opendaylight.yangtools.yang.data.tree.spi;
+
+ requires transitive com.google.common;
+ requires transitive org.opendaylight.yangtools.yang.data.api;
+ requires transitive org.opendaylight.yangtools.yang.data.tree.api;
+ requires org.slf4j;
+
+ // Annotations
+ requires static transitive org.eclipse.jdt.annotation;
+}
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
abstract class AbstractDataTreeCandidateNode implements DataTreeCandidateNode {
private final DistinctNodeContainer<PathArgument, NormalizedNode> data;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
abstract class AbstractLeafCandidateNode implements DataTreeCandidateNode {
private final NormalizedNode data;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import com.google.common.collect.Collections2;
import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
abstract class AbstractRecursiveCandidateNode extends AbstractDataTreeCandidateNode {
AbstractRecursiveCandidateNode(final DistinctNodeContainer<PathArgument, NormalizedNode> data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
abstract class AbstractWriteCandidate extends AbstractAvailableLeafCandidateNode {
AbstractWriteCandidate(final NormalizedNode dataAfter) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
@Beta
public final class DataTreeCandidateNodes {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
PathArgument identifier = node.getIdentifier();
ModificationType nodeModification = node.getModificationType();
Collection<DataTreeCandidateNode> childNodes = node.getChildNodes();
- for (Iterator<DataTreeCandidateNode> iterator = childNodes.iterator(); iterator.hasNext(); ) {
- cleanUpTree(finalNode, (TerminalDataTreeCandidateNode) iterator.next());
+ for (DataTreeCandidateNode childNode : childNodes) {
+ cleanUpTree(finalNode, (TerminalDataTreeCandidateNode) childNode);
}
Optional<NormalizedNode> dataBefore = finalNode.getDataBefore(identifier);
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import com.google.common.base.MoreObjects;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
/**
* Default utility implementation of the {@link DataTreeCandidate} contract.
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class DeleteLeafCandidateNode extends AbstractLeafCandidateNode {
DeleteLeafCandidateNode(final NormalizedNode data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class EmptyDataTreeCandidateNode implements DataTreeCandidateNode {
private final PathArgument identifier;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
/**
* Utility implementation of {@link DataTreeCandidateNode} which acts as if
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class RecursiveDeleteCandidateNode extends AbstractRecursiveCandidateNode {
RecursiveDeleteCandidateNode(final DistinctNodeContainer<PathArgument, NormalizedNode> data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class RecursiveReplaceCandidateNode extends AbstractDataTreeCandidateNode {
private final DistinctNodeContainer<PathArgument, NormalizedNode> oldData;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class RecursiveUnmodifiedCandidateNode extends AbstractRecursiveCandidateNode {
RecursiveUnmodifiedCandidateNode(final DistinctNodeContainer<PathArgument, NormalizedNode> data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class RecursiveWriteCandidateNode extends AbstractRecursiveCandidateNode {
RecursiveWriteCandidateNode(final DistinctNodeContainer<PathArgument, NormalizedNode> data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
class TerminalDataTreeCandidateNode implements DataTreeCandidateNode {
private ModificationType modificationType;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
final class UnmodifiedLeafCandidateNode extends AbstractAvailableLeafCandidateNode {
UnmodifiedLeafCandidateNode(final NormalizedNode data) {
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import com.google.common.collect.ImmutableList;
import java.util.Collection;
-import java.util.Collections;
+import java.util.List;
import java.util.Optional;
import org.junit.Test;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
public class DataTreeCandidateNodesTest {
@Test
doReturn(ModificationType.SUBTREE_MODIFIED).when(mockedChildNode3).getModificationType();
final DataTreeCandidateNode mockedChildNode3ChildNode = mock(DataTreeCandidateNode.class);
doReturn(ModificationType.DELETE).when(mockedChildNode3ChildNode).getModificationType();
- doReturn(Collections.singletonList(mockedChildNode3ChildNode)).when(mockedChildNode3).getChildNodes();
+ doReturn(List.of(mockedChildNode3ChildNode)).when(mockedChildNode3).getChildNodes();
- final Collection<DataTreeCandidateNode> childNodes = ImmutableList.of(mockedChildNode1, mockedChildNode2,
+ final Collection<DataTreeCandidateNode> childNodes = List.of(mockedChildNode1, mockedChildNode2,
mockedChildNode3);
doReturn(childNodes).when(mockedDataTreeCandidateNode).getChildNodes();
final DataTreeCandidateNode mockedChildNode1 = mock(DataTreeCandidateNode.class);
doReturn(ModificationType.DELETE).when(mockedChildNode1).getModificationType();
- doReturn(Collections.singletonList(mockedChildNode1)).when(mockedDataTreeCandidateNode).getChildNodes();
+ doReturn(List.of(mockedChildNode1)).when(mockedDataTreeCandidateNode).getChildNodes();
DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, mockedRootPath, mockedDataTreeCandidateNode);
verify(mockedCursor, times(1)).enter((PathArgument) isNull());
final DataTreeCandidateNode mockedChildNode1 = mock(DataTreeCandidateNode.class);
doReturn(ModificationType.DELETE).when(mockedChildNode1).getModificationType();
- doReturn(Collections.singletonList(mockedChildNode1)).when(mockedDataTreeCandidateNode).getChildNodes();
+ doReturn(List.of(mockedChildNode1)).when(mockedDataTreeCandidateNode).getChildNodes();
DataTreeCandidateNodes.applyRootToCursor(mockedCursor, mockedDataTreeCandidateNode);
verify(mockedCursor, times(1)).delete(isNull());
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.junit.Test;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
public class DataTreeCandidatesAggregateTest {
private static final YangInstanceIdentifier ROOT_PATH = YangInstanceIdentifier.of(QName.create(
ModificationType.UNMODIFIED);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.WRITE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.DELETE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.UNMODIFIED);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.WRITE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.DELETE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
assertEquals(Optional.empty(), aggregationResult.getRootNode().getDataBefore());
ModificationType.DELETE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.UNMODIFIED);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
assertEquals("value", aggregationResult.getRootNode().getDataBefore().get().body());
ModificationType.WRITE);
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
ModificationType.UNMODIFIED);
- TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode,
- ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode, ModificationType.UNMODIFIED);
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
//FIXME
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
//FIXME
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
ModificationType.UNMODIFIED);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DELETE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DELETE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DELETE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode,
ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, parentNode2,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, childNode3,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.WRITE);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, parentNode2,
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, childNode2,
ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode1,
ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode1,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
ModificationType.WRITE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
ModificationType.UNMODIFIED);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
ModificationType.DELETE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
ModificationType.WRITE);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
ModificationType.SUBTREE_MODIFIED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
@Test
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
ModificationType.APPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
ModificationType.WRITE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
- DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+ DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
}
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
ModificationType.DELETE);
- setChildNodes(node1, Collections.singletonList(child1));
+ setChildNodes(node1, List.of(child1));
DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
ModificationType.DISAPPEARED);
TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
ModificationType.DELETE);
- setChildNodes(node2, Collections.singletonList(child2));
+ setChildNodes(node2, List.of(child2));
DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
assertThrows(IllegalArgumentException.class,
- () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+ () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
}
private static LeafNode<String> normalizedNode(final String 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import com.google.common.collect.ImmutableList;
-import java.util.Collection;
-import java.util.Collections;
+import java.util.List;
import java.util.Optional;
import org.junit.Test;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
public class DataTreeCandidatesTest {
final PathArgument mockedPathArgument31 = mock(PathArgument.class);
doReturn(mockedPathArgument3).when(mockedChildNode3).getIdentifier();
doReturn(mockedPathArgument31).when(mockedChildNode3ChildNode).getIdentifier();
- doReturn(Collections.singletonList(mockedChildNode3ChildNode)).when(mockedChildNode3).getChildNodes();
+ doReturn(List.of(mockedChildNode3ChildNode)).when(mockedChildNode3).getChildNodes();
- final Collection<DataTreeCandidateNode> childNodes = ImmutableList.of(mockedChildNode1, mockedChildNode2,
- mockedChildNode3);
+ final List<DataTreeCandidateNode> childNodes = List.of(mockedChildNode1, mockedChildNode2, mockedChildNode3);
doReturn(childNodes).when(mockedDataTreeCandidateNode).getChildNodes();
DataTreeCandidates.applyToModification(mockedModification, mockedDataTreeCandidate);
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
public class DataTreeConfigurationTest {
-
@Test
public void testDataTreeConfiguration() {
DataTreeConfiguration.Builder builder = new DataTreeConfiguration.Builder(TreeType.CONFIGURATION);
* 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.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
public class NormalizedNodeDataTreeCandidateNodeTest {
-
@Test
public void testNormalizedNodeDataTreeCandidateNode() {
final NormalizedNode mockedNormalizedNode = mock(NormalizedNode.class);
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-transform</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-spi</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-codec-binfmt</artifactId>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-spi</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-tree-spi</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-util</artifactId>