Split out yang-data-tree-{api,spi} 36/98936/4
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 10 Dec 2021 09:07:26 +0000 (10:07 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 10 Dec 2021 17:50:11 +0000 (18:50 +0100)
In order to split out InMemoryDataTree, we need to first split out
its API components. This patch introduces yang-data-tree-{api,spi},
which hold the basic components defining the API and implementation
helper bits.

JIRA: YANGTOOLS-1242
Change-Id: Ida5383ed6c8820d539f72f8cd5192ccb4a93548a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
135 files changed:
artifacts/pom.xml
benchmarks/src/main/java/org/opendaylight/yangtools/yang/data/impl/tree/InMemoryDataTreeBenchmark.java
codec/yang-data-codec-binfmt/src/main/java/module-info.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/AbstractDataTreeCandidateNode.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/DataTreeCandidateInputOutput.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/DeletedDataTreeCandidateNode.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/ModifiedDataTreeCandidateNode.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/UnmodifiedRootDataTreeCandidateNode.java
codec/yang-data-codec-binfmt/src/test/java/org/opendaylight/yangtools/yang/data/codec/binfmt/DataTreeCandidateInputOutputTest.java
data/pom.xml
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/SynchronizedDataTreeModification.java [deleted file]
data/yang-data-impl/pom.xml
data/yang-data-impl/src/main/java/module-info.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefValidation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractCursor.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractDataTreeCandidate.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractDataTreeTip.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractModifiedNodeBasedCandidateNode.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractNodeContainerModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AbstractValidation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AugmentationModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AutomaticLifecycleMixin.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseEnforcer.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ChoiceModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ContainerModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/DataNodeContainerModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTree.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeCandidate.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeFactory.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModificationCursor.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeSnapshot.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/LeafSetModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/LogicalOperation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MandatoryLeafEnforcer.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MinMaxElementsValidation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MinMaxElementsValidationFailedException.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationApplyOperation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/NoopDataTreeCandidate.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/RootApplyStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/StructuralContainerModificationStrategy.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UniqueValidation.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UniqueValidationFailedException.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ValueNodeModificationStrategy.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/YT821Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/YT891Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/YT892Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/context/Bug8713Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/context/DataTreeCandidateValidatorTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/context/DataTreeCandidateValidatorTest2.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/context/DataTreeCandidateValidatorTest3.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug2690Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug3674Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4454Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5830Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968MergeTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug8291Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseAugmentTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/CaseExclusionTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ConcurrentTreeModificationTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ConfigStatementValidationTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/DataTreeCandidatesTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/DataTreeTransactionTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ErrorReportingTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListConstraintsValidation.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MandatoryLeafTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryRootTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationMetadataTreeTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/StoreTreeNodesTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/StructuralApplyModificationTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UniqueConstraintTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/YT1104Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/YT1276Test.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/YT776Test.java
data/yang-data-tree-api/pom.xml [new file with mode: 0644]
data/yang-data-tree-api/src/main/java/module-info.java [new file with mode: 0644]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/BackendFailedException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/BackendFailedException.java with 76% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ConflictingModificationAppliedException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ConflictingModificationAppliedException.java with 94% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/CursorAwareDataTreeModification.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/CursorAwareDataTreeModification.java with 96% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/CursorAwareDataTreeSnapshot.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/CursorAwareDataTreeSnapshot.java with 96% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTree.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTree.java with 94% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidate.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidate.java with 78% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateNode.java with 97% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidateTip.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateTip.java with 93% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeConfiguration.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeConfiguration.java with 95% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeFactory.java with 92% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeModification.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeModification.java with 65% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeModificationCursor.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeModificationCursor.java with 73% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeSnapshot.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java with 95% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeSnapshotCursor.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshotCursor.java with 98% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeTip.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeTip.java with 97% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataValidationFailedException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataValidationFailedException.java with 96% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/IncorrectDataStructureException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/IncorrectDataStructureException.java with 94% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ModificationType.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ModificationType.java with 97% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ModifiedNodeDoesNotExistException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ModifiedNodeDoesNotExistException.java with 95% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ReadOnlyDataTree.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ReadOnlyDataTree.java with 94% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/RequiredElementCountException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/RequiredElementCountException.java with 98% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/TreeType.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/TreeType.java with 96% similarity]
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/UniqueConstraintException.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/UniqueConstraintException.java with 97% similarity]
data/yang-data-tree-spi/pom.xml [new file with mode: 0644]
data/yang-data-tree-spi/src/main/java/module-info.java [new file with mode: 0644]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/AbstractAvailableLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/AbstractAvailableLeafCandidateNode.java with 91% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/AbstractDataTreeCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/AbstractDataTreeCandidateNode.java with 91% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/AbstractLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/AbstractLeafCandidateNode.java with 91% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/AbstractRecursiveCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/AbstractRecursiveCandidateNode.java with 92% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/AbstractWriteCandidate.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/AbstractWriteCandidate.java with 84% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidateNodes.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateNodes.java with 98% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidates.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidates.java with 97% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/DefaultDataTreeCandidate.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DefaultDataTreeCandidate.java with 86% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/DeleteLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DeleteLeafCandidateNode.java with 87% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/EmptyDataTreeCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/EmptyDataTreeCandidateNode.java with 88% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/NormalizedNodeDataTreeCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/NormalizedNodeDataTreeCandidateNode.java with 92% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/RecursiveDeleteCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/RecursiveDeleteCandidateNode.java with 87% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/RecursiveReplaceCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/RecursiveReplaceCandidateNode.java with 89% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/RecursiveUnmodifiedCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/RecursiveUnmodifiedCandidateNode.java with 87% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/RecursiveWriteCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/RecursiveWriteCandidateNode.java with 87% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/ReplaceLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ReplaceLeafCandidateNode.java with 93% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/TerminalDataTreeCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/TerminalDataTreeCandidateNode.java with 96% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/UnmodifiedLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/UnmodifiedLeafCandidateNode.java with 86% similarity]
data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/WriteLeafCandidateNode.java [moved from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/WriteLeafCandidateNode.java with 91% similarity]
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidateNodesTest.java [moved from data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateNodesTest.java with 93% similarity]
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidatesAggregateTest.java [moved from data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidatesAggregateTest.java with 87% similarity]
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidatesTest.java [moved from data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidatesTest.java with 93% similarity]
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeConfigurationTest.java [moved from data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeConfigurationTest.java with 91% similarity]
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/NormalizedNodeDataTreeCandidateNodeTest.java [moved from data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/tree/NormalizedNodeDataTreeCandidateNodeTest.java with 94% similarity]
docs/pom.xml
features/odl-yangtools-data-api/pom.xml

