Modernize YangInstanceIdentifier 63/106063/7
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 19 May 2023 00:32:55 +0000 (02:32 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 20 May 2023 10:19:26 +0000 (12:19 +0200)
Ever since we ditched eager hashCode computation we can do much better
in terms of outside interface. Introduce of()  methods as replacements
for create() with much better flexibility.

Change-Id: Ie6a431deaca0a80b8ce1d16dad5a1b919c94f722
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
43 files changed:
benchmarks/src/main/java/org/opendaylight/yangtools/yang/data/impl/tree/BenchmarkModel.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/AbstractLithiumDataInput.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/AbstractMagnesiumDataInput.java
codec/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/PotassiumDataInput.java
codec/yang-data-codec-binfmt/src/test/java/org/opendaylight/yangtools/yang/data/codec/binfmt/DataTreeCandidateInputOutputTest.java
codec/yang-data-codec-binfmt/src/test/java/org/opendaylight/yangtools/yang/data/codec/binfmt/TestModel.java
codec/yang-data-codec-binfmt/src/test/java/org/opendaylight/yangtools/yang/data/codec/binfmt/YiidSerializationTest.java
codec/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java
codec/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/YT1411Test.java
codec/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/YT1473Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/FixedYangInstanceIdentifier.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/StackedYangInstanceIdentifier.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YIDv1.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/DuplicateFinder.java
data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java
data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierTest.java
data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/NormalizedNodesTest.java
data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/InstanceIdToNodesTest.java
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/CursorAwareDataTreeModification.java
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/CursorAwareDataTreeSnapshot.java
data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeConfiguration.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/AbstractDataTreeTip.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/MandatoryLeafEnforcer.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/MinMaxElementsValidationFailedException.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/leafref/LeafRefValidation.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/Bug4295Test.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/Bug4454Test.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/Bug5830Test.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/Bug5968MergeTest.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/Bug8291Test.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/DataTreeCandidatesTest.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/OrderedListTest.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/StructuralApplyModificationTest.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/YT1104Test.java
data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/YT776Test.java
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidateNodesTest.java
data/yang-data-tree-spi/src/test/java/org/opendaylight/yangtools/yang/data/tree/spi/DataTreeCandidatesTest.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractStringInstanceIdentifierCodec.java
data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/DataSchemaContextTreeTest.java
data/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/YT1412Test.java

index 4a3a10636e14896d75ec578138c5d7424bc05b0b..58d8fd1237177157e41527490da7ac5d6c7e1ce8 100644 (file)
@@ -22,11 +22,11 @@ final class BenchmarkModel {
     private static final QName TEST_QNAME = QName.create(
         "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test").intern();
     static final NodeIdentifier TEST = NodeIdentifier.create(TEST_QNAME);
-    static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.create(TEST);
+    static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST);
 
     static final QName OUTER_LIST_QNAME = QName.create(TEST_QNAME, "outer-list").intern();
     static final NodeIdentifier OUTER_LIST = NodeIdentifier.create(OUTER_LIST_QNAME);
-    static final YangInstanceIdentifier OUTER_LIST_PATH = YangInstanceIdentifier.create(TEST, OUTER_LIST);
+    static final YangInstanceIdentifier OUTER_LIST_PATH = YangInstanceIdentifier.of(TEST, OUTER_LIST);
 
     static final QName INNER_LIST_QNAME = QName.create(TEST_QNAME, "inner-list").intern();
     static final NodeIdentifier INNER_LIST = NodeIdentifier.create(INNER_LIST_QNAME);
index 0f621e7ea998b2bc06efb9e96fe7c9970d451745..9953d027e63feff12e820719d9ea67999d2890ae 100644 (file)
@@ -360,7 +360,7 @@ abstract class AbstractLithiumDataInput extends AbstractLegacyDataInput {
         for (int i = 0; i < size; i++) {
             pathArguments.add(readPathArgument());
         }
-        return YangInstanceIdentifier.create(pathArguments.build());
+        return YangInstanceIdentifier.of(pathArguments.build());
     }
 
     private Set<String> readObjSet() throws IOException {
index b933b256ebe3200f1ef91f6b0e457f6ab4764c61..bc3734b971d8f9b60e635d557d4b1f442173d688 100644 (file)
@@ -355,9 +355,9 @@ abstract class AbstractMagnesiumDataInput extends AbstractLegacyDataInput {
             for (int i = 0; i < size; ++i) {
                 builder.add(readPathArgument());
             }
-            return YangInstanceIdentifier.create(builder.build());
+            return YangInstanceIdentifier.of(builder.build());
         } else if (size == 0) {
-            return YangInstanceIdentifier.empty();
+            return YangInstanceIdentifier.of();
         } else {
             throw new InvalidNormalizedNodeStreamException("Invalid YangInstanceIdentifier size " + size);
         }
@@ -738,7 +738,7 @@ abstract class AbstractMagnesiumDataInput extends AbstractLegacyDataInput {
             case MagnesiumValue.BINARY_4B:
                 return readBinary(input.readInt());
             case MagnesiumValue.YIID_0:
-                return YangInstanceIdentifier.empty();
+                return YangInstanceIdentifier.of();
             case MagnesiumValue.YIID:
                 return readYangInstanceIdentifier(input.readInt());
             case MagnesiumValue.QNAME:
index 054ecde62d34f39af473f67ebc9e58a2bde2ee25..e7a4d95342967137c68edee2b44d110ce74b251b 100644 (file)
@@ -323,9 +323,9 @@ final class PotassiumDataInput extends AbstractNormalizedNodeDataInput {
             for (int i = 0; i < size; ++i) {
                 builder.add(readPathArgument());
             }
-            return YangInstanceIdentifier.create(builder.build());
+            return YangInstanceIdentifier.of(builder.build());
         } else if (size == 0) {
-            return YangInstanceIdentifier.empty();
+            return YangInstanceIdentifier.of();
         } else {
             throw new InvalidNormalizedNodeStreamException("Invalid YangInstanceIdentifier size " + size);
         }
@@ -672,7 +672,7 @@ final class PotassiumDataInput extends AbstractNormalizedNodeDataInput {
             case PotassiumValue.BINARY_4B:
                 return readBinary(input.readInt());
             case PotassiumValue.YIID_0:
-                return YangInstanceIdentifier.empty();
+                return YangInstanceIdentifier.of();
             case PotassiumValue.YIID:
                 return readYangInstanceIdentifier(input.readInt());
             case PotassiumValue.QNAME:
index 99ee693bc29a86c70f6218c0b754e5dfe7732d39..c5aaa87269dc36bfac13bb5066edaf9ce3ecbf9a 100644 (file)
@@ -43,8 +43,8 @@ public class DataTreeCandidateInputOutputTest {
     private static final NodeIdentifier FOO_NODEID = new NodeIdentifier(FOO);
     private static final NodeIdentifier BAR_NODEID = new NodeIdentifier(BAR);
     private static final NodeIdentifier BAZ_NODEID = new NodeIdentifier(BAZ);
-    private static final YangInstanceIdentifier FOO_BAR_PATH = YangInstanceIdentifier.create(FOO_NODEID, BAR_NODEID);
-    private static final YangInstanceIdentifier BAR_PATH = YangInstanceIdentifier.create(BAR_NODEID);
+    private static final YangInstanceIdentifier FOO_BAR_PATH = YangInstanceIdentifier.of(FOO_NODEID, BAR_NODEID);
+    private static final YangInstanceIdentifier BAR_PATH = YangInstanceIdentifier.of(BAR_NODEID);
     private static final YangInstanceIdentifier BAR_BAZ_PATH = BAR_PATH.node(BAZ_NODEID);
 
     private static EffectiveModelContext CONTEXT;
@@ -63,7 +63,7 @@ public class DataTreeCandidateInputOutputTest {
 
     @Test
     public void testWriteRoot() throws IOException {
-        assertSerialization(createCandidate(mod -> mod.write(YangInstanceIdentifier.empty(),
+        assertSerialization(createCandidate(mod -> mod.write(YangInstanceIdentifier.of(),
             ImmutableNodes.containerNode(SchemaContext.NAME))));
     }
 
@@ -91,7 +91,7 @@ public class DataTreeCandidateInputOutputTest {
 
     @Test
     public void testUnmodifiedRoot() throws IOException {
-        assertSerialization(createCandidate(mod -> mod.merge(YangInstanceIdentifier.empty(),
+        assertSerialization(createCandidate(mod -> mod.merge(YangInstanceIdentifier.of(),
             ImmutableNodes.containerNode(SchemaContext.NAME))));
     }
 
@@ -145,11 +145,10 @@ public class DataTreeCandidateInputOutputTest {
                 final Collection<DataTreeCandidateNode> actualChildren = actual.getChildNodes();
                 assertEquals(expectedChildren.size(), actualChildren.size());
 
-                final Iterator<DataTreeCandidateNode> eit = expectedChildren.iterator();
                 final Iterator<DataTreeCandidateNode> ait = actualChildren.iterator();
 
-                while (eit.hasNext()) {
-                    assertEqualNodes(eit.next(), ait.next());
+                for (DataTreeCandidateNode expectedChild : expectedChildren) {
+                    assertEqualNodes(expectedChild, ait.next());
                 }
         }
     }
index 8d34aa2c4438711a7ea16bfe43522dd075457cf5..64c83b1a207d72f3cefa7a021995ab047d4b5094 100644 (file)
@@ -104,7 +104,7 @@ public final class TestModel {
             .withChild(leafNode(TestModel.BIGDECIMAL_LEAF_QNAME, Decimal64.valueOf("1.2")))
             .withChild(leafNode(SOME_REF_QNAME,
                 // Create YangInstanceIdentifier with all path arg types.
-                YangInstanceIdentifier.create(new NodeIdentifier(QName.create(TEST_QNAME, "qname")),
+                YangInstanceIdentifier.of(new NodeIdentifier(QName.create(TEST_QNAME, "qname")),
                     NodeIdentifierWithPredicates.of(QName.create(TEST_QNAME, "list-entry"),
                         QName.create(TEST_QNAME, "key"), 10),
                     new NodeWithValue<>(QName.create(TEST_QNAME, "leaf-list-entry"), "foo"))))
index 246d81c8fe4b648ed2a85516dbee5d6de52bd0b5..cf69f2d9062cf9a8af3004caab21ab0de48fbad8 100644 (file)
@@ -56,7 +56,7 @@ public class YiidSerializationTest extends AbstractSerializationTest {
 
     @Test
     public void testEmptyIdentifier() {
-        assertSame(YangInstanceIdentifier.empty(), emptySize);
+        assertSame(YangInstanceIdentifier.of(), emptySize);
     }
 
     @Test
index 2dec183a60372c7fd74fa050c656d33b7291f40f..7e060de3431ed3bad54ab4175347779cdbb910e3 100644 (file)
@@ -152,11 +152,10 @@ public final class TestingNormalizedNodeStructuresCreator {
     }
 
     private static Object lf112Value() {
-        return YangInstanceIdentifier.create(
-                new NodeIdentifier(QName.create(COMPLEX_JSON, "cont1")),
-                new NodeIdentifier(QName.create(COMPLEX_JSON, "lflst11")),
-                new NodeWithValue<>(QName.create(COMPLEX_JSON, "lflst11"),"foo")
-        );
+        return YangInstanceIdentifier.of(
+            new NodeIdentifier(QName.create(COMPLEX_JSON, "cont1")),
+            new NodeIdentifier(QName.create(COMPLEX_JSON, "lflst11")),
+            new NodeWithValue<>(QName.create(COMPLEX_JSON, "lflst11"), "foo"));
     }
 
     private static SystemLeafSetNode<?> childLflst11() {
index 0896462048ccbb083b24aab81765612539d23ba0..3903cbf71315f706a40f2b4f009288cf40ab0a8d 100644 (file)
@@ -57,11 +57,9 @@ public class YT1411Test extends AbstractComplexJsonTest {
         assertThat(lf112, instanceOf(LeafNode.class));
 
         final QName augmentChoice1 = QName.create(CONT_1, "augment-choice1");
-        assertEquals(YangInstanceIdentifier.create(
-            CONT_1_NODEID,
-            new NodeIdentifier(augmentChoice1),
-            new NodeIdentifier(QName.create(CONT_1, "augment-choice2")),
-            new NodeIdentifier(QName.create(CONT_1, "case11-choice-case-container"))),
+        assertEquals(YangInstanceIdentifier.of(
+            CONT_1, augmentChoice1, QName.create(CONT_1, "augment-choice2"),
+            QName.create(CONT_1, "case11-choice-case-container")),
             ((LeafNode<?>) lf112).body());
     }
 }
index 44c56254953bc4d131202288940ee3c467c6b22d..c1d500ae487a84926015aa91824f22d19786a432 100644 (file)
@@ -149,11 +149,10 @@ class YT1473Test {
 
     private static YangInstanceIdentifier buildYangInstanceIdentifier(final QName node, final QName key,
             final Object value) {
-        return YangInstanceIdentifier.create(
-                new NodeIdentifier(node), NodeIdentifierWithPredicates.of(node, key, value));
+        return YangInstanceIdentifier.of(new NodeIdentifier(node), NodeIdentifierWithPredicates.of(node, key, value));
     }
 
     private static YangInstanceIdentifier buildYangInstanceIdentifier(final QName node, final Object value) {
-        return YangInstanceIdentifier.create(new NodeIdentifier(node), new NodeWithValue<>(node, value));
+        return YangInstanceIdentifier.of(new NodeIdentifier(node), new NodeWithValue<>(node, value));
     }
 }
index ab3678ae995fbe94adac39c64e0d0e1895399fba..2d651fe2b3d993ff4616bd41e19c34f57993f06e 100644 (file)
@@ -146,11 +146,10 @@ class YT1473Test {
 
     private static YangInstanceIdentifier buildYangInstanceIdentifier(final QName node, final QName key,
             final Object value) {
-        return YangInstanceIdentifier.create(
-                new NodeIdentifier(node), NodeIdentifierWithPredicates.of(node, key, value));
+        return YangInstanceIdentifier.of(new NodeIdentifier(node), NodeIdentifierWithPredicates.of(node, key, value));
     }
 
     private static YangInstanceIdentifier buildYangInstanceIdentifier(final QName node, final Object value) {
-        return YangInstanceIdentifier.create(new NodeIdentifier(node), new NodeWithValue<>(node, value));
+        return YangInstanceIdentifier.of(new NodeIdentifier(node), new NodeWithValue<>(node, value));
     }
 }
index 390c9dd99b6261c5ba73a4f7310e5883830d1612..7077b369ccd503810e526d4d0a230c2ff20993af 100644 (file)
@@ -12,18 +12,16 @@ import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
-import java.io.Serial;
-import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.HashCodeBuilder;
 
 final class FixedYangInstanceIdentifier extends YangInstanceIdentifier implements Cloneable {
     static final @NonNull FixedYangInstanceIdentifier EMPTY_INSTANCE = new FixedYangInstanceIdentifier(
         ImmutableList.of());
-    @Serial
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
 
-    private final ImmutableList<PathArgument> path;
+    private final @NonNull ImmutableList<PathArgument> path;
 
     private transient volatile YangInstanceIdentifier parent = null;
 
@@ -31,14 +29,6 @@ final class FixedYangInstanceIdentifier extends YangInstanceIdentifier implement
         this.path = requireNonNull(path, "path must not be null.");
     }
 
-    static @NonNull FixedYangInstanceIdentifier of(final ImmutableList<PathArgument> path) {
-        return path.isEmpty() ? EMPTY_INSTANCE : new FixedYangInstanceIdentifier(path);
-    }
-
-    static @NonNull FixedYangInstanceIdentifier of(final List<PathArgument> path) {
-        return path.isEmpty() ? EMPTY_INSTANCE : new FixedYangInstanceIdentifier(ImmutableList.copyOf(path));
-    }
-
     @Override
     public boolean isEmpty() {
         return path.isEmpty();
@@ -61,7 +51,7 @@ final class FixedYangInstanceIdentifier extends YangInstanceIdentifier implement
 
         YangInstanceIdentifier ret = parent;
         if (ret == null) {
-            ret = YangInstanceIdentifier.create(path.subList(0, path.size() - 1));
+            ret = YangInstanceIdentifier.of(path.subList(0, path.size() - 1));
             parent = ret;
         }
 
@@ -85,27 +75,27 @@ final class FixedYangInstanceIdentifier extends YangInstanceIdentifier implement
             // Use the parent cache
             return verifyNotNull(getParent());
         }
-        return YangInstanceIdentifier.create(path.subList(0, depth));
+        return YangInstanceIdentifier.of(path.subList(0, depth));
     }
 
     @Override
-    public List<PathArgument> getPathArguments() {
+    public ImmutableList<PathArgument> getPathArguments() {
         return path;
     }
 
     @Override
-    public List<PathArgument> getReversePathArguments() {
+    public ImmutableList<PathArgument> getReversePathArguments() {
         return path.reverse();
     }
 
     @Override
-    @NonNull List<PathArgument> tryPathArguments() {
+    @NonNull ImmutableList<PathArgument> tryPathArguments() {
         return path;
     }
 
     @Override
-    @NonNull List<PathArgument> tryReversePathArguments() {
-        return path.reverse();
+    @NonNull ImmutableList<PathArgument> tryReversePathArguments() {
+        return getReversePathArguments();
     }
 
     @Override
index e58bd9db2b0c08a2952fbca41d27ff1660ffe256..10e03aee0ae4a8c74cdd238748cc994adbd2c6bb 100644 (file)
@@ -138,7 +138,7 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme
     @Override
     YangInstanceIdentifier createRelativeIdentifier(final int skipFromRoot) {
         // TODO: can we optimize this one?
-        return YangInstanceIdentifier.create(Iterables.skip(getPathArguments(), skipFromRoot));
+        return YangInstanceIdentifier.of(Iterables.skip(getPathArguments(), skipFromRoot));
     }
 
     @Override
@@ -156,6 +156,6 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme
 
     @Override
     public YangInstanceIdentifier toOptimized() {
-        return FixedYangInstanceIdentifier.create(getPathArguments());
+        return FixedYangInstanceIdentifier.of(getPathArguments());
     }
 }
index dfee9deced799bc16f1e0a69434529ea7d5f1c77..53b6a966e2c1f046c229fa578d1db1c9ada0cd46 100644 (file)
@@ -10,13 +10,11 @@ package org.opendaylight.yangtools.yang.data.api;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.io.Serial;
-import java.util.List;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 
 /**
@@ -39,7 +37,7 @@ final class YIDv1 implements Externalizable {
 
     @Override
     public void writeExternal(final ObjectOutput out) throws IOException {
-        final List<PathArgument> args = yid.getPathArguments();
+        final var args = yid.getPathArguments();
         out.writeInt(args.size());
         for (PathArgument arg : args) {
             // Unfortunately PathArgument is an interface and we do not have control over all its implementations,
@@ -51,11 +49,11 @@ final class YIDv1 implements Externalizable {
     @Override
     public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
         final int size = in.readInt();
-        final Builder<PathArgument> builder = ImmutableList.builderWithExpectedSize(size);
+        final var builder = ImmutableList.<PathArgument>builderWithExpectedSize(size);
         for (int i = 0; i < size; ++i) {
             builder.add((PathArgument) in.readObject());
         }
-        yid = YangInstanceIdentifier.create(builder.build());
+        yid = YangInstanceIdentifier.of(builder.build());
     }
 
     @Serial
index 7c89f4c15885f72cede170841a99557560f06243..26c8199bd7f9ba0a3d48a5ddbe6f00166906277a 100644 (file)
@@ -17,7 +17,6 @@ import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.VarHandle;
 import java.lang.reflect.Array;
@@ -99,11 +98,144 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      * namespace.
      *
      * @return An empty YangInstanceIdentifier
+     * @deprecated Use {@link #of()} instead.
      */
-    public static @NonNull YangInstanceIdentifier empty() {
+    @Deprecated(since = "11.0.0", forRemoval = true)
+    public static final @NonNull YangInstanceIdentifier empty() {
+        return of();
+    }
+
+    /**
+     * Return an empty {@link YangInstanceIdentifier}. It corresponds to the path of the conceptual root of the YANG
+     * namespace.
+     *
+     * @return An empty YangInstanceIdentifier
+     */
+    public static final @NonNull YangInstanceIdentifier of() {
         return FixedYangInstanceIdentifier.EMPTY_INSTANCE;
     }
 
+    /**
+     * Returns a new InstanceIdentifier with only one path argument of type {@link PathArgument}.
+     *
+     * @param name QName of first node identifier
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code name} is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final PathArgument name) {
+        return new FixedYangInstanceIdentifier(ImmutableList.of(name));
+    }
+
+    /**
+     * Returns a new InstanceIdentifier composed of supplied {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final PathArgument... path) {
+        // We are forcing a copy, since we cannot trust the user
+        return of(ImmutableList.copyOf(path));
+    }
+
+    /**
+     * Returns a new InstanceIdentifier composed of supplied {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code path} is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final ImmutableList<PathArgument> path) {
+        return path.isEmpty() ? of() : new FixedYangInstanceIdentifier(path);
+    }
+
+    /**
+     * Returns a new InstanceIdentifier composed of supplied {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final Collection<? extends PathArgument> path) {
+        return path.isEmpty() ? of() : of(ImmutableList.copyOf(path));
+    }
+
+    /**
+     * Returns a new InstanceIdentifier composed of supplied {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final Iterable<? extends PathArgument> path) {
+        return of(ImmutableList.copyOf(path));
+    }
+
+    /**
+     * Returns a new {@link YangInstanceIdentifier} with only one path argument of type {@link NodeIdentifier} with
+     * supplied {@link QName}. Note this is a convenience method aimed at test code. Production code should consider
+     * using {@link #of(PathArgument)} instead.
+     *
+     * @param name QName of first {@link NodeIdentifier}
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code name} is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final QName name) {
+        return of(new NodeIdentifier(name));
+    }
+
+    /**
+     * Returns a new {@link YangInstanceIdentifier} with path arguments of type {@link NodeIdentifier} with
+     * supplied {@link QName}s. Note this is a convenience method aimed at test code. Production code should consider
+     * using {@link #of(PathArgument...)} instead.
+     *
+     * @param path QNames of {@link NodeIdentifier}s
+     * @return A YangInstanceIdentifier
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     */
+    public static final @NonNull YangInstanceIdentifier of(final QName... path) {
+        return of(Arrays.stream(path).map(NodeIdentifier::new).collect(ImmutableList.toImmutableList()));
+    }
+
+    /**
+     * Create a YangInstanceIdentifier composed of a single {@link PathArgument}.
+     *
+     * @param pathArgument Path argument
+     * @return A {@link YangInstanceIdentifier}
+     * @throws NullPointerException if {@code pathArgument} is null
+     * @deprecated Use {@link #of(NodeIdentifier)} instead.
+     */
+    @Deprecated(since = "11.0.0", forRemoval = true)
+    public static @NonNull YangInstanceIdentifier create(final PathArgument pathArgument) {
+        return of(pathArgument);
+    }
+
+    /**
+     * Create a YangInstanceIdentifier composed of specified {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A {@link YangInstanceIdentifier}
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     * @deprecated Use {@link #of(PathArgument...)} instead.
+     */
+    @Deprecated(since = "11.0.0", forRemoval = true)
+    public static @NonNull YangInstanceIdentifier create(final PathArgument... path) {
+        return of(path);
+    }
+
+    /**
+     * Create a YangInstanceIdentifier composed of specified {@link PathArgument}s.
+     *
+     * @param path Path arguments
+     * @return A {@link YangInstanceIdentifier}
+     * @throws NullPointerException if {@code path} or any of its components is {@code null}
+     * @deprecated Use {@link #of(Iterable)} instead.
+     */
+    @Deprecated(since = "11.0.0", forRemoval = true)
+    public static @NonNull YangInstanceIdentifier create(final Iterable<? extends PathArgument> path) {
+        return of(path);
+    }
+
     abstract @NonNull YangInstanceIdentifier createRelativeIdentifier(int skipFromRoot);
 
     abstract @Nullable List<PathArgument> tryPathArguments();
@@ -111,8 +243,7 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
     abstract @Nullable List<PathArgument> tryReversePathArguments();
 
     /**
-     * Check if this instance identifier has empty path arguments, e.g. it is
-     * empty and corresponds to {@link #empty()}.
+     * Check if this instance identifier has empty path arguments, e.g. it is empty and corresponds to {@link #of()}.
      *
      * @return True if this instance identifier is empty, false otherwise.
      */
@@ -130,7 +261,7 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      * Return the conceptual parent {@link YangInstanceIdentifier}, which has
      * one item less in {@link #getPathArguments()}.
      *
-     * @return Parent {@link YangInstanceIdentifier}, or null if this object is {@link #empty()}.
+     * @return Parent {@link YangInstanceIdentifier}, or null if this object is {@link #of()}.
      */
     public abstract @Nullable YangInstanceIdentifier getParent();
 
@@ -139,7 +270,7 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      * {@link #getPathArguments()}.
      *
      * @return Parent {@link YangInstanceIdentifier}
-     * @throws VerifyException if this object is {@link #empty()}.
+     * @throws VerifyException if this object is {@link #of()}.
      */
     public abstract @NonNull YangInstanceIdentifier coerceParent();
 
@@ -175,19 +306,6 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      */
     public abstract PathArgument getLastPathArgument();
 
-    public static @NonNull YangInstanceIdentifier create(final Iterable<? extends PathArgument> path) {
-        return Iterables.isEmpty(path) ? empty() : new FixedYangInstanceIdentifier(ImmutableList.copyOf(path));
-    }
-
-    public static @NonNull YangInstanceIdentifier create(final PathArgument pathArgument) {
-        return new FixedYangInstanceIdentifier(ImmutableList.of(pathArgument));
-    }
-
-    public static @NonNull YangInstanceIdentifier create(final PathArgument... path) {
-        // We are forcing a copy, since we cannot trust the user
-        return create(Arrays.asList(path));
-    }
-
     /**
      * Create a {@link YangInstanceIdentifier} by taking a snapshot of provided path and iterating it backwards.
      *
@@ -199,7 +317,7 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
         final ImmutableList.Builder<PathArgument> builder = ImmutableList.builderWithExpectedSize(
             pathTowardsRoot.size());
         pathTowardsRoot.descendingIterator().forEachRemaining(builder::add);
-        return YangInstanceIdentifier.create(builder.build());
+        return YangInstanceIdentifier.of(builder.build());
     }
 
     /**
@@ -212,13 +330,12 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      */
     public static <T> @NonNull YangInstanceIdentifier createReverse(final Deque<? extends T> stackTowardsRoot,
             final Function<T, PathArgument> function) {
-        final ImmutableList.Builder<PathArgument> builder = ImmutableList.builderWithExpectedSize(
-            stackTowardsRoot.size());
-        final Iterator<? extends T> it = stackTowardsRoot.descendingIterator();
+        final var builder = ImmutableList.<PathArgument>builderWithExpectedSize(stackTowardsRoot.size());
+        final var it = stackTowardsRoot.descendingIterator();
         while (it.hasNext()) {
             builder.add(function.apply(it.next()));
         }
-        return YangInstanceIdentifier.create(builder.build());
+        return YangInstanceIdentifier.of(builder.build());
     }
 
     boolean pathArgumentsEqual(final YangInstanceIdentifier other) {
@@ -261,19 +378,18 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
      */
     public Optional<YangInstanceIdentifier> relativeTo(final YangInstanceIdentifier ancestor) {
         if (this == ancestor) {
-            return Optional.of(empty());
+            return Optional.of(of());
         }
         if (ancestor.isEmpty()) {
             return Optional.of(this);
         }
 
         final Iterator<PathArgument> lit = getPathArguments().iterator();
-        final Iterator<PathArgument> oit = ancestor.getPathArguments().iterator();
         int common = 0;
 
-        while (oit.hasNext()) {
+        for (PathArgument element : ancestor.getPathArguments()) {
             // Ancestor is not really an ancestor
-            if (!lit.hasNext() || !lit.next().equals(oit.next())) {
+            if (!lit.hasNext() || !lit.next().equals(element)) {
                 return Optional.empty();
             }
 
@@ -284,7 +400,7 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
             return Optional.of(this);
         }
         if (!lit.hasNext()) {
-            return Optional.of(empty());
+            return Optional.of(of());
         }
 
         return Optional.of(createRelativeIdentifier(common));
@@ -297,15 +413,14 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
         }
 
         checkArgument(other != null, "other should not be null");
-        final Iterator<PathArgument> lit = getPathArguments().iterator();
         final Iterator<PathArgument> oit = other.getPathArguments().iterator();
 
-        while (lit.hasNext()) {
+        for (PathArgument element : getPathArguments()) {
             if (!oit.hasNext()) {
                 return false;
             }
 
-            if (!lit.next().equals(oit.next())) {
+            if (!element.equals(oit.next())) {
                 return false;
             }
         }
@@ -392,19 +507,6 @@ public abstract sealed class YangInstanceIdentifier implements HierarchicalIdent
         return new YIDv1(this);
     }
 
-    // Static factories & helpers
-
-    /**
-     * Returns a new InstanceIdentifier with only one path argument of type {@link NodeIdentifier} with supplied
-     * QName.
-     *
-     * @param name QName of first node identifier
-     * @return Instance Identifier with only one path argument of type {@link NodeIdentifier}
-     */
-    public static @NonNull YangInstanceIdentifier of(final QName name) {
-        return create(new NodeIdentifier(name));
-    }
-
     /**
      * Returns new builder for InstanceIdentifier with empty path arguments.
      *
index df80ad27ae441b93bc7e5e6457127829445d750d..ffde3bc7af819e4bc2b58b0a65531047b064751e 100644 (file)
@@ -52,7 +52,7 @@ final class DuplicateFinder {
      */
     static Map<NormalizedNode, DuplicateEntry> findDuplicates(final NormalizedNode node) {
         final DuplicateFinder finder = new DuplicateFinder();
-        finder.findDuplicates(YangInstanceIdentifier.empty(), node);
+        finder.findDuplicates(YangInstanceIdentifier.of(), node);
         return finder.identities;
     }
 }
index 2140cdf6b27af2b0c5f55fd04dc4eaec9ac7107b..303a286538853ee730b9b0d7e0e74f72c47947af 100644 (file)
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 
 public class PathArgumentListTest {
-    private static final PathArgumentList LIST = new StackedPathArguments(YangInstanceIdentifier.empty(),
+    private static final PathArgumentList LIST = new StackedPathArguments(YangInstanceIdentifier.of(),
         List.of(new NodeIdentifier(QName.create("foo", "foo"))));
 
     @Test
@@ -55,7 +55,7 @@ public class PathArgumentListTest {
         entryLeaf.put(qNameList, "leaf");
         final NodeIdentifierWithPredicates nodeIdentifierWithPredicates = NodeIdentifierWithPredicates.of(qNameList,
             entryLeaf);
-        final YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.of(qNameRoot).node(qNameList)
+        final YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.of(qNameRootqNameList)
                 .node(nodeIdentifierWithPredicates).node(qNameLeaf);
         final PathArgument pathArgumentToRoot = yangInstanceIdentifier.getAncestor(1).getPathArguments().iterator()
                 .next();
index 9db903f2fc3b9f379d5c8c96b184087caf466cde..db31a494e6fcf69843c283e42f0b898a93101522 100644 (file)
@@ -21,7 +21,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -49,31 +48,28 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testGetLastPathArgument() {
-        YangInstanceIdentifier id1 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
+        YangInstanceIdentifier id1 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1),
                 new NodeIdentifier(NODENAME2));
         assertEquals(new NodeIdentifier(NODENAME2), id1.getLastPathArgument());
-        YangInstanceIdentifier id2 = YangInstanceIdentifier.create();
+        YangInstanceIdentifier id2 = YangInstanceIdentifier.of();
         assertNull(id2.getLastPathArgument());
     }
 
     @Test
     public void testHashCodeEquals() {
-        YangInstanceIdentifier id1 = YangInstanceIdentifier.create(NodeIdentifier.create(NODENAME1),
+        YangInstanceIdentifier id1 = YangInstanceIdentifier.of(NodeIdentifier.create(NODENAME1),
                 new NodeIdentifier(NODENAME2));
-        YangInstanceIdentifier id2 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
+        YangInstanceIdentifier id2 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1),
                 NodeIdentifier.create(NODENAME2));
         assertEquals(id1.hashCode(), id2.hashCode());
     }
 
     @Test
     public void testEquals() {
-        final YangInstanceIdentifier id1 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier id2 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier id3 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME2),
-                new NodeIdentifier(NODENAME1));
-        final YangInstanceIdentifier id4 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1));
+        final var id1 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
+        final var id2 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
+        final var id3 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME2), new NodeIdentifier(NODENAME1));
+        final var id4 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1));
 
         assertFalse(id1.equals(null));
         assertTrue(id1.equals(id1));
@@ -85,22 +81,19 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testToString() {
-        YangInstanceIdentifier id = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
-
+        final var id = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
         assertNotNull(id.toString());
     }
 
     @Test
     public void testNode() {
-        final YangInstanceIdentifier id = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
+        final var id = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
 
-        YangInstanceIdentifier newID = id.node(NODENAME3);
+        var newID = id.node(NODENAME3);
         assertNotNull(newID);
         assertEquals(3, newID.getPathArguments().size());
 
-        Iterator<PathArgument> it = newID.getPathArguments().iterator();
+        var it = newID.getPathArguments().iterator();
         assertEquals(NODENAME1, it.next().getNodeType());
         assertEquals(NODENAME2, it.next().getNodeType());
         assertEquals(NODENAME3, it.next().getNodeType());
@@ -117,11 +110,11 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testRelativeTo() {
-        final YangInstanceIdentifier id1 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
+        final YangInstanceIdentifier id1 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1),
                 new NodeIdentifier(NODENAME2), new NodeIdentifier(NODENAME3), new NodeIdentifier(NODENAME4));
-        final YangInstanceIdentifier id2 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
+        final YangInstanceIdentifier id2 = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1),
                 new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier id3 = YangInstanceIdentifier.create(List.of(
+        final YangInstanceIdentifier id3 = YangInstanceIdentifier.of(List.of(
                     new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2)));
 
         Optional<YangInstanceIdentifier> relative = id1.relativeTo(id2);
@@ -142,21 +135,16 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testContainsNull() {
-        final YangInstanceIdentifier id = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1));
-
+        final var id = YangInstanceIdentifier.of(NODENAME1);
         assertThrows(IllegalArgumentException.class, () -> id.contains(null));
     }
 
     @Test
     public void testContains() {
-        final YangInstanceIdentifier id1 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2), new NodeIdentifier(NODENAME3), new NodeIdentifier(NODENAME4));
-        final YangInstanceIdentifier id2 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier id3 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier id4 = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-                new NodeIdentifier(NODENAME3));
+        final var id1 = YangInstanceIdentifier.of(NODENAME1, NODENAME2, NODENAME3, NODENAME4);
+        final var id2 = YangInstanceIdentifier.of(NODENAME1, NODENAME2);
+        final var id3 = YangInstanceIdentifier.of(NODENAME1, NODENAME2);
+        final var id4 = YangInstanceIdentifier.of(NODENAME1, NODENAME3);
 
         assertTrue(id2.contains(id1));
         assertTrue(id2.contains(id3));
@@ -166,7 +154,7 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testOf() {
-        YangInstanceIdentifier newID = YangInstanceIdentifier.of(NODENAME1);
+        final var newID = YangInstanceIdentifier.of(NODENAME1);
         assertNotNull(newID);
         assertEquals(1, newID.getPathArguments().size());
         assertEquals(NODENAME1, newID.getPathArguments().get(0).getNodeType());
@@ -177,7 +165,7 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testBuilder() {
-        YangInstanceIdentifier newID = YangInstanceIdentifier.builder()
+        var newID = YangInstanceIdentifier.builder()
                 .node(NODENAME1)
                 .nodeWithKey(NODENAME2, Map.of(KEY1, "foo"))
                 .nodeWithKey(NODENAME3, KEY2, "bar").build();
@@ -185,7 +173,7 @@ public class YangInstanceIdentifierTest {
         assertNotNull(newID);
         assertEquals(3, newID.getPathArguments().size());
 
-        Iterator<PathArgument> it = newID.getPathArguments().iterator();
+        var it = newID.getPathArguments().iterator();
         assertEquals(NODENAME1, it.next().getNodeType());
         verifyNodeIdentifierWithPredicates("PathArg 2", it.next(), NODENAME2, KEY1, "foo");
         verifyNodeIdentifierWithPredicates("PathArg 3", it.next(), NODENAME3, KEY2, "bar");
@@ -331,49 +319,47 @@ public class YangInstanceIdentifierTest {
 
     @Test
     public void testSerialization() throws IOException, ClassNotFoundException {
-        final YangInstanceIdentifier fixed = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-            new NodeIdentifier(NODENAME2));
+        final var fixed = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
         assertEquals(fixed, serdes(fixed));
 
-        final YangInstanceIdentifier stacked = YangInstanceIdentifier.empty().node(new NodeIdentifier(NODENAME1));
+        final var stacked = YangInstanceIdentifier.of().node(new NodeIdentifier(NODENAME1));
         assertEquals(stacked, serdes(stacked));
 
-        final YangInstanceIdentifier empty = serdes(YangInstanceIdentifier.empty());
-        assertSame(YangInstanceIdentifier.empty(), empty);
+        final var empty = serdes(YangInstanceIdentifier.of());
+        assertSame(YangInstanceIdentifier.of(), empty);
     }
 
     @Test
     public void testToOptimized() {
-        final YangInstanceIdentifier fixed = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1),
-            new NodeIdentifier(NODENAME2));
-        final YangInstanceIdentifier stacked = YangInstanceIdentifier.empty().node(NodeIdentifier.create(NODENAME1))
+        final var fixed = YangInstanceIdentifier.of(new NodeIdentifier(NODENAME1), new NodeIdentifier(NODENAME2));
+        final var stacked = YangInstanceIdentifier.of().node(NodeIdentifier.create(NODENAME1))
                 .node(NodeIdentifier.create(NODENAME2));
 
         assertSame(fixed, fixed.toOptimized());
 
-        final YangInstanceIdentifier opt = stacked.toOptimized();
+        final var opt = stacked.toOptimized();
         assertTrue(opt instanceof FixedYangInstanceIdentifier);
         assertEquals(fixed, stacked.toOptimized());
     }
 
     @Test
     public void testGetParent() {
-        final YangInstanceIdentifier fixed = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1));
-        final YangInstanceIdentifier stacked = YangInstanceIdentifier.empty().node(new NodeIdentifier(NODENAME1));
-        final YangInstanceIdentifier twoStacked = stacked.node(new NodeIdentifier(NODENAME2));
+        final var fixed = YangInstanceIdentifier.of(NODENAME1);
+        final var stacked = YangInstanceIdentifier.of().node(new NodeIdentifier(NODENAME1));
+        final var twoStacked = stacked.node(NODENAME2);
 
-        assertNull(YangInstanceIdentifier.empty().getParent());
-        assertSame(YangInstanceIdentifier.empty(), fixed.getParent());
-        assertSame(YangInstanceIdentifier.empty(), stacked.getParent());
+        assertNull(YangInstanceIdentifier.of().getParent());
+        assertSame(YangInstanceIdentifier.of(), fixed.getParent());
+        assertSame(YangInstanceIdentifier.of(), stacked.getParent());
         assertSame(stacked, twoStacked.getParent());
     }
 
     @Test
     public void testIsEmpty() {
-        final YangInstanceIdentifier fixed = YangInstanceIdentifier.create(new NodeIdentifier(NODENAME1));
-        final YangInstanceIdentifier stacked = YangInstanceIdentifier.empty().node(new NodeIdentifier(NODENAME1));
+        final YangInstanceIdentifier fixed = YangInstanceIdentifier.of(NODENAME1);
+        final YangInstanceIdentifier stacked = YangInstanceIdentifier.of().node(NODENAME1);
 
-        assertTrue(YangInstanceIdentifier.empty().isEmpty());
+        assertTrue(YangInstanceIdentifier.of().isEmpty());
         assertFalse(fixed.isEmpty());
         assertFalse(stacked.isEmpty());
     }
index 817067cbb6b063136be8fd6efb390473f4606a9e..8bacfefd5e8b87481d72f118c95b8f0ef6b79bb9 100644 (file)
@@ -76,9 +76,9 @@ public class NormalizedNodesTest {
         final QName node3QName = QName.create("test-ns", "2016-09-16", "node3");
         final QName node4Qname = QName.create("test-ns", "2016-09-16", "node4");
 
-        final YangInstanceIdentifier rootPath = YangInstanceIdentifier.create(new NodeIdentifier(node1QName),
+        final YangInstanceIdentifier rootPath = YangInstanceIdentifier.of(new NodeIdentifier(node1QName),
                 new NodeIdentifier(node2Qname));
-        final YangInstanceIdentifier childPath = YangInstanceIdentifier.create(new NodeIdentifier(node1QName),
+        final YangInstanceIdentifier childPath = YangInstanceIdentifier.of(new NodeIdentifier(node1QName),
                 new NodeIdentifier(node2Qname), new NodeIdentifier(node3QName), new NodeIdentifier(node4Qname));
 
         assertEquals(Optional.of(mockedLeafNode),
index 32d39162b266c0c95346b83cb63e7793a313fea7..3827b5a413416786aec90fa40a1ac8b00e0c18ee 100644 (file)
@@ -75,8 +75,7 @@ public class InstanceIdToNodesTest {
                     .build())
                 .build())
             .build(),
-            ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerList, outerListWithKey)));
+            ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.of(rootContainer, outerList, outerListWithKey)));
     }
 
     @Test
@@ -91,14 +90,13 @@ public class InstanceIdToNodesTest {
                     .build())
                 .build())
             .build(),
-            ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, leafList, leafListWithValue)));
+            ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.of(rootContainer, leafList, leafListWithValue)));
     }
 
     @Test
     public void testEmptyInstanceIdentifier() {
         assertEquals(ImmutableNodes.containerNode(SchemaContext.NAME),
-            ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.empty()));
+            ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.of()));
     }
 
     @Test
@@ -107,8 +105,7 @@ public class InstanceIdToNodesTest {
         final NodeIdentifierWithPredicates id = NodeIdentifierWithPredicates.of(TWO_KEY_LIST.getNodeType(), misordered);
         assertArrayEquals(new Object[] { BAR, FOO }, id.keySet().toArray());
 
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-            YangInstanceIdentifier.create(TWO_KEY_LIST, id));
+        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.of(TWO_KEY_LIST, id));
         assertThat(filter, isA(MapNode.class));
         final Collection<MapEntryNode> value = ((MapNode) filter).body();
         assertEquals(1, value.size());
index bd9c171400e0a7585ab267e866cffb3589450cf7..620aab8affec8af12c072f791ea843341ef857ed 100644 (file)
@@ -36,6 +36,6 @@ public interface CursorAwareDataTreeModification extends DataTreeModification, C
      */
     @Override
     default DataTreeModificationCursor openCursor() {
-        return openCursor(YangInstanceIdentifier.empty()).orElseThrow();
+        return openCursor(YangInstanceIdentifier.of()).orElseThrow();
     }
 }
index f36f90887a274be748b0a27a2994c9bcc62cf12e..4aff7a8613171a1a3e4ee6b563aa823fab35f485 100644 (file)
@@ -34,7 +34,7 @@ public interface CursorAwareDataTreeSnapshot extends DataTreeSnapshot {
      * @throws IllegalStateException if there is another cursor currently open.
      */
     default DataTreeSnapshotCursor openCursor() {
-        return openCursor(YangInstanceIdentifier.empty()).orElseThrow();
+        return openCursor(YangInstanceIdentifier.of()).orElseThrow();
     }
 
     @Override
index 7b02ad706f61b60927ecdba42401650d4778797b..6d43e207dc891938b79604441ee3846f9a6ec1df 100644 (file)
@@ -108,7 +108,7 @@ public class DataTreeConfiguration implements Immutable {
 
         public Builder(final TreeType treeType) {
             this.treeType = requireNonNull(treeType);
-            rootPath = YangInstanceIdentifier.empty();
+            rootPath = YangInstanceIdentifier.of();
         }
 
         public @NonNull Builder setUniqueIndexes(final boolean uniqueIndexes) {
index 9bf4f65f55e2ee9e6528a05441f2770285c6e82e..4628e94d378f871f200540f647b9f43876747ff9 100644 (file)
@@ -47,12 +47,12 @@ abstract class AbstractDataTreeTip implements DataTreeTip {
 
         final TreeNode currentRoot = getTipRoot();
         if (root.getOperation() == LogicalOperation.NONE) {
-            return new NoopDataTreeCandidate(YangInstanceIdentifier.empty(), root, currentRoot);
+            return new NoopDataTreeCandidate(YangInstanceIdentifier.of(), root, currentRoot);
         }
 
         final var newRoot = m.getStrategy().apply(m.getRootModification(), Optional.of(currentRoot), m.getVersion());
         checkState(newRoot.isPresent(), "Apply strategy failed to produce root node for modification %s", modification);
-        return new InMemoryDataTreeCandidate(YangInstanceIdentifier.empty(), root, currentRoot, newRoot.orElseThrow());
+        return new InMemoryDataTreeCandidate(YangInstanceIdentifier.of(), root, currentRoot, newRoot.orElseThrow());
     }
 
     private static InMemoryDataTreeModification checkedCast(final DataTreeModification mod) {
index b2d23af2a321c4cf0a409f6dd1c78538d6c5bccc..fc1cf9f1e9d6bfdc9d6c1cb47d3de025eb1f04c8 100644 (file)
@@ -44,7 +44,7 @@ final class MandatoryLeafEnforcer implements Immutable {
         }
 
         final var builder = ImmutableList.<YangInstanceIdentifier>builder();
-        findMandatoryNodes(builder, YangInstanceIdentifier.empty(), schema, treeConfig.getTreeType());
+        findMandatoryNodes(builder, YangInstanceIdentifier.of(), schema, treeConfig.getTreeType());
         final var mandatoryNodes = builder.build();
         return mandatoryNodes.isEmpty() ? null : new MandatoryLeafEnforcer(mandatoryNodes);
     }
index bc71669ae047e0e89ceda5ea79355cec25190470..e3ab89a66c1125f381154ae3dd213516ee226ce9 100644 (file)
@@ -37,7 +37,7 @@ final class MinMaxElementsValidationFailedException extends SchemaValidationFail
 
     @Override
     public List<YangNetconfError> getNetconfErrors() {
-        return new RequiredElementCountException(YangInstanceIdentifier.empty(), actual, min, max, "dummy")
+        return new RequiredElementCountException(YangInstanceIdentifier.of(), actual, min, max, "dummy")
             .getNetconfErrors();
     }
 }
index f36c7ed836c31bf340d5efdf190021497676c6a4..b11de2f85347e7c7cb0959fb0e002da4b23c876c 100644 (file)
@@ -82,7 +82,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
         final DataTree ret = createDataTree(treeConfig, initialSchemaContext, false);
 
         final DataTreeModification mod = ret.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.empty(), initialRoot);
+        mod.write(YangInstanceIdentifier.of(), initialRoot);
         mod.ready();
 
         ret.validate(mod);
index f317abd9e6db9fc3710d5afa2248a784afac3863..d178b39d4f0a7dd84efce709d14e4f8901194b88 100644 (file)
@@ -76,7 +76,7 @@ public final class LeafRefValidation {
                 final LeafRefContext referencingCtx = rootLeafRefCtx.getReferencingChildByName(childQName);
                 if (referencedByCtx != null || referencingCtx != null) {
                     validateNode(dataTreeCandidateNode, referencedByCtx, referencingCtx,
-                        YangInstanceIdentifier.create(identifier));
+                        YangInstanceIdentifier.of(identifier));
                 }
             }
         }
index 5f705e16c30c76c894264ba45b492aeb12abdf00..77c48751d5ee7b3a316c245a2741b8fc14b7549d 100644 (file)
@@ -119,14 +119,14 @@ public class Bug4295Test {
             case 2: {
                 /* WRITE INNER LIST ENTRY */
                 MapEntryNode innerListEntryA = createInnerListEntry("a", "i-a-2");
-                path = YangInstanceIdentifier.of(root).node(subRoot).node(outerList).node(createOuterListEntryPath("2"))
+                path = YangInstanceIdentifier.of(root, subRoot, outerList).node(createOuterListEntryPath("2"))
                     .node(innerList).node(createInnerListEntryPath("a"));
                 modification.write(path, innerListEntryA);
                 break;
             }
             case 3: {
                 /* WRITE INNER LIST WITH ENTRIES */
-                path = YangInstanceIdentifier.of(root).node(subRoot).node(outerList).node(createOuterListEntryPath("2"))
+                path = YangInstanceIdentifier.of(root, subRoot, outerList).node(createOuterListEntryPath("2"))
                     .node(innerList);
                 modification.write(path, createInnerListBuilder()
                     .withChild(createInnerListEntry("a", "i-a-3"))
@@ -145,7 +145,7 @@ public class Bug4295Test {
     }
 
     private void writeEmptyInnerList(final DataTreeModification modification, final String outerListEntryKey) {
-        YangInstanceIdentifier path = YangInstanceIdentifier.of(root).node(subRoot).node(outerList)
+        YangInstanceIdentifier path = YangInstanceIdentifier.of(root, subRoot, outerList)
                 .node(createOuterListEntryPath(outerListEntryKey)).node(innerList);
         modification.write(path, createInnerListBuilder().build());
     }
index 2bc35dcedd7be00f76590509ac25b9966aec77ff..2f70a59b056b0df1907abbd5f667b7050f280676 100644 (file)
@@ -61,18 +61,16 @@ public class Bug4454Test {
     private static final QName MIN_MAX_VALUE_LEAF_QNAME = QName.create(MASTER_CONTAINER_QNAME, "min-max-value-leaf");
     private static final QName PRESENCE_QNAME = QName.create(MASTER_CONTAINER_QNAME, "presence");
 
-    private static final YangInstanceIdentifier MASTER_CONTAINER_PATH = YangInstanceIdentifier
-            .of(MASTER_CONTAINER_QNAME);
-    private static final YangInstanceIdentifier MIN_MAX_LIST_PATH = YangInstanceIdentifier
-            .builder(MASTER_CONTAINER_PATH)
-            .node(MIN_MAX_LIST_QNAME).build();
+    private static final YangInstanceIdentifier MASTER_CONTAINER_PATH =
+        YangInstanceIdentifier.of(MASTER_CONTAINER_QNAME);
+    private static final YangInstanceIdentifier MIN_MAX_LIST_PATH =
+        YangInstanceIdentifier.builder(MASTER_CONTAINER_PATH).node(MIN_MAX_LIST_QNAME).build();
     private static final YangInstanceIdentifier PRESENCE_PATH = YangInstanceIdentifier.of(PRESENCE_QNAME);
     private static final YangInstanceIdentifier PRESENCE_MIN_MAX_LIST_PATH = PRESENCE_PATH.node(MIN_MAX_LIST_QNAME);
-    private static final YangInstanceIdentifier MIN_MAX_LIST_NO_MINMAX_PATH = YangInstanceIdentifier
-            .builder(MASTER_CONTAINER_PATH)
-            .node(MIN_MAX_LIST_QNAME_NO_MINMAX).build();
-    private static final YangInstanceIdentifier MIN_MAX_LEAF_LIST_PATH = YangInstanceIdentifier
-            .builder(MASTER_CONTAINER_PATH).node(MIN_MAX_LEAF_LIST_QNAME).build();
+    private static final YangInstanceIdentifier MIN_MAX_LIST_NO_MINMAX_PATH =
+        YangInstanceIdentifier.builder(MASTER_CONTAINER_PATH).node(MIN_MAX_LIST_QNAME_NO_MINMAX).build();
+    private static final YangInstanceIdentifier MIN_MAX_LEAF_LIST_PATH =
+        YangInstanceIdentifier.builder(MASTER_CONTAINER_PATH).node(MIN_MAX_LEAF_LIST_QNAME).build();
 
     private final MapEntryNode fooEntryNodeWithValue = Builders.mapEntryBuilder()
         .withNodeIdentifier(NodeIdentifierWithPredicates.of(MIN_MAX_LIST_QNAME, MIN_MAX_KEY_LEAF_QNAME, "foo"))
@@ -342,8 +340,7 @@ public class Bug4454Test {
         inMemoryDataTree.commit(prepare);
 
         // Empty list should have disappeared, along with the container, as we are not enforcing root
-        final NormalizedNode data = inMemoryDataTree.takeSnapshot()
-                .readNode(YangInstanceIdentifier.empty()).orElseThrow();
+        final NormalizedNode data = inMemoryDataTree.takeSnapshot().readNode(YangInstanceIdentifier.of()).orElseThrow();
         assertTrue(data instanceof ContainerNode);
         assertEquals(0, ((ContainerNode) data).size());
     }
index da96a1cc0c0206628c26171af08571911490eabf..3f0c4777b4ca35eddb452fc0f7b786350e17a103 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.data.tree.impl;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import com.google.common.collect.ImmutableMap;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -55,7 +55,7 @@ public class Bug5830Test {
 
         final SystemMapNode taskNode = Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(TASK)).build();
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
-        modificationTree.write(YangInstanceIdentifier.of(TASK_CONTAINER).node(TASK), taskNode);
+        modificationTree.write(YangInstanceIdentifier.of(TASK_CONTAINERTASK), taskNode);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
@@ -76,14 +76,10 @@ public class Bug5830Test {
         assertNotNull("Schema context must not be null.", schemaContext);
 
         testContainerIsNotPresent(schemaContext);
-        try {
-            testContainerIsPresent(schemaContext);
-            fail("Should fail due to missing mandatory node under present presence container.");
-        } catch (IllegalArgumentException e) {
-            assertEquals(
-                    "Node (foo?revision=2016-05-17)task-data is missing mandatory descendant /(foo?revision=2016-05-17)"
-                            + "mandatory-data", e.getMessage());
-        }
+        final var ex = assertThrows(IllegalArgumentException.class, () -> testContainerIsPresent(schemaContext));
+        assertEquals(
+            "Node (foo?revision=2016-05-17)task-data is missing mandatory descendant /(foo?revision=2016-05-17)"
+                + "mandatory-data", ex.getMessage());
         testMandatoryDataLeafIsPresent(schemaContext);
     }
 
@@ -129,9 +125,10 @@ public class Bug5830Test {
             testMandatoryDataLeafIsPresent(schemaContext);
             fail("Should fail due to missing mandatory node under present presence container.");
         } catch (IllegalArgumentException e) {
-            assertEquals("Node (foo?revision=2016-05-17)task-data "
-                    + "is missing mandatory descendant /(foo?revision=2016-05-17)non-presence-container/"
-                    + "non-presence-container-2/mandatory-leaf-2", e.getMessage());
+            assertEquals("""
+                Node (foo?revision=2016-05-17)task-data is missing mandatory descendant \
+                /(foo?revision=2016-05-17)non-presence-container/\
+                non-presence-container-2/mandatory-leaf-2""", e.getMessage());
         }
 
         testMandatoryLeaf2IsPresent(schemaContext, false);
@@ -150,14 +147,15 @@ public class Bug5830Test {
             throws DataValidationFailedException {
         final DataTree inMemoryDataTree = initDataTree(schemaContext);
         final MapEntryNode taskEntryNode = Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123")))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_ID, "123"))
-                .withChild(ImmutableNodes.leafNode(TASK_MANDATORY_LEAF, "mandatory data")).build();
+                .withChild(ImmutableNodes.leafNode(TASK_MANDATORY_LEAF, "mandatory data"))
+                .build();
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.write(
-                YangInstanceIdentifier.of(TASK_CONTAINER).node(TASK)
-                        .node(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123"))), taskEntryNode);
+            YangInstanceIdentifier.of(TASK_CONTAINER, TASK).node(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123")),
+            taskEntryNode);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
@@ -170,15 +168,15 @@ public class Bug5830Test {
         final DataTree inMemoryDataTree = initDataTree(schemaContext);
 
         final MapEntryNode taskEntryNode = Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123")))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_MANDATORY_LEAF, "mandatory data"))
                 .withChild(createTaskDataContainer(false)).build();
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.write(
-                YangInstanceIdentifier.of(TASK_CONTAINER).node(TASK)
-                        .node(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123"))), taskEntryNode);
+            YangInstanceIdentifier.of(TASK_CONTAINER, TASK).node(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123")),
+            taskEntryNode);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
@@ -191,15 +189,15 @@ public class Bug5830Test {
         final DataTree inMemoryDataTree = initDataTree(schemaContext);
 
         final MapEntryNode taskEntryNode = Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123")))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_MANDATORY_LEAF, "mandatory data"))
                 .withChild(createTaskDataContainer(true)).build();
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.write(
-                YangInstanceIdentifier.of(TASK_CONTAINER).node(TASK)
-                        .node(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123"))), taskEntryNode);
+            YangInstanceIdentifier.of(TASK_CONTAINER, TASK).node(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123")),
+            taskEntryNode);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
@@ -212,15 +210,16 @@ public class Bug5830Test {
         final DataTree inMemoryDataTree = initDataTree(schemaContext);
 
         final MapEntryNode taskEntryNode = Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123")))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_ID, "123"))
                 .withChild(ImmutableNodes.leafNode(TASK_MANDATORY_LEAF, "mandatory data"))
-                .withChild(createTaskDataMultipleContainer(withPresenceContianer)).build();
+                .withChild(createTaskDataMultipleContainer(withPresenceContianer))
+                .build();
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.write(
-                YangInstanceIdentifier.of(TASK_CONTAINER).node(TASK)
-                        .node(NodeIdentifierWithPredicates.of(TASK, ImmutableMap.of(TASK_ID, "123"))), taskEntryNode);
+            YangInstanceIdentifier.of(TASK_CONTAINER, TASK).node(NodeIdentifierWithPredicates.of(TASK, TASK_ID, "123")),
+            taskEntryNode);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
index ffb7245956e4ab40200fa68f09996e98af35754d..59c0519d5aece687dfa7296a010a0ddea8eef503 100644 (file)
@@ -61,11 +61,10 @@ public class Bug5968MergeTest {
         final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(ROOT));
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
-        modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT),
-                withMapNode ? root.withChild(
-                        Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(MY_LIST)).build()).build() : root
-                        .build());
+        modificationTree.merge(YangInstanceIdentifier.of(ROOT),
+            withMapNode ? root.withChild(
+                Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(MY_LIST)).build()).build()
+                : root.build());
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
@@ -142,7 +141,7 @@ public class Bug5968MergeTest {
 
     private static void mergeMap(final DataTreeModification modificationTree,
             final boolean mandatoryDataMissing) throws DataValidationFailedException {
-        modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMap(mandatoryDataMissing));
+        modificationTree.merge(YangInstanceIdentifier.of(ROOTMY_LIST), createMap(mandatoryDataMissing));
     }
 
     private static SystemMapNode createMap(final boolean mandatoryDataMissing) throws DataValidationFailedException {
@@ -159,15 +158,15 @@ public class Bug5968MergeTest {
                 : createMapEntry(listIdValue, mandatoryLeafValue, commonLeafValue);
 
         modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue))),
-                taskEntryNode);
+            YangInstanceIdentifier.of(ROOT, MY_LIST)
+                .node(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, listIdValue)),
+            taskEntryNode);
     }
 
     private static MapEntryNode createMapEntry(final Object listIdValue, final Object mandatoryLeafValue,
             final Object commonLeafValue) throws DataValidationFailedException {
         return Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, listIdValue))
                 .withChild(ImmutableNodes.leafNode(LIST_ID, listIdValue))
                 .withChild(ImmutableNodes.leafNode(MANDATORY_LEAF, mandatoryLeafValue))
                 .withChild(ImmutableNodes.leafNode(COMMON_LEAF, commonLeafValue)).build();
@@ -236,15 +235,13 @@ public class Bug5968MergeTest {
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.merge(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
-        modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
+        modificationTree.merge(YangInstanceIdentifier.of(ROOTMY_LIST), createMapBuilder().build());
         modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
-                createEmptyMapEntryBuilder("1").build());
+            YangInstanceIdentifier.of(ROOT, MY_LIST).node(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, "1")),
+            createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
-                createMapEntry("1", "mandatory-value", "common-value"));
+            YangInstanceIdentifier.of(ROOT, MY_LIST).node(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, "1")),
+            createMapEntry("1", "mandatory-value", "common-value"));
 
         modificationTree.ready();
         inMemoryDataTree.validate(modificationTree);
@@ -258,15 +255,13 @@ public class Bug5968MergeTest {
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.merge(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
-        modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
+        modificationTree.merge(YangInstanceIdentifier.of(ROOTMY_LIST), createMapBuilder().build());
         modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
-                createEmptyMapEntryBuilder("1").build());
+            YangInstanceIdentifier.of(ROOT, MY_LIST).node(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, "1")),
+            createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
-                YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
-                createMapEntry("1", "common-value"));
+            YangInstanceIdentifier.of(ROOT, MY_LIST).node(NodeIdentifierWithPredicates.of(MY_LIST, LIST_ID, "1")),
+            createMapEntry("1", "common-value"));
 
         try {
             modificationTree.ready();
index ad33c622a46bddee03fbc29835a7969739c527d5..7ec7241b51b52a4f8e306f73f2fb5d6201d2a81c 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.data.tree.impl;
 
 import static org.junit.Assert.assertNotNull;
 
-import com.google.common.collect.ImmutableMap;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -60,9 +59,8 @@ public class Bug8291Test {
     private static void writeInnerList(final DataTree inMemoryDataTree) throws DataValidationFailedException {
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.write(
-                YangInstanceIdentifier.create(
-                        NodeIdentifierWithPredicates.of(OUTER_LIST, ImmutableMap.of(OUTER_LIST_ID, 1))).node(
-                        INNER_LIST), Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(INNER_LIST)).build());
+            YangInstanceIdentifier.of(NodeIdentifierWithPredicates.of(OUTER_LIST, OUTER_LIST_ID, 1)).node(INNER_LIST),
+            Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(INNER_LIST)).build());
 
         modificationTree.ready();
         inMemoryDataTree.validate(modificationTree);
@@ -75,11 +73,12 @@ public class Bug8291Test {
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         final MapEntryNode outerListMapEntry = Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(OUTER_LIST, ImmutableMap.of(OUTER_LIST_ID, 1)))
-                .withChild(ImmutableNodes.leafNode(OUTER_LIST_ID, 1)).build();
+            .withNodeIdentifier(NodeIdentifierWithPredicates.of(OUTER_LIST, OUTER_LIST_ID, 1))
+            .withChild(ImmutableNodes.leafNode(OUTER_LIST_ID, 1))
+            .build();
 
-        modificationTree.write(YangInstanceIdentifier.create(NodeIdentifierWithPredicates.of(OUTER_LIST,
-                ImmutableMap.of(OUTER_LIST_ID, 1))), outerListMapEntry);
+        modificationTree.write(YangInstanceIdentifier.of(NodeIdentifierWithPredicates.of(OUTER_LIST, OUTER_LIST_ID, 1)),
+            outerListMapEntry);
         modificationTree.ready();
 
         inMemoryDataTree.validate(modificationTree);
index ec76f707e41236b1801c0882e819685fe5461611..d556ad7c22cf22be3675377bd4aa10a2587bdd60 100644 (file)
@@ -143,7 +143,7 @@ public class DataTreeCandidatesTest extends AbstractTestModelTest {
         dataTree.validate(modification);
 
         final DataTreeCandidate candidate = dataTree.prepare(modification);
-        assertEquals(YangInstanceIdentifier.empty(), candidate.getRootPath());
+        assertEquals(YangInstanceIdentifier.of(), candidate.getRootPath());
         final DataTreeCandidateNode node = candidate.getRootNode();
         assertEquals(ModificationType.UNMODIFIED, node.getModificationType());
 
@@ -169,7 +169,7 @@ public class DataTreeCandidatesTest extends AbstractTestModelTest {
 
         // The entire transaction needs to fizzle to a no-op
         final DataTreeCandidate candidate = dataTree.prepare(modification);
-        assertEquals(YangInstanceIdentifier.empty(), candidate.getRootPath());
+        assertEquals(YangInstanceIdentifier.of(), candidate.getRootPath());
         final DataTreeCandidateNode node = candidate.getRootNode();
         assertEquals(ModificationType.UNMODIFIED, node.getModificationType());
 
index 6e3576f549d382bab4aec9a704814668d9f54b26..ba33cc44f64b02783767b560bf55948d63a8a4cf 100644 (file)
@@ -99,8 +99,8 @@ public class OrderedListTest {
                 .withChild(createChildOrderedListEntry("chkval1", "chlfval1"))
                 .withChild(createChildOrderedListEntry("chkval2", "chlfval2")).build();
 
-        YangInstanceIdentifier path2 = YangInstanceIdentifier.of(parentContainer).node(childContainer)
-                .node(parentOrderedList).node(createParentOrderedListEntryPath("pkval2")).node(childOrderedList);
+        YangInstanceIdentifier path2 = YangInstanceIdentifier.of(parentContainer, childContainer, parentOrderedList)
+            .node(createParentOrderedListEntryPath("pkval2")).node(childOrderedList);
 
         treeModification.write(path2, childOrderedListNode);
         treeModification.ready();
index 84313a3ac2e6132855f36633183e7d9f4c992c64..9f6d61bd8873575303f5e0939b1b258d313061c9 100644 (file)
@@ -42,7 +42,7 @@ public final class StructuralApplyModificationTest extends AbstractTestModelTest
 
         // Prepare root
         final YangInstanceIdentifier.NodeIdentifier rootContainerId = getNId(TestModel.TEST_QNAME);
-        addListEntryModification.write(YangInstanceIdentifier.create(rootContainerId),
+        addListEntryModification.write(YangInstanceIdentifier.of(rootContainerId),
             Builders.containerBuilder().withNodeIdentifier(rootContainerId).build());
 
         final NodeIdentifierWithPredicates outerListEntryId = NodeIdentifierWithPredicates.of(
@@ -50,7 +50,7 @@ public final class StructuralApplyModificationTest extends AbstractTestModelTest
 
         // Write list entry (MapEntryNode) without creating list parent (MapNode)
         final MapEntryNode outerListEntry = Builders.mapEntryBuilder().withNodeIdentifier(outerListEntryId).build();
-        final YangInstanceIdentifier outerListParentPath = YangInstanceIdentifier.create(getNId(TestModel.TEST_QNAME),
+        final YangInstanceIdentifier outerListParentPath = YangInstanceIdentifier.of(getNId(TestModel.TEST_QNAME),
             getNId(TestModel.OUTER_LIST_QNAME));
         final YangInstanceIdentifier outerListEntryPath = outerListParentPath.node(outerListEntryId);
         addListEntryModification.write(outerListEntryPath, outerListEntry);
@@ -79,10 +79,10 @@ public final class StructuralApplyModificationTest extends AbstractTestModelTest
 
         // Prepare root container
         final YangInstanceIdentifier.NodeIdentifier rootContainerId = getNId(TestModel.TEST_QNAME);
-        addListEntryModification.write(YangInstanceIdentifier.create(rootContainerId),
+        addListEntryModification.write(YangInstanceIdentifier.of(rootContainerId),
             Builders.containerBuilder().withNodeIdentifier(rootContainerId).build());
 
-        final YangInstanceIdentifier outerListParentPath = YangInstanceIdentifier.create(getNId(TestModel.TEST_QNAME),
+        final YangInstanceIdentifier outerListParentPath = YangInstanceIdentifier.of(getNId(TestModel.TEST_QNAME),
             getNId(TestModel.OUTER_LIST_QNAME));
         addListEntryModification.merge(outerListParentPath, ImmutableNodes.mapNode(TestModel.OUTER_LIST_QNAME));
 
@@ -95,7 +95,7 @@ public final class StructuralApplyModificationTest extends AbstractTestModelTest
         final DataTreeModification addListEntryModification = inMemoryDataTree.takeSnapshot().newModification();
 
         final YangInstanceIdentifier.NodeIdentifier rootContainerId = getNId(TestModel.NON_PRESENCE_QNAME);
-        final YangInstanceIdentifier path = YangInstanceIdentifier.create(rootContainerId);
+        final YangInstanceIdentifier path = YangInstanceIdentifier.of(rootContainerId);
         addListEntryModification.write(path, Builders.containerBuilder().withNodeIdentifier(rootContainerId).build());
 
         addListEntryModification.ready();
index ce200a42fac56c489134c049e645f100aef4987f..20d8591f626aeb63c4de615580b51e6f60821d4f 100644 (file)
@@ -64,7 +64,7 @@ public class YT1104Test {
 
     private void writeChoice(final DataContainerChild child) throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(FOO), choiceBuilder().withNodeIdentifier(FOO).withChild(child).build());
+        mod.write(YangInstanceIdentifier.of(FOO), choiceBuilder().withNodeIdentifier(FOO).withChild(child).build());
         mod.ready();
         dataTree.validate(mod);
         dataTree.commit(dataTree.prepare(mod));
index e9018c59979caffb7aacadd4c0efb5b57f358ba8..375de0fce77a89d413f9111e0941544e90a029f4 100644 (file)
@@ -83,7 +83,7 @@ public class YT776Test {
     @Test
     public void testNoAttributes() {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.write(YangInstanceIdentifier.of(BOX), containerBuilder().withNodeIdentifier(BOX)
             .withChild(mapBuilder().withNodeIdentifier(OBJECT_LIST)
                 .addChild(mapEntryBuilder().withNodeIdentifier(OBJECT_ITEM)
                     .withChild(OBJECT_ID_LEAF)
@@ -166,14 +166,14 @@ public class YT776Test {
     @Test
     public void testEmptyAndMergeOne() throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.write(YangInstanceIdentifier.of(BOX), containerBuilder().withNodeIdentifier(BOX)
             .withChild(mapBuilder().withNodeIdentifier(OBJECT_LIST)
                 .addChild(mapEntryBuilder().withNodeIdentifier(OBJECT_ITEM)
                     .withChild(OBJECT_ID_LEAF)
                     .build())
                 .build())
             .build());
-        mod.merge(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.merge(YangInstanceIdentifier.of(BOX), containerBuilder().withNodeIdentifier(BOX)
             .withChild(mapBuilder().withNodeIdentifier(OBJECT_LIST)
                 .addChild(mapEntryBuilder().withNodeIdentifier(OBJECT_ITEM)
                     .withChild(OBJECT_ID_LEAF)
@@ -190,14 +190,14 @@ public class YT776Test {
     @Test
     public void testEmptyAndMergeOneWithListTouched() throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.write(YangInstanceIdentifier.of(BOX), containerBuilder().withNodeIdentifier(BOX)
             .withChild(mapBuilder().withNodeIdentifier(OBJECT_LIST)
                 .addChild(mapEntryBuilder().withNodeIdentifier(OBJECT_ITEM)
                     .withChild(OBJECT_ID_LEAF)
                     .build())
                 .build())
             .build());
-        mod.merge(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.merge(YangInstanceIdentifier.of(BOX), containerBuilder().withNodeIdentifier(BOX)
             .withChild(mapBuilder().withNodeIdentifier(OBJECT_LIST)
                 .addChild(mapEntryBuilder().withNodeIdentifier(OBJECT_ITEM)
                     .withChild(OBJECT_ID_LEAF)
@@ -208,7 +208,7 @@ public class YT776Test {
                 .build())
             .build());
 
-        mod.delete(YangInstanceIdentifier.create(BOX, OBJECT_LIST, OBJECT_ITEM, NESTED_LIST, NESTED_ITEM));
+        mod.delete(YangInstanceIdentifier.of(BOX, OBJECT_LIST, OBJECT_ITEM, NESTED_LIST, NESTED_ITEM));
 
         commit(mod);
     }
@@ -217,7 +217,8 @@ public class YT776Test {
     public void testDisappearInChoice() throws DataValidationFailedException {
         DataTreeModification mod = dataTree.takeSnapshot().newModification();
         // Initialize choice with list
-        mod.write(YangInstanceIdentifier.create(BOX), containerBuilder().withNodeIdentifier(BOX)
+        mod.write(YangInstanceIdentifier.of(BOX), containerBuilder()
+            .withNodeIdentifier(BOX)
             .withChild(choiceBuilder().withNodeIdentifier(ANY_OF)
                 .withChild(mapBuilder().withNodeIdentifier(SOME_LIST_ID)
                     .withChild(mapEntryBuilder()
@@ -231,8 +232,8 @@ public class YT776Test {
 
         // Now delete the single item, causing the list to fizzle, while creating the alterinative case
         mod = dataTree.takeSnapshot().newModification();
-        mod.delete(YangInstanceIdentifier.create(BOX, ANY_OF, SOME_LIST_ID, SOME_LIST_ITEM));
-        mod.write(YangInstanceIdentifier.create(BOX, ANY_OF, SOME_LEAF_ID),
+        mod.delete(YangInstanceIdentifier.of(BOX, ANY_OF, SOME_LIST_ID, SOME_LIST_ITEM));
+        mod.write(YangInstanceIdentifier.of(BOX, ANY_OF, SOME_LEAF_ID),
             leafBuilder().withNodeIdentifier(SOME_LEAF_ID).withValue("foo").build());
 
         commit(mod);
@@ -240,13 +241,13 @@ public class YT776Test {
 
     private DataTreeModification write(final ContainerNode data) throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(BOX), data);
+        mod.write(YangInstanceIdentifier.of(BOX), data);
         return mod;
     }
 
     private void writeAndCommit(final ContainerNode data) throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.create(BOX), data);
+        mod.write(YangInstanceIdentifier.of(BOX), data);
         commit(mod);
     }
 
index c664b682b10c8deea21bf251eef80e161aa78ee0..17ac2779043de85e4d974f3d9aaaa2063cd7e5a6 100644 (file)
@@ -110,7 +110,7 @@ public class DataTreeCandidateNodesTest {
         doReturn(ModificationType.WRITE).when(mockedDataTreeCandidateNode).getModificationType();
         final NormalizedNode mockedNormalizedNode = mock(NormalizedNode.class);
         doReturn(Optional.of(mockedNormalizedNode)).when(mockedDataTreeCandidateNode).getDataAfter();
-        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.empty(),
+        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.of(),
             mockedDataTreeCandidateNode);
         verify(mockedCursor, times(1)).write(isNull(), any(NormalizedNode.class));
     }
@@ -121,7 +121,7 @@ public class DataTreeCandidateNodesTest {
         final DataTreeModificationCursor mockedCursor = mock(DataTreeModificationCursor.class);
 
         doReturn(ModificationType.DELETE).when(mockedDataTreeCandidateNode).getModificationType();
-        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.empty(),
+        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.of(),
             mockedDataTreeCandidateNode);
         verify(mockedCursor, times(1)).delete(isNull());
     }
@@ -137,7 +137,7 @@ public class DataTreeCandidateNodesTest {
         doReturn(ModificationType.DELETE).when(mockedChildNode1).getModificationType();
         doReturn(List.of(mockedChildNode1)).when(mockedDataTreeCandidateNode).getChildNodes();
 
-        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.empty(),
+        DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.of(),
             mockedDataTreeCandidateNode);
         verify(mockedCursor, times(1)).enter((PathArgument) isNull());
         verify(mockedCursor, times(1)).delete(isNull());
@@ -150,7 +150,7 @@ public class DataTreeCandidateNodesTest {
 
         doReturn(ModificationType.APPEARED).when(mockedDataTreeCandidateNode).getModificationType();
         final IllegalArgumentException ex = assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.empty(),
+            () -> DataTreeCandidateNodes.applyRootedNodeToCursor(mockedCursor, YangInstanceIdentifier.of(),
                 mockedDataTreeCandidateNode));
         assertThat(ex.getMessage(), containsString("Unsupported modification"));
     }
index 93dcf6d23b489919ddcc4a35bfcce3fbcef229c3..9c3d30087bb36ed0d1d43706683113dd9974a7a7 100644 (file)
@@ -44,10 +44,10 @@ public class DataTreeCandidatesTest {
     public void testNewDataTreeCandidate() {
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         final DataTreeCandidate dataTreeCandidate = DataTreeCandidates.newDataTreeCandidate(
-            YangInstanceIdentifier.empty(), mockedDataTreeCandidateNode);
+            YangInstanceIdentifier.of(), mockedDataTreeCandidateNode);
 
         assertThat(dataTreeCandidate, instanceOf(DefaultDataTreeCandidate.class));
-        assertSame(YangInstanceIdentifier.empty(), dataTreeCandidate.getRootPath());
+        assertSame(YangInstanceIdentifier.of(), dataTreeCandidate.getRootPath());
         assertEquals(mockedDataTreeCandidateNode, dataTreeCandidate.getRootNode());
         assertThat(dataTreeCandidate.toString(),
             containsString("DefaultDataTreeCandidate{rootPath=/, rootNode=Mock for DataTreeCandidateNode, hashCode: "));
@@ -57,10 +57,10 @@ public class DataTreeCandidatesTest {
     public void testFromNormalizedNode() {
         final NormalizedNode mockedNormalizedNode = mock(NormalizedNode.class);
         final DataTreeCandidate dataTreeCandidate = DataTreeCandidates.fromNormalizedNode(
-            YangInstanceIdentifier.empty(), mockedNormalizedNode);
+            YangInstanceIdentifier.of(), mockedNormalizedNode);
 
         assertThat(dataTreeCandidate, instanceOf(DefaultDataTreeCandidate.class));
-        assertSame(YangInstanceIdentifier.empty(), dataTreeCandidate.getRootPath());
+        assertSame(YangInstanceIdentifier.of(), dataTreeCandidate.getRootPath());
         assertThat(dataTreeCandidate.getRootNode(), instanceOf(NormalizedNodeDataTreeCandidateNode.class));
     }
 
@@ -81,17 +81,17 @@ public class DataTreeCandidatesTest {
         final DataTreeCandidate mockedDataTreeCandidate = mock(DataTreeCandidate.class);
         final CursorAwareDataTreeModification mockedModification = mock(CursorAwareDataTreeModification.class);
 
-        doReturn(YangInstanceIdentifier.create(FOO)).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of(FOO)).when(mockedDataTreeCandidate).getRootPath();
 
         final DataTreeModificationCursor mockedCursor = mock(DataTreeModificationCursor.class);
-        doReturn(Optional.of(mockedCursor)).when(mockedModification).openCursor(YangInstanceIdentifier.empty());
+        doReturn(Optional.of(mockedCursor)).when(mockedModification).openCursor(YangInstanceIdentifier.of());
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
 
         doReturn(ModificationType.DELETE).when(mockedDataTreeCandidateNode).getModificationType();
 
         DataTreeCandidates.applyToModification(mockedModification, mockedDataTreeCandidate);
-        verify(mockedModification, times(1)).openCursor(YangInstanceIdentifier.empty());
+        verify(mockedModification, times(1)).openCursor(YangInstanceIdentifier.of());
         verify(mockedCursor, times(1)).delete(FOO);
     }
 
@@ -100,7 +100,7 @@ public class DataTreeCandidatesTest {
         final DataTreeCandidate mockedDataTreeCandidate = mock(DataTreeCandidate.class);
         final CursorAwareDataTreeModification mockedModification = mock(CursorAwareDataTreeModification.class);
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
-        doReturn(YangInstanceIdentifier.empty()).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of()).when(mockedDataTreeCandidate).getRootPath();
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
         doReturn(ModificationType.DELETE).when(mockedDataTreeCandidateNode).getModificationType();
 
@@ -116,12 +116,12 @@ public class DataTreeCandidatesTest {
 
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
-        doReturn(YangInstanceIdentifier.empty()).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of()).when(mockedDataTreeCandidate).getRootPath();
 
         doReturn(ModificationType.DELETE).when(mockedDataTreeCandidateNode).getModificationType();
 
         DataTreeCandidates.applyToModification(mockedModification, mockedDataTreeCandidate);
-        verify(mockedModification, times(1)).delete(YangInstanceIdentifier.empty());
+        verify(mockedModification, times(1)).delete(YangInstanceIdentifier.of());
     }
 
     @Test
@@ -131,7 +131,7 @@ public class DataTreeCandidatesTest {
 
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
-        doReturn(YangInstanceIdentifier.empty()).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of()).when(mockedDataTreeCandidate).getRootPath();
         final NormalizedNode mockedNormalizedNode = mock(NormalizedNode.class);
         doReturn(Optional.of(mockedNormalizedNode)).when(mockedDataTreeCandidateNode).getDataAfter();
 
@@ -148,7 +148,7 @@ public class DataTreeCandidatesTest {
 
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
-        doReturn(YangInstanceIdentifier.empty()).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of()).when(mockedDataTreeCandidate).getRootPath();
 
         doReturn(ModificationType.SUBTREE_MODIFIED).when(mockedDataTreeCandidateNode).getModificationType();
 
@@ -185,7 +185,7 @@ public class DataTreeCandidatesTest {
 
         final DataTreeCandidateNode mockedDataTreeCandidateNode = mock(DataTreeCandidateNode.class);
         doReturn(mockedDataTreeCandidateNode).when(mockedDataTreeCandidate).getRootNode();
-        doReturn(YangInstanceIdentifier.empty()).when(mockedDataTreeCandidate).getRootPath();
+        doReturn(YangInstanceIdentifier.of()).when(mockedDataTreeCandidate).getRootPath();
 
         doReturn(ModificationType.APPEARED).when(mockedDataTreeCandidateNode).getModificationType();
 
index 4e3fbbe36823d97a77b2cfa80807373d631070bc..e5faf48df9299163fc04ed78fcddf53db36255bf 100644 (file)
@@ -161,7 +161,7 @@ public abstract class AbstractStringInstanceIdentifierCodec extends AbstractName
 
     @Override
     protected final YangInstanceIdentifier deserializeImpl(final String data) {
-        return YangInstanceIdentifier.create(
+        return YangInstanceIdentifier.of(
             new XpathStringParsingPathArgumentBuilder(this, requireNonNull(data)).build());
     }
 
index ffb5c13f6fb6e5cd8939c3208e60bfbd7241449c..6bb89651d390ab6dbea9b550679d00a2e20fb8ad 100644 (file)
@@ -40,8 +40,8 @@ class DataSchemaContextTreeTest {
     @Test
     void testCorrectInput() {
         assertTrue(CONTEXT.findChild(YangInstanceIdentifier.of(FOO)).isPresent());
-        assertTrue(CONTEXT.findChild(YangInstanceIdentifier.of(FOO).node(BAR)).isPresent());
-        assertTrue(CONTEXT.findChild(YangInstanceIdentifier.of(FOO).node(BAR).node(BAZ)).isPresent());
+        assertTrue(CONTEXT.findChild(YangInstanceIdentifier.of(FOOBAR)).isPresent());
+        assertTrue(CONTEXT.findChild(YangInstanceIdentifier.of(FOO, BAR, BAZ)).isPresent());
     }
 
     @Test
@@ -51,6 +51,6 @@ class DataSchemaContextTreeTest {
 
     @Test
     void testNestedBad() {
-        assertEquals(Optional.empty(), CONTEXT.findChild(YangInstanceIdentifier.of(BAR).node(BAZ)));
+        assertEquals(Optional.empty(), CONTEXT.findChild(YangInstanceIdentifier.of(BARBAZ)));
     }
 }
index c31668724722a7792f19d6204c5da6357df3951a..68789d39bf819e4ed740c87f755aacbd697219f7 100644 (file)
@@ -17,7 +17,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement;
@@ -99,12 +98,7 @@ class YT1412Test {
 
     @Test
     void testEnterChoicePath() {
-        final var result = CONTEXT.enterPath(YangInstanceIdentifier.create(
-            new NodeIdentifier(ONE),
-            new NodeIdentifier(TWO),
-            new NodeIdentifier(THREE),
-            new NodeIdentifier(FOUR)))
-            .orElseThrow();
+        final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, TWO, THREE, FOUR)).orElseThrow();
 
         assertInstanceOf(LeafContextNode.class, result.node());
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, FOUR, FOUR), result.stack().toSchemaNodeIdentifier());
@@ -112,11 +106,7 @@ class YT1412Test {
 
     @Test
     void testEnterAugmentPath() {
-        final var result = CONTEXT.enterPath(YangInstanceIdentifier.create(
-            new NodeIdentifier(ONE),
-            new NodeIdentifier(FIVE),
-            new NodeIdentifier(FIVE)))
-            .orElseThrow();
+        final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, FIVE, FIVE)).orElseThrow();
 
         assertInstanceOf(UnkeyedListItemContextNode.class, result.node());
         assertEquals(Absolute.of(ONE, FIVE), result.stack().toSchemaNodeIdentifier());
@@ -124,12 +114,7 @@ class YT1412Test {
 
     @Test
     void testEnterAugmentChoicePath() {
-        final var result = CONTEXT.enterPath(YangInstanceIdentifier.create(
-            new NodeIdentifier(ONE),
-            new NodeIdentifier(TWO),
-            new NodeIdentifier(THREE),
-            new NodeIdentifier(SIX)))
-            .orElseThrow();
+        final var result = CONTEXT.enterPath(YangInstanceIdentifier.of(ONE, TWO, THREE, SIX)).orElseThrow();
 
         assertInstanceOf(LeafContextNode.class, result.node());
         assertEquals(Absolute.of(ONE, TWO, THREE, THREE, SIX, SIX), result.stack().toSchemaNodeIdentifier());