index be510cc3e5d447b263b1d564be3bf6c88ef4e623..dc93710708ddfdcddc8973df28e5806158efb7f4 100644 (file)
                 <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>
index 5bbc823ecc1040eda0b2db248f96969088882a32..c415d9dd5ad75f79e7832851a5a6a9af188ad2ad 100644 (file)
@@ -19,15 +19,15 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.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;
index f920247f4f62802b44942089e4ea15d6130af694..03b464bd44584f542e164a83650a1b95f2f6ed75 100644 (file)
@@ -12,6 +12,8 @@ module org.opendaylight.yangtools.yang.data.codec.binfmt {
     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;
index b03aa10c78c08503d81e0e82bfa13469071b031d..1dea7316fbc7c4614b719f80f567dc422ba7c39f 100644 (file)
@@ -10,10 +10,11 @@ package org.opendaylight.yangtools.yang.data.codec.binfmt;
 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},
@@ -23,7 +24,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
  * this component.
  */
 abstract class AbstractDataTreeCandidateNode implements DataTreeCandidateNode {
-    private final ModificationType type;
+    private final @NonNull ModificationType type;
 
     AbstractDataTreeCandidateNode(final ModificationType type) {
         this.type = requireNonNull(type);
index d85cb4914156a113b69d476185d43186ac3abc6e..2754f36221569b07a17b945f171754dc885d2e35 100644 (file)
@@ -16,12 +16,12 @@ import org.eclipse.jdt.annotation.NonNull;
 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;
 
index 9e9d9d1f5d207aa7687993d50247706e9036e498..0accce5088021a49ea3e7d0699634680fae5cc7e 100644 (file)
@@ -11,8 +11,8 @@ import java.util.Collection;
 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.
index 2d24dc3ee563ddaf975a5d597c343ec2782540d5..1048459300fb77fb6f663a7abc369eb1295336c3 100644 (file)
@@ -13,8 +13,8 @@ import java.util.Collection;
 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
index 82c1a709d1c0545b8be22e5b0047c31d07c2c530..9dfce27a3356d5f64e2976e062f93bb6ba2a241e 100644 (file)
@@ -11,8 +11,8 @@ import java.util.Collection;
 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();
index 0bc4a0a976c9a7d482c858251aa4278530c0fe48..5e770c9073e86a1108ce24f49f2660695873a3fe 100644 (file)
@@ -24,14 +24,14 @@ import org.junit.Test;
 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;
index 2ce3562395bfffdf5215c82b30003bd8b43c0785..c39a059e9765d19113a4a9ca0e33954d78b53e34 100644 (file)
         <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>
diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/SynchronizedDataTreeModification.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/SynchronizedDataTreeModification.java
deleted file mode 100644 (file)
index 1e7e7fa..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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();
-    }
-}
index 5a2a47348603c5f3a424209d81a97d079cf090d9..0c05a47812fd31a86822c4126b54c99b2b28a866 100644 (file)
             <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>
index 10024a233d8ae77d0ff2ea34382d2991d8365119..03d7728e1aca5def4bc8782c38a083987917ef58 100644 (file)
@@ -5,8 +5,8 @@
  * 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.*
@@ -27,6 +27,7 @@ module org.opendaylight.yangtools.yang.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;
@@ -34,6 +35,7 @@ module org.opendaylight.yangtools.yang.data.impl {
     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;
index 5dc9938b69ff2da062d663d77d1355c21b5ecd36..e869f1046a7ec1c7645699ed7c9cca306cd08656 100644 (file)
@@ -40,9 +40,9 @@ 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.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;
 
index e114a08f637774fc3d4e6c641281b9126635e6b1..a26094ed33c37c63daee39b93c8c3b944d250e31 100644 (file)
@@ -14,7 +14,7 @@ import java.util.Arrays;
 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")
index bd6d6b1a560dba05c115dd12a61f665e0f46ebb1..b66838fa857d146ad5c26ef3abd8a1544b1a2958 100644 (file)
@@ -11,7 +11,7 @@ import static java.util.Objects.requireNonNull;
 
 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 {
index e3a144afd7d82078cd54d4a279a4878a24eefa45..f7c974a563545b6cb54f4cdd70f1b28bd5412997 100644 (file)
@@ -13,11 +13,11 @@ import static com.google.common.base.Preconditions.checkState;
 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 {
     /**
index b8426e08a1b611319ca67c2a97fd2eb3367cfd8d..00830945a97ccfad2539e5796cbe665185aa080a 100644 (file)
@@ -20,10 +20,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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;
index 2accd980be0c37f4213497f8db10ecc841a3ec05..0152788cf14fad605cb3fbf3e067bc35c633ca2d 100644 (file)
@@ -22,16 +22,16 @@ 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.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>
index 484ed3a2067f799e379067b5138735e50887c84b..1441db73613661ae6fab3a3a7e7328d3049c8be3 100644 (file)
@@ -15,9 +15,9 @@ 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.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;
 
index 4f0d1d944a7485275289cbcbda5139ab99c48c0d..56b4add05c630289b2f303ab8b1468f0eb04b3fe 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 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;
index 30d774c45242ae6ee7be84c44b7bc266159b11e0..c1f1ab0a5169a48cf50ddf34ebea6198e134e977 100644 (file)
@@ -12,10 +12,10 @@ import static com.google.common.base.Preconditions.checkState;
 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
index 14dcd267e09c0959db527275c112bf08c3e3efa1..44a4e78c294e129b65068835624ebe47e8e0ea3c 100644 (file)
@@ -20,8 +20,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.Augmentat
 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;
index c2f128dbed34f6564b1b4c5097907574539440a1..32faf91014288639ddbd3a0cb55264ccd6f3687a 100644 (file)
@@ -27,12 +27,12 @@ import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 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;
index 6dabc8054431cbfada1e45239c1fca0c21728428..9ef2ddea0ad4b9b98850563dbccb100770761c07 100644 (file)
@@ -13,10 +13,10 @@ import java.util.Optional;
 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;
 
index f3c08e9e44894a6958175b249050c9c2fb942346..5e7780c3d160da3c714544b2fb984320672a12ed 100644 (file)
@@ -18,8 +18,8 @@ import org.eclipse.jdt.annotation.Nullable;
 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;
index ce5d13cbd2e1f937fcef045e99e16bcff55504f8..3f78ff4800bfacf44366e92351101ecec31b7934 100644 (file)
@@ -17,10 +17,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.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;
index 9e260b5b74f884ddf39075856270d59185987e4b..71421ce41c1eae99a4d250e0d2ca2f24d983f563 100644 (file)
@@ -10,8 +10,8 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 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 {
 
index 066d5de8fd120dced0bcb6281861ac98657b6480..d988a7b7cd15e9e417f42e25a2a0de007934347c 100644 (file)
@@ -20,16 +20,16 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 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;
index 708189a692676bd626f3566e3120e29f2063bdaa..f0338ebf65e7a27a9f16570faf93d0f94ff6043c 100644 (file)
@@ -20,11 +20,11 @@ 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.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;
index 85be8f84f5b5d9037bd0d2c0fa29744631cbb895..dbebe450a98d8340f3705fe1165148f4720ef234 100644 (file)
@@ -19,7 +19,7 @@ import java.util.Optional;
 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 {
index a2be4d8fcc5afaf204d2bff79b5cf3302af232be..9238a0cebd2f9ac775ea480b1716eb662c2738ff 100644 (file)
@@ -16,9 +16,9 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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;
 
index 409a9a67b961bbef6370184de4cd4a4fa84a6877..4b0710939c202a7a631341dca866f563e168e407 100644 (file)
@@ -13,10 +13,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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> {
index 88f82b97f4409de4efd1a01853240b9cea30a995..fc5e8d93edaae4d6933c73d0404ff4b2976af465 100644 (file)
@@ -15,8 +15,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 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;
@@ -24,6 +22,8 @@ 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.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
 final class ListModificationStrategy extends SchemaAwareApplyOperation<ListSchemaNode> {
index bdaa954a497b403a883f9a66542ecab689dc6adc..4850529d28d2b1bf3af62b4204eddd2410b4f544 100644 (file)
@@ -7,7 +7,7 @@
  */
 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
index e1100f4e5915c25bba68aee9d4b34dfc1f533c2c..b43a421232f7458c99415fdb70ab36c2758a1639 100644 (file)
@@ -17,9 +17,9 @@ import org.opendaylight.yangtools.concepts.Immutable;
 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;
index c386925488344adb81a5c8d78f88edadb4aa885c..37719965847a95e9309f65a8f9e508106b74e64c 100644 (file)
@@ -14,10 +14,10 @@ import org.eclipse.jdt.annotation.NonNull;
 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> {
index 373c90c4556bd9dac2d75fd1778125c9ba58b5b6..35a81f3d7053dd4219bc3cdd91724646f4dc3979 100644 (file)
@@ -17,13 +17,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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> {
index 62e4cf47622ca05850c32ca108b21fbf25e79260..bd60e629cc15221527e92b72b1de5b18734aba82 100644 (file)
@@ -15,7 +15,7 @@ import org.eclipse.jdt.annotation.NonNull;
 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;
index 214ecad6eef6cb5d4e6dd28566dfd0211bf6334d..8b095f5c537e2bc1b7e79ccc48c82be079e81c09 100644 (file)
@@ -11,7 +11,7 @@ import java.util.List;
 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
index 72426bfde958ac5fbccd0efbebe6c93d7b74dde9..ca35f69e8644140bde0cc92c8275576fc6584011 100644 (file)
@@ -12,10 +12,10 @@ import com.google.common.base.MoreObjects.ToStringHelper;
 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 -
index bd5543e50e2b8b2444d5a02ef30924ac395ba393..a76fc9ac367333c7e3667c733ef333b0690e8f38 100644 (file)
@@ -22,11 +22,11 @@ import org.eclipse.jdt.annotation.Nullable;
 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.
index 08f1c42d84ce4ca51b6640d6a2c8a67172c20775..525e09e69016dfbc16c22ea0de70946f89e161bb 100644 (file)
@@ -17,9 +17,9 @@ import org.eclipse.jdt.annotation.NonNull;
 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
index 3ea98265863a87cffac426249e02843d07897999..b12da849e85d4f7b4eeb08a74e3b696388c5e234 100644 (file)
@@ -48,9 +48,9 @@ import java.util.Objects;
  *
  * <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.
  */
index 3c28ba11aa0a225b273151a80a7c6a652a7e9dc1..feeead27c1e28862f2eabcf03fbcc8484dc88608 100644 (file)
@@ -21,13 +21,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode;
 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;
@@ -295,7 +295,7 @@ abstract class SchemaAwareApplyOperation<T extends WithStatus> extends Modificat
      * @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,
index ab99537499e0aef6359a55e1b5aa5508f487975a..d9a1272e7cf660f9e0ce21c2b2a88dc16e10264f 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 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;
 
 /**
index 158d79258621bd15d1f60c822d63575d283bdf0c..0030217a91a69072cd33b57313f2da8d3772aa1f 100644 (file)
@@ -28,8 +28,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 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;
index 3a034ff311c0cafd44766413fb61a88307c2e56d..c857d4dfd7b4eec6df776b72b87db51ab3d680c2 100644 (file)
@@ -14,7 +14,7 @@ import org.opendaylight.yangtools.yang.common.ErrorType;
 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}.
index 97131b78eabb66a51f0700195b0da4a9208ebe51..b7cff62a357f93ceb86ffa80c69411073dbbb20e 100644 (file)
@@ -15,11 +15,11 @@ 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.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>
index 03f751d111ecdc00398e476ef2ba676972a75b34..7f1c54b471d1ec5e38807aa8c26727c5beba4bb3 100644 (file)
@@ -18,13 +18,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.Augmentat
 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;
 
index 0e9412b53586b06df8667965c8e77fbc88802de9..ea1ce1b2965284a379197df1a4c17de1578eddbd 100644 (file)
@@ -16,13 +16,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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;
 
index d20e3530bebf9c67a0fe09ce9c17489a6e2cc3c1..15261b4076bf3b56c7746397261d621ced3948df 100644 (file)
@@ -17,13 +17,13 @@ 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.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;
 
index c6d1dc706d128787bdae8736d5427b28163ed67e..beedb84874d19ea06332530f62e95df66d241c12 100644 (file)
@@ -12,15 +12,15 @@ 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.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;
 
index 747e59e0f37e271fbc1dbc3450018f9f4f10d02f..b09aa41d2efa8499556023dae1ebc0af33b72ac5 100644 (file)
@@ -29,17 +29,17 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
 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;
index f8a6af710e6c18653120a1300b3737714e06a59b..fe1616aa2a9c3120b525b50b3f17d21c142bdf42 100644 (file)
@@ -20,17 +20,17 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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;
index 957e78b8171b0263f145e86933839f409448e7db..768a2c040c607d410351d29a66fb27ceb5cff5ff 100644 (file)
@@ -21,17 +21,17 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.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;
index e44f6d6ed50ba3a714d2fdf2cb91b02f40ceb85e..272a73ad33dac6b1d391b72035055d6be7aabaa0 100644 (file)
@@ -19,14 +19,14 @@ 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.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;
index cd9c35f577da93b816b99d2f33adeb3cdea1d82d..9bb50ab51359f2afba0144b5a1a20227e4648e18 100644 (file)
@@ -11,14 +11,14 @@ import static org.junit.Assert.assertEquals;
 
 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
index 6fca5b08fe3c6d6b33d94a12a6b723bead7ecda0..978d46e11ae5a5020f4948ba898e842d4d0f6e8c 100644 (file)
@@ -22,12 +22,12 @@ 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.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 {
index 36abd50e0eec047b0eca0344547e7249419d9223..995ec11b2d7cac03b0e6fb68399fc09091fe173d 100644 (file)
@@ -37,16 +37,16 @@ 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.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;
 
index b83340ba13e5bc01c8b18ba6a6a70e1b71baffe5..9b0703e54b2528038d625b8e913fc00d14a27fa8 100644 (file)
@@ -23,13 +23,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
 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 {
index 5bf570c249b4fde2b96c21567c55c5bf63a06ac4..4bb5c886ae56c8dc9675e8b30ee9ee44427224f1 100644 (file)
@@ -23,13 +23,13 @@ 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.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 {
index c6d8b4021b88e2fb17d3948ee37ea96e5f633d8e..83beaf1bebc3986acee86a7c0abb697e2e5cea33 100644 (file)
@@ -22,13 +22,13 @@ 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.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 {
index 2199d4891728d0db78894df2372d221ae9998d8b..b0584717f3232333cfe706f2b87958e955190e68 100644 (file)
@@ -17,14 +17,14 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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 {
index 77ba8bb60a46d544da5428b21b05760a64d0aaad..dba6499c3e49343a210cb1a61bdec213076989e6 100644 (file)
@@ -19,12 +19,12 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.Augmentat
 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 {
index f92572fe16dfcba12e80ae88fba777d27b43d77a..fdb881b65ca227b1fbb9d3d3e9b610e371428ff9 100644 (file)
@@ -18,13 +18,13 @@ import org.opendaylight.yangtools.yang.common.QName;
 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 {
index d71bd227767b33509ad9aef073b5f23e63957b39..d7fae6516e24bfac03d8417368ef0fc1ddfa0527 100644 (file)
@@ -21,15 +21,15 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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;
 
index 6c099df742535ce278e5f6df26180bc0a9a340ec..276fa7ea13bcef915e4f85eee738c5a27c5b3fd1 100644 (file)
@@ -17,14 +17,14 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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 {
index e5f0817da9dd3bb98b93693cce182bbb103d212f..a3bcae68e4b3d07355b02b922358079261ebc367 100644 (file)
@@ -19,19 +19,19 @@ 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.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;
index b2ba0afb6b2ea92c42888a18c18c5729aafb000e..84d240730a1bc4575236866ba609e61783c742c4 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 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;
index 771cdfbf3af39d80d23bee91b642d1aeddac135c..383249551afd3325860c4562047e6511e892227a 100644 (file)
@@ -12,13 +12,13 @@ import static org.junit.Assert.fail;
 
 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 {
 
index e295f01ab33017d130872bb11e5b0916eb6cd121..d9564a8176937f0b36b17a2dc8e58af2be1eaca2 100644 (file)
@@ -39,17 +39,17 @@ 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.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;
 
index 99eb78755b66cb12e06edf8ec458e597d70beb7e..f250a373167b077b6a3159b768d1a35a854d1bcf 100644 (file)
@@ -17,13 +17,13 @@ import org.opendaylight.yangtools.yang.common.QName;
 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 {
index ea3854b445bb6570fe499bbfaa0077bea2d90972..9d3284af49259d5b3ff81dcd5c27e058200256f5 100644 (file)
@@ -13,9 +13,9 @@ import static org.junit.Assert.assertTrue;
 
 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 {
 
index 5dae30e6e3947a2a51b8686fa296d5e029d9a8a8..2cf241437149991758bc7e6a1bf21011e2534e9c 100644 (file)
@@ -24,13 +24,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 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;
 
 /*
index 17c0d2c92c55dc52026bf9390cdd0f9690d17bdc..981755051944a91d2d42342a673d4833dd4da04b 100644 (file)
@@ -25,13 +25,13 @@ 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.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;
index e2e76cf617d09f8d8e7a987c99aec5bbd2406e2f..b986b22af26b98997a0f2f41a19294b5efbd8bb7 100644 (file)
@@ -25,12 +25,12 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 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;
index 1adb18187a65a4b317ed26a79d22307364415288..60677b511bcdee80dee60e657aec318eed7ee7d5 100644 (file)
@@ -18,13 +18,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.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;
index 75d9312ee0d7e64fb8bb8efe2273c8e8022fec68..d08f1fb79c19397dadd87043dada2c4cf7f7ddec 100644 (file)
@@ -28,13 +28,13 @@ import org.opendaylight.yangtools.yang.data.api.YangNetconfError;
 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 {
index 1873705d90c5586ebe82f3a70bcec547e2f36cb0..49f7ad65f109fef2fb110e8d24964dec3b24b47c 100644 (file)
@@ -20,10 +20,10 @@ 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.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 {
index 55223f854e5b0e299269919af672268e6187c115..c519f274e5272f21164b4fe00084f6086706a46b 100644 (file)
@@ -18,13 +18,13 @@ import org.opendaylight.yangtools.yang.common.QName;
 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;
 
index 4545aa016b857387ddd04ba8511760497e2aca46..938bacf2179650e45884c0a5439c30ce6308e49c 100644 (file)
@@ -29,10 +29,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.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 {
diff --git a/data/yang-data-tree-api/pom.xml b/data/yang-data-tree-api/pom.xml
new file mode 100644 (file)
index 0000000..a83a124
--- /dev/null
@@ -0,0 +1,42 @@
+<?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>
diff --git a/data/yang-data-tree-api/src/main/java/module-info.java b/data/yang-data-tree-api/src/main/java/module-info.java
new file mode 100644 (file)
index 0000000..5909b01
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * 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;
+}
@@ -5,13 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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 {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import java.util.Optional;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import java.util.Optional;
similarity index 94%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTree.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTree.java
index 62c580b8e0bbe853fbe862b3816d23d322b8ef3a..921643aade3656c680d9bb0ffa0ba68418b28a9f 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
similarity index 78%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidate.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidate.java
index 593e3a6b7037764e5c1f607478b18cfbf7fa9bc1..4fddbacd6c60d435d78bb1a89fef807ba7994620 100644 (file)
@@ -5,19 +5,17 @@
  * 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 {
similarity index 97%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateNode.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidateNode.java
index ac1b48a710f952c27feabb8fdbf280b09f6fc261..0354440e20898dc2412d8f1ad59f23f8af7fb46f 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import java.util.Collection;
 import java.util.Optional;
similarity index 93%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidateTip.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeCandidateTip.java
index 7045a9edc9dc3ddf1cd64b248d908956b561e725..4042c2927806e3fb8a60eeeea72f70d8de0cdba4 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 
similarity index 95%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeConfiguration.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeConfiguration.java
index cfb2928ee46a8ed334ea8f78657100f1d84867c8..21d2bc890ab5161631b1259793f0821e7a000001 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import static java.util.Objects.requireNonNull;
 
@@ -27,8 +27,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
  * </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>
@@ -36,8 +35,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
  * </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 {
@@ -112,7 +110,7 @@ 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) {
similarity index 92%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeFactory.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java
index 5e5fd809468ca4e02dee703864866a56b2f1bfbb..c8f6644dc94c185ec0bd4e16bb82c294e2102345 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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;
@@ -26,8 +26,7 @@ public interface DataTreeFactory {
      * {@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
      */
@@ -38,8 +37,7 @@ public interface DataTreeFactory {
      * 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
@@ -50,8 +48,7 @@ public interface DataTreeFactory {
     /**
      * 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
similarity index 65%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeModification.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeModification.java
index 586648cb77eb574e88494883275a1e9d31e64461..8e9e3975804b573ef3fea3494127508d88ab02cd 100644 (file)
@@ -5,16 +5,15 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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 {
     /**
@@ -25,8 +24,7 @@ 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
@@ -42,19 +40,16 @@ public interface DataTreeModification extends DataTreeSnapshot {
     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
      */
@@ -5,16 +5,16 @@
  * 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 {
@@ -22,8 +22,7 @@ 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);
 
@@ -33,8 +32,7 @@ public interface DataTreeModificationCursor extends DataTreeSnapshotCursor {
      *
      * @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);
 
@@ -43,8 +41,7 @@ public interface DataTreeModificationCursor extends DataTreeSnapshotCursor {
      *
      * @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);
 }
similarity index 95%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeSnapshot.java
index a471d777b570619ad24675bf69b79c5020406cc9..2e907ea769e4a3d238321ef259ffd8a77cd5d2da 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import java.util.Optional;
similarity index 97%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeTip.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeTip.java
index a46563e487f4e13d89d442883b32f166be58ad8c..1d2a1b631c48bf87c28c81b7af9e07e39cceefb9 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import static java.util.Objects.requireNonNull;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
similarity index 97%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ModificationType.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ModificationType.java
index de4be252fe79e82d896570462bae0b464dd5acec..d9f35cf021c9586b2b01e9843c0e3d65997fd2d8 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
similarity index 94%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/ReadOnlyDataTree.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/ReadOnlyDataTree.java
index afe560b8364ca074213129dae505a6718e5af731..1e8effef62e1f52622551a5a48e150df74a0e6cf 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 import java.util.List;
similarity index 96%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/TreeType.java
rename to data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/TreeType.java
index 427096ad9218275c815cd6d9828699ca331e7820..e0c1f0e238c1316245726bba18479fba2fcdf767 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import com.google.common.annotations.Beta;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.api;
 
 import static java.util.Objects.requireNonNull;
 
diff --git a/data/yang-data-tree-spi/pom.xml b/data/yang-data-tree-spi/pom.xml
new file mode 100644 (file)
index 0000000..a4a576e
--- /dev/null
@@ -0,0 +1,42 @@
+<?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>
diff --git a/data/yang-data-tree-spi/src/main/java/module-info.java b/data/yang-data-tree-spi/src/main/java/module-info.java
new file mode 100644 (file)
index 0000000..c294259
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * 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;
+}
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -14,6 +14,7 @@ import org.eclipse.jdt.annotation.NonNull;
 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;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -15,6 +15,7 @@ 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.tree.api.DataTreeCandidateNode;
 
 abstract class AbstractLeafCandidateNode implements DataTreeCandidateNode {
     private final NormalizedNode data;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import com.google.common.collect.Collections2;
 import java.util.Collection;
@@ -13,6 +13,7 @@ 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;
 
 abstract class AbstractRecursiveCandidateNode extends AbstractDataTreeCandidateNode {
     AbstractRecursiveCandidateNode(final DistinctNodeContainer<PathArgument, NormalizedNode> data) {
@@ -5,9 +5,10 @@
  * 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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -23,6 +23,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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 {
similarity index 97%
rename from data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidates.java
rename to data/yang-data-tree-spi/src/main/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidates.java
index bcd8ff80b024c36fa4f99b65193b842bb4ba400e..b2a24fceddc0105ea1031de394c48fe947773d68 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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;
@@ -21,6 +21,12 @@ import org.eclipse.jdt.annotation.Nullable;
 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;
 
@@ -208,8 +214,8 @@ public final class DataTreeCandidates {
         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);
 
@@ -5,12 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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.
@@ -5,10 +5,11 @@
  * 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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -14,6 +14,8 @@ import java.util.Collection;
 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;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -17,6 +17,8 @@ import org.eclipse.jdt.annotation.NonNull;
 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
@@ -5,12 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -14,6 +14,8 @@ 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 RecursiveReplaceCandidateNode extends AbstractDataTreeCandidateNode {
     private final DistinctNodeContainer<PathArgument, NormalizedNode> oldData;
@@ -5,12 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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) {
@@ -5,12 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static java.util.Objects.requireNonNull;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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;
@@ -17,6 +17,8 @@ import java.util.HashSet;
 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;
@@ -5,10 +5,11 @@
  * 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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -18,14 +18,16 @@ import static org.mockito.Mockito.mock;
 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
@@ -76,9 +78,9 @@ public class DataTreeCandidateNodesTest {
         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();
 
@@ -133,7 +135,7 @@ public class DataTreeCandidateNodesTest {
 
         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());
@@ -162,7 +164,7 @@ public class DataTreeCandidateNodesTest {
 
         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());
@@ -5,15 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.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;
@@ -22,6 +20,9 @@ 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.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(
@@ -45,7 +46,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -66,7 +67,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -86,7 +87,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -104,7 +105,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -118,7 +119,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -134,7 +135,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -155,7 +156,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -174,7 +175,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -194,7 +195,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -213,7 +214,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -233,7 +234,7 @@ public class DataTreeCandidatesAggregateTest {
                 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());
@@ -253,7 +254,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -269,7 +270,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -285,7 +286,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -297,17 +298,16 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -321,17 +321,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -347,17 +347,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -371,18 +371,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -397,17 +397,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -423,18 +423,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -447,17 +447,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -471,18 +471,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -494,17 +494,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -518,17 +518,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -544,17 +544,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -570,17 +570,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -594,17 +594,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -618,17 +618,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -644,17 +644,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -670,17 +670,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -698,17 +698,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -725,18 +725,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -748,17 +748,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -774,17 +774,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -800,17 +800,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -826,17 +826,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -853,17 +853,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -879,17 +879,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -906,18 +906,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -930,17 +930,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -954,17 +954,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -978,17 +978,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1004,17 +1004,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1029,17 +1029,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1053,18 +1053,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -1076,17 +1076,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1100,17 +1100,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1124,18 +1124,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -1149,17 +1149,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1174,18 +1174,18 @@ public class DataTreeCandidatesAggregateTest {
                 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
@@ -1199,17 +1199,17 @@ public class DataTreeCandidatesAggregateTest {
                 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());
     }
@@ -1223,18 +1223,18 @@ public class DataTreeCandidatesAggregateTest {
                 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) {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -20,14 +20,18 @@ import static org.mockito.Mockito.mock;
 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 {
 
@@ -177,10 +181,9 @@ 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);
@@ -5,17 +5,17 @@
  * 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);
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -22,9 +22,10 @@ import org.junit.Test;
 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);
index a9d973954c320632d4b15a03912ff2d3857e8fb3..3c268937fa62ccf9329124199499b5ab6aab8b53 100644 (file)
             <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>
index e014f194876c80c0245e91d4b8f567adeb594f33..27752a86ec24ab2de0bd139a72a8e93e31065ad8 100644 (file)
             <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>