Migrate users of Builders/ImmutableNodes 64/109764/4
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 14 Jan 2024 10:15:30 +0000 (11:15 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 14 Jan 2024 15:49:35 +0000 (16:49 +0100)
Update references to use data.spi.node.ImmutableNodes.

Change-Id: Ide361652366ef8dc5ade34bb513219ce7cf448f3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
39 files changed:
binding/mdsal-binding-dom-adapter/src/main/java/module-info.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcInvocationStrategy.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/query/SimpleQueryExecutor.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractActionAdapterTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/CurrentAdapterSerializerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedContainerNodeTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/Mdsal298Test.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/Mdsal739Test.java
binding/mdsal-binding-dom-codec/pom.xml
binding/mdsal-binding-dom-codec/src/main/java/module-info.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractDataObjectCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AnydataCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AnyxmlCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerStreamer.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LeafNodeCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/StructuralContainerCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ValueNodeCodecContext.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/ActionSerializeDeserializeTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/AnydataLeafTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/AnyxmlLeafTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/Mdsal552Test.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/Mdsal668Test.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NormalizedNodeSerializeDeserializeTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NotificationProcessingTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeWithMultipleIdentityrefsTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeChangeListenerTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouterTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMTransactionChainTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/RoutedDOMRpcRoutingTableEntryTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/TestUtils.java
dom/mdsal-dom-inmemory-datastore-benchmark/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/benchmark/AbstractInMemoryWriteTransactionBenchmark.java
replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SinkRequestHandler.java
replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SinkSingletonService.java
replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceRequestHandler.java
replicate/mdsal-replicate-netty/src/test/java/org/opendaylight/mdsal/replicate/netty/IntegrationTest.java

index 7efb5b51e4c6e693746e332e402e540094682d20..d9644bd43841bd2567c3a6bc34bef396fc78ff19 100644 (file)
@@ -36,6 +36,7 @@ module org.opendaylight.mdsal.binding.dom.adapter {
     requires org.opendaylight.mdsal.dom.spi;
     requires org.opendaylight.yangtools.concepts;
     requires org.opendaylight.yangtools.yang.common;
+    requires org.opendaylight.yangtools.yang.data.spi;
     requires org.opendaylight.yangtools.yang.model.api;
     requires org.slf4j;
     requires failureaccess;
index 57280bb44b69b7eed4167a8e5de1e05db6874e02..c58923156917d7ce13fd0be6f4b85f11001c1b32 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 sealed class RpcInvocationStrategy {
index df281d07b226e6dd5b22af3fede1dd7b112af9ef..3e8ea0043408789dc47c4a5a868a5c3b700a7524 100644 (file)
@@ -28,7 +28,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 @Beta
@@ -51,8 +51,8 @@ public final class SimpleQueryExecutor implements QueryExecutor {
     }
 
     public static final class Builder {
-        private final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> rootBuilder = Builders.containerBuilder()
-            .withNodeIdentifier(new NodeIdentifier(SchemaContext.NAME));
+        private final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> rootBuilder =
+            ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(SchemaContext.NAME));
         private final BindingCodecTree codec;
 
         Builder(final BindingCodecTree codec) {
index 0d648c30f4a0574c02c6ee507fcba88f4801b0a0..64000a125ccc7d114fc755f011c78271a454c6ca 100644 (file)
@@ -9,8 +9,6 @@ package org.opendaylight.mdsal.binding.dom.adapter;
 
 import static org.opendaylight.yangtools.yang.common.YangConstants.operationInputQName;
 import static org.opendaylight.yangtools.yang.common.YangConstants.operationOutputQName;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.containerBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.leafBuilder;
 
 import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Cont;
 import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Lstio;
@@ -27,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.lstio.FooioOutputBuild
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public abstract class AbstractActionAdapterTest extends AbstractAdapterTest  {
@@ -35,10 +34,13 @@ public abstract class AbstractActionAdapterTest extends AbstractAdapterTest  {
     protected static final NodeIdentifier FOO_INPUT = new NodeIdentifier(operationInputQName(Foo.QNAME.getModule()));
     protected static final NodeIdentifier FOO_OUTPUT = new NodeIdentifier(operationOutputQName(Foo.QNAME.getModule()));
     protected static final NodeIdentifier FOO_XYZZY = new NodeIdentifier(QName.create(Foo.QNAME, "xyzzy"));
-    protected static final ContainerNode DOM_FOO_INPUT = containerBuilder().withNodeIdentifier(FOO_INPUT)
-            .withChild(leafBuilder().withNodeIdentifier(FOO_XYZZY).withValue("xyzzy").build())
-            .build();
-    protected static final ContainerNode DOM_FOO_OUTPUT = containerBuilder().withNodeIdentifier(FOO_OUTPUT).build();
+    protected static final ContainerNode DOM_FOO_INPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOO_INPUT)
+        .withChild(ImmutableNodes.leafNode(FOO_XYZZY, "xyzzy"))
+        .build();
+    protected static final ContainerNode DOM_FOO_OUTPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOO_OUTPUT)
+        .build();
     protected static final FooInput BINDING_FOO_INPUT = new FooInputBuilder().setXyzzy("xyzzy").build();
     protected static final FooOutput BINDING_FOO_OUTPUT = new FooOutputBuilder().build();
     protected static final FooioInput BINDING_LSTIO_INPUT = new FooioInputBuilder().build();
index 5db62c0fca122bccf7c7d337efe1a4cfb33b4824..88a0566ac957831111edfe1d13874e1f3c24fffd 100644 (file)
@@ -31,7 +31,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
@@ -98,20 +98,19 @@ public class CurrentAdapterSerializerTest {
     }
 
     private static ContainerNode prepareData(final EffectiveModelContext schemaCtx, final Object value) {
-        return Builders.containerBuilder()
+        return ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(QName.create("urn:test", "2017-01-01", "cont")))
-            .withChild(Builders.leafBuilder()
-                .withNodeIdentifier(new NodeIdentifier(QName.create("urn:test", "2017-01-01", "vlan-id")))
-                .withValue(value).build())
+            .withChild(ImmutableNodes.leafNode(QName.create("urn:test", "2017-01-01", "vlan-id"), value))
             .build();
     }
 
     private static Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode(final NormalizedNode data,
             final EffectiveModelContext schemaCtx) {
-        final CurrentAdapterSerializer codec = new CurrentAdapterSerializer(
-                ServiceLoader.load(BindingDOMCodecFactory.class).findFirst().orElseThrow().createBindingDOMCodec(
-                        new DefaultBindingRuntimeContext(new DefaultBindingRuntimeGenerator()
-                                .generateTypeMapping(schemaCtx), TestingModuleInfoSnapshot.INSTANCE)));
+        final var codec = new CurrentAdapterSerializer(
+            ServiceLoader.load(BindingDOMCodecFactory.class).findFirst().orElseThrow()
+                .createBindingDOMCodec(new DefaultBindingRuntimeContext(
+                    new DefaultBindingRuntimeGenerator().generateTypeMapping(schemaCtx),
+                    TestingModuleInfoSnapshot.INSTANCE)));
 
         final YangInstanceIdentifier path = YangInstanceIdentifier.of(NodeIdentifier.create(QName.create(
             "urn:test", "2017-01-01", "cont")));
index eb15be60620de807ce41cb5e0664fd0eb8a22ab4..55e5e8ee51844531dda6b1918c893763165cb013 100644 (file)
@@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class LazySerializedContainerNodeTest {
     @Test
index 956d09756e65f2c23d2aab60ac2f88d20035c4e1..258eacee00aceeca46e4d5b68d556273b0192afa 100644 (file)
@@ -55,8 +55,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class Mdsal298Test extends AbstractDataBrokerTest {
     private static final InstanceIdentifier<Container> CONTAINER = InstanceIdentifier.create(Container.class);
@@ -93,17 +92,17 @@ public class Mdsal298Test extends AbstractDataBrokerTest {
 
         final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
         domTx.put(CONFIGURATION, YangInstanceIdentifier.of(CONTAINER_NID).node(Keyed.QNAME),
-            Builders.orderedMapBuilder()
-            .withNodeIdentifier(new NodeIdentifier(Keyed.QNAME))
-            .addChild(Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "foo"))
-                .addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo"))
-                .build())
-            .addChild(Builders.mapEntryBuilder()
-                .withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "bar"))
-                .addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar"))
-                .build())
-            .build());
+            ImmutableNodes.newUserMapBuilder()
+                .withNodeIdentifier(new NodeIdentifier(Keyed.QNAME))
+                .addChild(ImmutableNodes.newMapEntryBuilder()
+                    .withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "foo"))
+                    .addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo"))
+                    .build())
+                .addChild(ImmutableNodes.newMapEntryBuilder()
+                    .withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "bar"))
+                    .addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar"))
+                    .build())
+                .build());
         domTx.commit().get();
 
         final var captor = ArgumentCaptor.forClass(Collection.class);
@@ -148,17 +147,17 @@ public class Mdsal298Test extends AbstractDataBrokerTest {
 
         final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
         domTx.put(CONFIGURATION, YangInstanceIdentifier.of(CONTAINER_NID).node(Unkeyed.QNAME),
-            Builders.unkeyedListBuilder()
-            .withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME))
-            .withChild(Builders.unkeyedListEntryBuilder()
-                .withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME))
-                .addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo"))
-                .build())
-            .withChild(Builders.unkeyedListEntryBuilder()
+            ImmutableNodes.newUnkeyedListBuilder()
                 .withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME))
-                .addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar"))
-                .build())
-            .build());
+                .withChild(ImmutableNodes.newUnkeyedListEntryBuilder()
+                    .withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME))
+                    .addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo"))
+                    .build())
+                .withChild(ImmutableNodes.newUnkeyedListEntryBuilder()
+                    .withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME))
+                    .addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar"))
+                    .build())
+                .build());
         domTx.commit().get();
 
         final var captor = ArgumentCaptor.forClass(Collection.class);
@@ -283,13 +282,13 @@ public class Mdsal298Test extends AbstractDataBrokerTest {
 
         final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
         domTx.put(CONFIGURATION, YangInstanceIdentifier.of(CHOICE_CONTAINER_NID).node(Foo.QNAME),
-            Builders.choiceBuilder()
-            .withNodeIdentifier(new NodeIdentifier(Foo.QNAME))
-            .withChild(Builders.leafSetBuilder()
-                .withNodeIdentifier(new NodeIdentifier(QName.create(Foo.QNAME, "unaddressable")))
-                .withChildValue("foo")
-                .build())
-            .build());
+            ImmutableNodes.newChoiceBuilder()
+                .withNodeIdentifier(new NodeIdentifier(Foo.QNAME))
+                .withChild(ImmutableNodes.newSystemLeafSetBuilder()
+                    .withNodeIdentifier(new NodeIdentifier(QName.create(Foo.QNAME, "unaddressable")))
+                    .withChildValue("foo")
+                    .build())
+                .build());
         domTx.commit().get();
 
         final var captor = ArgumentCaptor.forClass(Collection.class);
@@ -320,7 +319,7 @@ public class Mdsal298Test extends AbstractDataBrokerTest {
 
         final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
         domTx.put(CONFIGURATION, YangInstanceIdentifier.of(new NodeIdentifier(qname)),
-            ImmutableNodes.containerNode(qname));
+            ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(qname)).build());
         domTx.commit().get();
 
         final var captor = ArgumentCaptor.forClass(Collection.class);
@@ -352,10 +351,9 @@ public class Mdsal298Test extends AbstractDataBrokerTest {
         getDataBroker().registerDataTreeChangeListener(CHOICE_CONTAINER_TID, listener);
 
         final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
-        domTx.put(CONFIGURATION, YangInstanceIdentifier.of(CHOICE_CONTAINER_NID),
-            Builders.containerBuilder()
+        domTx.put(CONFIGURATION, YangInstanceIdentifier.of(CHOICE_CONTAINER_NID), ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(CHOICE_CONTAINER_NID)
-            .withChild(Builders.choiceBuilder().withNodeIdentifier(CHOICE_NID).build())
+            .withChild(ImmutableNodes.newChoiceBuilder().withNodeIdentifier(CHOICE_NID).build())
             .build());
         domTx.commit().get();
 
index d52bd826cfb7371e576c1a4fd1756418acedb3a8..9039b9bf2d0f50394419e71e543a65072fb3e99a 100644 (file)
@@ -33,7 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 @ExtendWith(MockitoExtension.class)
 class Mdsal739Test {
index 3ebcf962c2d37812f6c8cce6a37d48a634860bd8..a4b1e44ac3cdcf099e0087d29076bb47b016b98c 100644 (file)
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-data-impl</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-data-spi</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-model-api</artifactId>
index 2fe0b783d0235874834d6dc7bc162a53798d9c76..3028487dd3a452271da7a819ae1d68513f9904d3 100644 (file)
@@ -36,6 +36,7 @@ module org.opendaylight.mdsal.binding.dom.codec.impl {
     requires org.opendaylight.yangtools.yang.binding;
     requires org.opendaylight.yangtools.yang.common;
     requires org.opendaylight.yangtools.yang.data.api;
+    requires org.opendaylight.yangtools.yang.data.spi;
     requires org.opendaylight.yangtools.yang.data.impl;
     requires org.opendaylight.yangtools.yang.data.util;
     requires org.opendaylight.yangtools.yang.model.api;
index 83e9b0f721511dafc0b1aa28e148adba2ddac910..d48cd68f70b47a760b1ad494a9a3057f4b6491b7 100644 (file)
@@ -58,6 +58,7 @@ public abstract sealed class AbstractDataObjectCodecContext<D extends DataObject
     }
 
     @Override
+    @Deprecated(since = "13.0.0", forRemoval = true)
     public final WithStatus getSchema() {
         // FIXME: Bad cast, we should be returning an EffectiveStatement perhaps?
         return (WithStatus) prototype().runtimeType().statement();
index 397e6e3ca30c14ac0aae15889b329d601e66218c..0588658822490404fd3005ab42df7d606ef856be 100644 (file)
@@ -12,7 +12,7 @@ import org.opendaylight.mdsal.binding.loader.BindingClassLoader;
 import org.opendaylight.yangtools.yang.binding.OpaqueData;
 import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 
 final class AnydataCodecContext<T extends OpaqueObject<T>> extends AbstractOpaqueCodecContext<T> {
@@ -27,7 +27,7 @@ final class AnydataCodecContext<T extends OpaqueObject<T>> extends AbstractOpaqu
     }
 
     private <M> @NonNull AnydataNode<M> buildAnydata(final OpaqueData<M> opaqueData) {
-        return Builders.anydataBuilder(opaqueData.getObjectModel())
+        return ImmutableNodes.newAnydataBuilder(opaqueData.getObjectModel())
             .withNodeIdentifier(getDomPathArgument())
             .withValue(opaqueData.getData())
             .build();
index b762b0f9ad7c9edfd89174e40be26a83a854f5c0..d622c5b1655a9340689fd052944a4fc679609718 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ForeignDataNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 
 final class AnyxmlCodecContext<T extends OpaqueObject<T>> extends AbstractOpaqueCodecContext<T> {
@@ -27,9 +27,9 @@ final class AnyxmlCodecContext<T extends OpaqueObject<T>> extends AbstractOpaque
 
     @Override
     AnyxmlNode<?> serializedData(final OpaqueData<?> opaqueData) {
-        final Class<?> model = opaqueData.getObjectModel();
+        final var model = opaqueData.getObjectModel();
         verify(DOMSource.class.isAssignableFrom(model), "Cannot just yet support object model %s", model);
-        return Builders.anyXmlBuilder()
+        return ImmutableNodes.newAnyxmlBuilder(DOMSource.class)
             .withNodeIdentifier(getDomPathArgument())
             .withValue((DOMSource) opaqueData.getData())
             .build();
index 6fcecaafb50d8bbf77ded8d923105b2404dd8ddc..07c2cc25b42de0d361b4ab1e8deb93ca61225702 100644 (file)
@@ -201,6 +201,7 @@ final class ChoiceCodecContext<T extends ChoiceIn<?>>
     }
 
     @Override
+    @Deprecated(since = "13.0.0", forRemoval = true)
     public WithStatus getSchema() {
         // FIXME: Bad cast, we should be returning an EffectiveStatement perhaps?
         return (WithStatus) prototype().runtimeType().statement();
index 86049f1011b09f1dd7fc5b6883d83007298b3bc2..031c4e11cb393fcc62134d362501d1481f0d373b 100644 (file)
@@ -80,7 +80,7 @@ public abstract class DataContainerStreamer<T extends DataContainer> {
             final DataContainerSerializer caseStreamer = registry.getSerializer(caseClass.asSubclass(DataObject.class));
             if (caseStreamer != null) {
                 if (tryCache(writer, (DataObject) value)) {
-                    caseStreamer.serialize((DataObject) value, writer);
+                    caseStreamer.serialize(value, writer);
                 }
             } else {
                 LOG.warn("No serializer for case {} is available in registry {}", caseClass, registry);
index d99da25ddc04f21dd914376af14c9089ea26dcc5..5341286a7e1461e427dc91e91a09c8b1ee0a51e9 100644 (file)
@@ -44,7 +44,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -73,7 +73,7 @@ public abstract sealed class DataObjectCodecContext<D extends DataObject, T exte
         }
     }
 
-    private final ImmutableMap<Class<?>, AugmentationCodecPrototype> augmentToPrototype;
+    private final ImmutableMap<Class<?>, AugmentationCodecPrototype<?>> augmentToPrototype;
     private final ImmutableMap<NodeIdentifier, Class<?>> yangToAugmentClass;
     private final @NonNull Class<? extends CodecDataObject<?>> generatedClass;
     private final MethodHandle proxyConstructor;
@@ -176,12 +176,12 @@ public abstract sealed class DataObjectCodecContext<D extends DataObject, T exte
         return child;
     }
 
-    private @Nullable AugmentationCodecPrototype getAugmentationProtoByClass(final @NonNull Class<?> augmClass) {
+    private @Nullable AugmentationCodecPrototype<?> getAugmentationProtoByClass(final @NonNull Class<?> augmClass) {
         final var childProto = augmentToPrototype.get(augmClass);
         return childProto != null ? childProto : mismatchedAugmentationByClass(augmClass);
     }
 
-    private @Nullable AugmentationCodecPrototype mismatchedAugmentationByClass(final @NonNull Class<?> childClass) {
+    private @Nullable AugmentationCodecPrototype<?> mismatchedAugmentationByClass(final @NonNull Class<?> childClass) {
         /*
          * It is potentially mismatched valid augmentation - we look up equivalent augmentation using reflection
          * and walk all stream child and compare augmentations classes if they are equivalent. When we find a match
@@ -281,12 +281,12 @@ public abstract sealed class DataObjectCodecContext<D extends DataObject, T exte
          * Due to augmentation fields are at same level as direct children the data of each augmentation needs to be
          * aggregated into own container node, then only deserialized using associated prototype.
          */
-        final var builders = new HashMap<Class<?>, DataContainerNodeBuilder>();
+        final var builders = new HashMap<Class<?>, DataContainerNodeBuilder<?, ?>>();
         for (var childValue : data.body()) {
             final var bindingClass = yangToAugmentClass.get(childValue.name());
             if (bindingClass != null) {
                 builders.computeIfAbsent(bindingClass,
-                    key -> Builders.containerBuilder()
+                    key -> ImmutableNodes.newContainerBuilder()
                         .withNodeIdentifier(new NodeIdentifier(data.name().getNodeType())))
                         .addChild(childValue);
             }
index bb3250c87e31755f475521d9356a0d13c3ff861e..b73c3cd7cfbb2d8f14117a8dfbe882b3c3aab3a8 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.yangtools.yang.binding.TypeObject;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
index ceddb77cda71d5d85525a9dff20525093085c560..16426dbf6c11e2d3fe43e334dedb5a8247d49853 100644 (file)
@@ -14,7 +14,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.runtime.api.ContainerRuntimeType;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.NodeStep;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 /**
  * A {@link ContainerLikeCodecContext} specialized for {@code container}s which do not have a presence statement.
@@ -51,7 +51,7 @@ final class StructuralContainerCodecContext<D extends DataObject> extends Contai
 
     private @NonNull D loadEmptyObject() {
         final var local = createBindingProxy(
-            Builders.containerBuilder().withNodeIdentifier(getDomPathArgument()).build());
+            ImmutableNodes.newContainerBuilder().withNodeIdentifier(getDomPathArgument()).build());
         final var witness = (D) EMPTY_OBJECT.compareAndExchangeRelease(this, null, local);
         return witness != null ? witness : local;
     }
index 65c2f512ace729d8664f6fd77662c40d35ccbaa0..e1f55db44142e4e6767c894e2e539600e2ba1b28 100644 (file)
@@ -64,6 +64,7 @@ abstract sealed class ValueNodeCodecContext extends CodecContext implements Code
     abstract ValueCodec<Object, Object> getValueCodec();
 
     @Override
+    @Deprecated(since = "13.0.0", forRemoval = true)
     public final DataSchemaNode getSchema() {
         return dataSchema;
     }
index 0ef465e410d31ad70f7af2647749775852da6180..8cbaa420aa94eb1192d4d6221d33bb45e3fff0e1 100644 (file)
@@ -10,9 +10,8 @@ package org.opendaylight.mdsal.binding.dom.codec.impl;
 import static org.junit.Assert.assertEquals;
 import static org.opendaylight.yangtools.yang.common.YangConstants.operationInputQName;
 import static org.opendaylight.yangtools.yang.common.YangConstants.operationOutputQName;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.containerBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.leafBuilder;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.cont.Foo;
 import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.cont.FooInput;
@@ -32,27 +31,34 @@ import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.lstio.FooioOutputBuild
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class ActionSerializeDeserializeTest extends AbstractBindingCodecTest {
     private static final NodeIdentifier FOO_INPUT = NodeIdentifier.create(operationInputQName(Foo.QNAME.getModule()));
     private static final NodeIdentifier FOO_OUTPUT = NodeIdentifier.create(operationOutputQName(Foo.QNAME.getModule()));
     private static final NodeIdentifier FOO_XYZZY = NodeIdentifier.create(QName.create(Foo.QNAME, "xyzzy"));
-    private static final ContainerNode DOM_FOO_INPUT = containerBuilder().withNodeIdentifier(FOO_INPUT)
-            .withChild(leafBuilder().withNodeIdentifier(FOO_XYZZY).withValue("xyzzy").build())
-            .build();
-    private static final ContainerNode DOM_FOO_OUTPUT = containerBuilder().withNodeIdentifier(FOO_OUTPUT).build();
-    private static final FooInput BINDING_FOO_INPUT = new FooInputBuilder().setXyzzy("xyzzy").build();
-    private static final FooOutput BINDING_FOO_OUTPUT = new FooOutputBuilder().build();
+    private static final @NonNull ContainerNode DOM_FOO_INPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOO_INPUT)
+        .withChild(ImmutableNodes.leafNode(FOO_XYZZY, "xyzzy"))
+        .build();
+    private static final @NonNull ContainerNode DOM_FOO_OUTPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOO_OUTPUT)
+        .build();
+    private static final @NonNull FooInput BINDING_FOO_INPUT = new FooInputBuilder().setXyzzy("xyzzy").build();
+    private static final @NonNull FooOutput BINDING_FOO_OUTPUT = new FooOutputBuilder().build();
 
     private static final NodeIdentifier BAR_INPUT = NodeIdentifier.create(operationInputQName(Foo.QNAME.getModule()));
     private static final NodeIdentifier BAR_OUTPUT = NodeIdentifier.create(operationOutputQName(Foo.QNAME.getModule()));
     private static final NodeIdentifier BAR_XYZZY = NodeIdentifier.create(QName.create(Bar.QNAME, "xyzzy"));
-    private static final ContainerNode DOM_BAR_INPUT = containerBuilder().withNodeIdentifier(BAR_INPUT).build();
-    private static final ContainerNode DOM_BAR_OUTPUT = containerBuilder().withNodeIdentifier(BAR_OUTPUT)
-            .withChild(leafBuilder().withNodeIdentifier(BAR_XYZZY).withValue("xyzzy").build())
-            .build();
-    private static final BarInput BINDING_BAR_INPUT = new BarInputBuilder().build();
-    private static final BarOutput BINDING_BAR_OUTPUT = new BarOutputBuilder().setXyzzy("xyzzy").build();
+    private static final ContainerNode DOM_BAR_INPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(BAR_INPUT)
+        .build();
+    private static final ContainerNode DOM_BAR_OUTPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(BAR_OUTPUT)
+        .withChild(ImmutableNodes.leafNode(BAR_XYZZY, "xyzzy"))
+        .build();
+    private static final @NonNull BarInput BINDING_BAR_INPUT = new BarInputBuilder().build();
+    private static final @NonNull BarOutput BINDING_BAR_OUTPUT = new BarOutputBuilder().setXyzzy("xyzzy").build();
 
     private static final NodeIdentifier FOOIO_INPUT = NodeIdentifier.create(operationInputQName(Fooio.QNAME
             .getModule()));
@@ -60,12 +66,16 @@ public class ActionSerializeDeserializeTest extends AbstractBindingCodecTest {
             .getModule()));
     private static final NodeIdentifier FOOIO_I = NodeIdentifier.create(QName.create(Fooio.QNAME, "fooi"));
     private static final NodeIdentifier FOOIO_O = NodeIdentifier.create(QName.create(Fooio.QNAME, "fooo"));
-    private static final ContainerNode DOM_FOOIO_INPUT = containerBuilder().withNodeIdentifier(FOOIO_INPUT).withChild(
-            leafBuilder().withNodeIdentifier(FOOIO_I).withValue("ifoo").build()).build();
-    private static final ContainerNode DOM_FOOIO_OUTPUT = containerBuilder().withNodeIdentifier(FOOIO_OUTPUT).withChild(
-            leafBuilder().withNodeIdentifier(FOOIO_O).withValue("ofoo").build()).build();
-    private static final FooioInput BINDING_FOOIO_INPUT = new FooioInputBuilder().setFooi("ifoo").build();
-    private static final FooioOutput BINDING_FOOIO_OUTPUT = new FooioOutputBuilder().setFooo("ofoo").build();
+    private static final @NonNull ContainerNode DOM_FOOIO_INPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOOIO_INPUT)
+        .withChild(ImmutableNodes.leafNode(FOOIO_I, "ifoo"))
+        .build();
+    private static final @NonNull ContainerNode DOM_FOOIO_OUTPUT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(FOOIO_OUTPUT)
+        .withChild(ImmutableNodes.leafNode(FOOIO_O, "ofoo"))
+        .build();
+    private static final @NonNull FooioInput BINDING_FOOIO_INPUT = new FooioInputBuilder().setFooi("ifoo").build();
+    private static final @NonNull FooioOutput BINDING_FOOIO_OUTPUT = new FooioOutputBuilder().setFooo("ofoo").build();
 
     @Test
     public void testSerialization() {
index 33e4b31e551e29bd7ca131b3c44c881cec3a304a..39114e4549afa28da68bc28a22b5e257e6791148 100644 (file)
@@ -31,7 +31,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -49,13 +49,13 @@ public class AnydataLeafTest extends AbstractBindingCodecTest {
         final Element element = doc.createElement("foo");
         domSource = new DOMSource(element);
 
-        cont = Builders.containerBuilder()
-                .withNodeIdentifier(CONT_NODE_ID)
-                .withChild(Builders.anydataBuilder(DOMSource.class)
-                    .withNodeIdentifier(new NodeIdentifier(ContAny.QNAME))
-                    .withValue(domSource)
-                    .build())
-                .build();
+        cont = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(CONT_NODE_ID)
+            .withChild(ImmutableNodes.newAnydataBuilder(DOMSource.class)
+                .withNodeIdentifier(new NodeIdentifier(ContAny.QNAME))
+                .withValue(domSource)
+                .build())
+            .build();
     }
 
     @Test
index ee221b0adf8d504edb016e6cc50ac490b082593f..4489e0a51ba995d4c4a5b12898b3c714f4cabba3 100644 (file)
@@ -31,7 +31,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -49,13 +49,13 @@ public class AnyxmlLeafTest extends AbstractBindingCodecTest {
         final Element element = doc.createElement("foo");
         domSource = new DOMSource(element);
 
-        cont = Builders.containerBuilder()
-                .withNodeIdentifier(CONT_NODE_ID)
-                .withChild(Builders.anyXmlBuilder()
-                    .withNodeIdentifier(new NodeIdentifier(ContAny.QNAME))
-                    .withValue(domSource)
-                    .build())
-                .build();
+        cont = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(CONT_NODE_ID)
+            .withChild(ImmutableNodes.newAnyxmlBuilder(DOMSource.class)
+                .withNodeIdentifier(new NodeIdentifier(ContAny.QNAME))
+                .withValue(domSource)
+                .build())
+            .build();
     }
 
     @Test
index 99c07a57834f0dacf7f653f3d5725093d5489c34..6b04c4962c4b5bf9841ce8efd67e93901a532f0e 100644 (file)
@@ -15,8 +15,7 @@ import org.opendaylight.yang.gen.v1.mdsal552.norev.RefTestOutput;
 import org.opendaylight.yang.gen.v1.mdsal552.norev.RefTestOutputBuilder;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class Mdsal552Test extends AbstractBindingCodecTest {
@@ -26,7 +25,7 @@ public class Mdsal552Test extends AbstractBindingCodecTest {
 
     @Test
     public void testLeafrefEnumerationToNormalized() {
-        assertEquals(Builders.containerBuilder()
+        assertEquals(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(RefTestOutput.QNAME))
             .withChild(ImmutableNodes.leafNode(OUTPUTREF, OutputA.DownTest.getName()))
             .build(),
@@ -36,7 +35,7 @@ public class Mdsal552Test extends AbstractBindingCodecTest {
     @Test
     public void testLeafrefEnumerationFromNormalized() {
         assertEquals(new RefTestOutputBuilder().setOutputref(OutputA.DownTest).build(),
-            codecContext.fromNormalizedNodeRpcData(OUTPUT_PATH, Builders.containerBuilder()
+            codecContext.fromNormalizedNodeRpcData(OUTPUT_PATH, ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(RefTestOutput.QNAME))
                 .withChild(ImmutableNodes.leafNode(OUTPUTREF, OutputA.DownTest.getName()))
                 .build()));
index a1cbdb2f3d1d874dcefd578bedf83d6c1264dbbc..29fb580845dacc24501d8dc7fbd03f52621639c8 100644 (file)
@@ -17,8 +17,7 @@ import org.opendaylight.yang.gen.v1.mdsal668.norev.bar.Bar;
 import org.opendaylight.yang.gen.v1.mdsal668.norev.bar.BarBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class Mdsal668Test extends AbstractBindingCodecTest {
     private static final NodeIdentifier FOO = new NodeIdentifier(Foo.QNAME);
@@ -26,17 +25,14 @@ public class Mdsal668Test extends AbstractBindingCodecTest {
 
     @Test
     public void testLeaflistLeafref() {
-        assertEquals(Builders.containerBuilder()
+        assertEquals(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(FOO)
-            .withChild(Builders.containerBuilder()
+            .withChild(ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(Bar.QNAME))
-                .withChild(Builders.leafSetBuilder()
+                .withChild(ImmutableNodes.newSystemLeafSetBuilder()
                     .withNodeIdentifier(new NodeIdentifier(Bar.QNAME))
-                    .withChild(Builders.leafSetEntryBuilder()
-                        // FIXME: MDSAL-670: these should get translated to YangInstanceIdentifier.of(FOO)
-                        .withNodeIdentifier(new NodeWithValue<>(Bar.QNAME, FOO_IID))
-                        .withValue(FOO_IID)
-                        .build())
+                    // FIXME: MDSAL-670: these should get translated to YangInstanceIdentifier.of(FOO)
+                    .withChild(ImmutableNodes.leafSetEntry(Bar.QNAME, FOO_IID))
                     .build())
                 .build())
             .build(),
index 59423ce3c2d473716f53bbf9ca97ce24fca14dd3..f07eafbe1a948da9325c445cc730fa3ccf2b4d8a 100644 (file)
@@ -13,17 +13,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThrows;
 import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.top;
 import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.topLevelList;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.choiceBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.containerBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.leafSetBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.leafSetEntryBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.mapBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.orderedLeafSetBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.orderedMapBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.leafNode;
-import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntry;
-import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntryBuilder;
-import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapNodeBuilder;
 
 import java.util.List;
 import java.util.Map;
@@ -61,9 +50,9 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodecTest {
     public static final String TOP_LEVEL_LIST_FOO_KEY_VALUE = "foo";
@@ -107,7 +96,7 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     }
 
     private static ContainerNode getEmptyTop() {
-        return containerBuilder().withNodeIdentifier(new NodeIdentifier(TOP_QNAME)).build();
+        return ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(TOP_QNAME)).build();
     }
 
     private static final QName AGUMENT_STRING_Q = QName.create(TOP_QNAME, "augmented-string");
@@ -118,7 +107,7 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     @Test
     public void equalsWithAugment() {
         final ContainerNode topNormalizedWithAugments =
-            getNormalizedTopWithChildren(leafNode(AGUMENT_STRING_Q, AUGMENT_STRING_VALUE));
+            getNormalizedTopWithChildren(ImmutableNodes.leafNode(AGUMENT_STRING_Q, AUGMENT_STRING_VALUE));
         final ContainerNode topNormalized = getEmptyTop();
 
         final var entry = codecContext.fromNormalizedNode(BI_TOP_PATH, topNormalized);
@@ -151,8 +140,8 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     @Test
     public void equalsWithMultipleAugments() {
         final ContainerNode topNormalizedWithAugments = getNormalizedTopWithChildren(
-            leafNode(AGUMENT_STRING_Q, AUGMENT_STRING_VALUE),
-            leafNode(AUGMENT_INT_Q, AUGMENT_INT_VALUE));
+            ImmutableNodes.leafNode(AGUMENT_STRING_Q, AUGMENT_STRING_VALUE),
+            ImmutableNodes.leafNode(AUGMENT_INT_Q, AUGMENT_INT_VALUE));
         final var entryWithAugments = codecContext.fromNormalizedNode(BI_TOP_PATH, topNormalizedWithAugments);
         Top topWithAugments = topWithAugments(Map.of(
             Top1.class, new Top1Builder().setAugmentedString(AUGMENT_STRING_VALUE).build(),
@@ -170,12 +159,15 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     }
 
     private static ContainerNode getNormalizedTopWithChildren(final DataContainerChild... children) {
-        final var builder = containerBuilder();
-        for (DataContainerChild child : children) {
+        final var builder = ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(TOP_QNAME));
+        for (var child : children) {
             builder.withChild(child);
         }
-        return builder.withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-                    .withChild(mapNodeBuilder(TOP_LEVEL_LIST_QNAME).build()).build();
+        return builder
+            .withChild(ImmutableNodes.newSystemMapBuilder()
+                .withNodeIdentifier(new NodeIdentifier(TOP_LEVEL_LIST_QNAME))
+                .build())
+            .build();
     }
 
     private static Top topWithAugments(
@@ -190,21 +182,22 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     @Test
     public void listWithKeysToNormalized() {
         final var entry = codecContext.toNormalizedDataObject(BA_TOP_LEVEL_LIST, topLevelList(TOP_LEVEL_LIST_FOO_KEY));
-        assertEquals(mapEntryBuilder()
+        assertEquals(ImmutableNodes.newMapEntryBuilder()
             .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
                 TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+            .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
             .build(),
             entry.node());
     }
 
     @Test
     public void listWithKeysFromNormalized() {
-        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH, mapEntryBuilder()
-            .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
-                TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .build());
+        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH,
+            ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
+                    TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .build());
         assertEquals(topLevelList(TOP_LEVEL_LIST_FOO_KEY), entry.getValue());
     }
 
@@ -213,23 +206,24 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
         final var entry = codecContext.toNormalizedDataObject(BA_TOP_LEVEL_LIST,
             topLevelList(TOP_LEVEL_LIST_FOO_KEY,
                 new TreeLeafOnlyAugmentBuilder().setSimpleValue("simpleValue").build()));
-        assertEquals(mapEntryBuilder()
+        assertEquals(ImmutableNodes.newMapEntryBuilder()
             .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
                 TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(SIMPLE_VALUE_QNAME, "simpleValue")) // augmentation child
+            .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+            .withChild(ImmutableNodes.leafNode(SIMPLE_VALUE_QNAME, "simpleValue")) // augmentation child
             .build(),
             entry.node());
     }
 
     @Test
     public void leafOnlyAugmentationFromNormalized() {
-        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH, mapEntryBuilder()
-            .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
-                TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(SIMPLE_VALUE_QNAME, "simpleValue")) // augmentation child
-            .build());
+        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH,
+            ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME,
+                    TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .withChild(ImmutableNodes.leafNode(SIMPLE_VALUE_QNAME, "simpleValue")) // augmentation child
+                .build());
         assertEquals(
             topLevelList(TOP_LEVEL_LIST_FOO_KEY,
                 new TreeLeafOnlyAugmentBuilder().setSimpleValue("simpleValue").build()),
@@ -240,14 +234,11 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     public void orderedleafListToNormalized() {
         final var entry = codecContext.toNormalizedDataObject(InstanceIdentifier.create(Top.class),
             new TopBuilder().setTopLevelOrderedLeafList(List.of("foo")).build());
-        assertEquals(containerBuilder()
+        assertEquals(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-            .withChild(orderedLeafSetBuilder()
+            .withChild(ImmutableNodes.newUserLeafSetBuilder()
                 .withNodeIdentifier(new NodeIdentifier(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME))
-                .withChild(leafSetEntryBuilder()
-                    .withNodeIdentifier(new NodeWithValue<>(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME, "foo"))
-                    .withValue("foo")
-                    .build())
+                .withChild(ImmutableNodes.leafSetEntry(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME, "foo"))
                 .build())
             .build(),
             entry.node());
@@ -257,14 +248,11 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
     public void leafListToNormalized() {
         final var entry = codecContext.toNormalizedDataObject(
             InstanceIdentifier.create(Top.class), new TopBuilder().setTopLevelLeafList(Set.of("foo")).build());
-        assertEquals(containerBuilder()
+        assertEquals(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-            .withChild(leafSetBuilder()
+            .withChild(ImmutableNodes.newSystemLeafSetBuilder()
                 .withNodeIdentifier(new NodeIdentifier(TOP_LEVEL_LEAF_LIST_QNAME))
-                .withChild(leafSetEntryBuilder()
-                    .withNodeIdentifier(new NodeWithValue<>(TOP_LEVEL_LEAF_LIST_QNAME, "foo"))
-                    .withValue("foo")
-                    .build())
+                .withChild(ImmutableNodes.leafSetEntry(TOP_LEVEL_LEAF_LIST_QNAME, "foo"))
                 .build())
             .build(),
             entry.node());
@@ -272,14 +260,11 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
     @Test
     public void leafListFromNormalized() {
-        final var entry = codecContext.fromNormalizedNode(BI_TOP_PATH, containerBuilder()
+        final var entry = codecContext.fromNormalizedNode(BI_TOP_PATH, ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-            .withChild(leafSetBuilder()
+            .withChild(ImmutableNodes.newSystemLeafSetBuilder()
                 .withNodeIdentifier(new NodeIdentifier(TOP_LEVEL_LEAF_LIST_QNAME))
-                .withChild(leafSetEntryBuilder()
-                    .withNodeIdentifier(new NodeWithValue<>(TOP_LEVEL_LEAF_LIST_QNAME, "foo"))
-                    .withValue("foo")
-                    .build())
+                .withChild(ImmutableNodes.leafSetEntry(TOP_LEVEL_LEAF_LIST_QNAME, "foo"))
                 .build())
             .build());
         assertEquals(new TopBuilder().setTopLevelLeafList(Set.of("foo")).build(), entry.getValue());
@@ -287,13 +272,11 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
     @Test
     public void orderedLeafListFromNormalized() {
-        final var entry = codecContext.fromNormalizedNode(BI_TOP_PATH, containerBuilder()
+        final var entry = codecContext.fromNormalizedNode(BI_TOP_PATH, ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-            .withChild(orderedLeafSetBuilder()
+            .withChild(ImmutableNodes.newUserLeafSetBuilder()
                 .withNodeIdentifier(new NodeIdentifier(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME))
-                .withChild(leafSetEntryBuilder()
-                    .withNodeIdentifier(new NodeWithValue<>(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME, "foo"))
-                    .withValue("foo").build())
+                .withChild(ImmutableNodes.leafSetEntry(TOP_LEVEL_ORDERED_LEAF_LIST_QNAME, "foo"))
                 .build())
             .build());
         assertEquals(new TopBuilder().setTopLevelOrderedLeafList(List.of("foo")).build(), entry.getValue());
@@ -307,13 +290,13 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
                     .setExtendedId(new ExtendedIdBuilder().setId("identifier_value").build())
                     .build())
                 .build());
-        assertEquals(containerBuilder()
+        assertEquals(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(CHOICE_CONTAINER_QNAME))
-            .withChild(choiceBuilder()
+            .withChild(ImmutableNodes.newChoiceBuilder()
                 .withNodeIdentifier(new NodeIdentifier(CHOICE_IDENTIFIER_QNAME))
-                .withChild(containerBuilder()
+                .withChild(ImmutableNodes.newContainerBuilder()
                     .withNodeIdentifier(new NodeIdentifier(EXTENDED_ID_QNAME))
-                    .withChild(leafNode(CHOICE_IDENTIFIER_ID_QNAME, "identifier_value"))
+                    .withChild(ImmutableNodes.leafNode(CHOICE_IDENTIFIER_ID_QNAME, "identifier_value"))
                     .build())
                 .build())
             .build(),
@@ -333,11 +316,11 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
         final YangInstanceIdentifier yangInstanceIdentifierOuter = YangInstanceIdentifier.of(
             containerIdentifierQname4798);
-        final ContainerNode containerNodeOuter = containerBuilder()
+        final ContainerNode containerNodeOuter = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(containerIdentifierQname4798))
-            .withChild(containerBuilder()
+            .withChild(ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(nestedContainerOuterQname))
-                .withChild(leafNode(nestedContainerLeafOuterQname, "bar"))
+                .withChild(ImmutableNodes.leafNode(nestedContainerLeafOuterQname, "bar"))
                 .build())
             .build();
         final Entry<InstanceIdentifier<?>, DataObject> entryContainer = codecContext.fromNormalizedNode(
@@ -359,16 +342,24 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
                 .node(nestedContainerValidQname)
                 .node(nestedListQname4798)
                 .node(nodeIdentifierWithPredicates4798);
-        final ContainerNode containerNodeValid = containerBuilder()
+        final ContainerNode containerNodeValid = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(containerIdentifierQname4798))
-            .withChild(choiceBuilder()
+            .withChild(ImmutableNodes.newChoiceBuilder()
                 .withNodeIdentifier(new NodeIdentifier(choiceIdentifierQname4798))
-                .withChild(containerBuilder()
+                .withChild(ImmutableNodes.newContainerBuilder()
                     .withNodeIdentifier(new NodeIdentifier(nestedContainerValidQname))
-                    .withChild(mapBuilder()
+                    .withChild(ImmutableNodes.newSystemMapBuilder()
                         .withNodeIdentifier(new NodeIdentifier(nestedListQname4798))
-                        .withChild(mapEntry(nestedListQname4798, nestedListKeyQname4798, "foo"))
-                        .withChild(mapEntry(nestedListQname4798, nestedListKeyQname4798, "bar"))
+                        .withChild(ImmutableNodes.newMapEntryBuilder()
+                            .withNodeIdentifier(
+                                NodeIdentifierWithPredicates.of(nestedListQname4798, nestedListKeyQname4798, "foo"))
+                            .withChild(ImmutableNodes.leafNode(nestedListKeyQname4798, "foo"))
+                            .build())
+                        .withChild(ImmutableNodes.newMapEntryBuilder()
+                            .withNodeIdentifier(
+                                NodeIdentifierWithPredicates.of(nestedListQname4798, nestedListKeyQname4798, "bar"))
+                            .withChild(ImmutableNodes.leafNode(nestedListKeyQname4798, "bar"))
+                            .build())
                         .build())
                     .build())
                 .build())
@@ -379,14 +370,22 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
             .getMessage();
         assertEquals("Expecting either a MapEntryNode or an UnkeyedListEntryNode, not ContainerNode", msg);
 
-        final ContainerNode containerNode4798 = containerBuilder()
+        final ContainerNode containerNode4798 = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(containerIdentifierQname4798))
-            .withChild(choiceBuilder()
+            .withChild(ImmutableNodes.newChoiceBuilder()
                 .withNodeIdentifier(new NodeIdentifier(choiceIdentifierQname4798))
-                .withChild(mapBuilder()
+                .withChild(ImmutableNodes.newSystemMapBuilder()
                     .withNodeIdentifier(new NodeIdentifier(nestedListQname4798))
-                    .withChild(mapEntry(nestedListQname4798, nestedListKeyQname4798, "foo"))
-                    .withChild(mapEntry(nestedListQname4798, nestedListKeyQname4798, "bar"))
+                    .withChild(ImmutableNodes.newMapEntryBuilder()
+                        .withNodeIdentifier(
+                            NodeIdentifierWithPredicates.of(nestedListQname4798, nestedListKeyQname4798, "foo"))
+                        .withChild(ImmutableNodes.leafNode(nestedListKeyQname4798, "foo"))
+                        .build())
+                    .withChild(ImmutableNodes.newMapEntryBuilder()
+                        .withNodeIdentifier(
+                            NodeIdentifierWithPredicates.of(nestedListQname4798, nestedListKeyQname4798, "bar"))
+                        .withChild(ImmutableNodes.leafNode(nestedListKeyQname4798, "bar"))
+                        .build())
                     .build())
                 .build())
             .build();
@@ -399,13 +398,13 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
     @Test
     public void choiceFromNormalized() {
-        final ContainerNode choiceContainerBI = containerBuilder()
+        final ContainerNode choiceContainerBI = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(CHOICE_CONTAINER_QNAME))
-            .withChild(choiceBuilder()
+            .withChild(ImmutableNodes.newChoiceBuilder()
                 .withNodeIdentifier(new NodeIdentifier(CHOICE_IDENTIFIER_QNAME))
-                .withChild(containerBuilder()
+                .withChild(ImmutableNodes.newContainerBuilder()
                     .withNodeIdentifier(new NodeIdentifier(EXTENDED_ID_QNAME))
-                    .withChild(leafNode(CHOICE_IDENTIFIER_ID_QNAME, "identifier_value"))
+                    .withChild(ImmutableNodes.leafNode(CHOICE_IDENTIFIER_ID_QNAME, "identifier_value"))
                     .build())
                 .build())
             .build();
@@ -424,14 +423,22 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
                 new NestedListBuilder().withKey(new NestedListKey("foo")).build(),
                 new NestedListBuilder().withKey(new NestedListKey("bar")).build()))
             .build());
-        assertEquals(mapEntryBuilder()
+        assertEquals(ImmutableNodes.newMapEntryBuilder()
             .withNodeIdentifier(NodeIdentifierWithPredicates.of(TOP_LEVEL_LIST_QNAME,
                 TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(orderedMapBuilder()
+            .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+            .withChild(ImmutableNodes.newUserMapBuilder()
                 .withNodeIdentifier(new NodeIdentifier(NESTED_LIST_QNAME))
-                .withChild(mapEntry(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "foo"))
-                .withChild(mapEntry(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "bar"))
+                .withChild(ImmutableNodes.newMapEntryBuilder()
+                    .withNodeIdentifier(
+                        NodeIdentifierWithPredicates.of(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "foo"))
+                    .withChild(ImmutableNodes.leafNode(NESTED_LIST_KEY_QNAME, "foo"))
+                    .build())
+                .withChild(ImmutableNodes.newMapEntryBuilder()
+                    .withNodeIdentifier(
+                        NodeIdentifierWithPredicates.of(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "bar"))
+                    .withChild(ImmutableNodes.leafNode(NESTED_LIST_KEY_QNAME, "bar"))
+                    .build())
                 .build())
             .build(),
             entry.node());
@@ -439,16 +446,25 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
     @Test
     public void orderedLisFromNormalized() {
-        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH, mapEntryBuilder()
-            .withNodeIdentifier(NodeIdentifierWithPredicates.of(
-                TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
-            .withChild(orderedMapBuilder()
-                .withNodeIdentifier(new NodeIdentifier(NESTED_LIST_QNAME))
-                .withChild(mapEntry(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "foo"))
-                .withChild(mapEntry(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "bar"))
-                .build())
-            .build());
+        final var entry = codecContext.fromNormalizedNode(BI_TOP_LEVEL_LIST_FOO_PATH,
+            ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(
+                    TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
+                .withChild(ImmutableNodes.newUserMapBuilder()
+                    .withNodeIdentifier(new NodeIdentifier(NESTED_LIST_QNAME))
+                    .withChild(ImmutableNodes.newMapEntryBuilder()
+                        .withNodeIdentifier(
+                            NodeIdentifierWithPredicates.of(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "foo"))
+                        .withChild(ImmutableNodes.leafNode(NESTED_LIST_KEY_QNAME, "foo"))
+                        .build())
+                    .withChild(ImmutableNodes.newMapEntryBuilder()
+                        .withNodeIdentifier(
+                            NodeIdentifierWithPredicates.of(NESTED_LIST_QNAME, NESTED_LIST_KEY_QNAME, "bar"))
+                        .withChild(ImmutableNodes.leafNode(NESTED_LIST_KEY_QNAME, "bar"))
+                        .build())
+                    .build())
+                .build());
         assertEquals(new TopLevelListBuilder()
             .withKey(TOP_LEVEL_LIST_FOO_KEY)
             .setNestedList(List.of(
@@ -486,12 +502,16 @@ public class NormalizedNodeSerializeDeserializeTest extends AbstractBindingCodec
 
         final var biResult = codecContext.toNormalizedDataObject(InstanceIdentifier.create(Top.class), top);
 
-        final var topNormalized = containerBuilder()
+        final var topNormalized = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
-            .withChild(choiceBuilder().withNodeIdentifier(augmentChoice1Id) // choice 1
-                .withChild(choiceBuilder().withNodeIdentifier(augmentChoice2Id) // choice 2
-                    .withChild(containerBuilder().withNodeIdentifier(containerId)
-                        .withChild(leafNode(leafQName, "leaf-value")).build())
+            .withChild(ImmutableNodes.newChoiceBuilder()
+                .withNodeIdentifier(augmentChoice1Id)
+                .withChild(ImmutableNodes.newChoiceBuilder()
+                    .withNodeIdentifier(augmentChoice2Id)
+                    .withChild(ImmutableNodes.newContainerBuilder()
+                        .withNodeIdentifier(containerId)
+                        .withChild(ImmutableNodes.leafNode(leafQName, "leaf-value"))
+                        .build())
                     .build())
                 .build())
             .build();
index 906f0d671c372f2645b8c00f2774fe7a8477bb27..4a44f33a700f71a7b7e5e20b4a7246d6737684ab 100644 (file)
@@ -11,7 +11,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-import com.google.common.collect.ImmutableMap;
 import java.time.Instant;
 import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.TwoLevelListChanged;
@@ -20,29 +19,29 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.te
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.TopLevelListBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.TopLevelListKey;
 import org.opendaylight.yangtools.yang.binding.EventInstantAware;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class NotificationProcessingTest extends AbstractBindingCodecTest {
     private static final QName NAME = QName.create(TopLevelList.QNAME, "name");
 
     private static TwoLevelListChanged createTestBindingData() {
-        final TopLevelListKey key = new TopLevelListKey("test");
         return new TwoLevelListChangedBuilder()
-                .setTopLevelList(ImmutableMap.of(key, new TopLevelListBuilder().withKey(key).build()))
-                .build();
+            .setTopLevelList(BindingMap.of(new TopLevelListBuilder().withKey(new TopLevelListKey("test")).build()))
+            .build();
     }
 
     private static ContainerNode createTestDomData() {
-        return Builders.containerBuilder()
+        return ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(NodeIdentifier.create(TwoLevelListChanged.QNAME))
-                .withChild(Builders.mapBuilder()
+                .withChild(ImmutableNodes.newSystemMapBuilder()
                     .withNodeIdentifier(NodeIdentifier.create(TopLevelList.QNAME))
-                    .withChild(Builders.mapEntryBuilder()
+                    .withChild(ImmutableNodes.newMapEntryBuilder()
                         .withNodeIdentifier(NodeIdentifierWithPredicates.of(TopLevelList.QNAME, NAME, "test"))
                         .build())
                     .build())
@@ -52,7 +51,7 @@ public class NotificationProcessingTest extends AbstractBindingCodecTest {
 
     @Test
     public void testNotificationToNormalized() {
-        final ContainerNode dom = codecContext.toNormalizedNodeNotification(createTestBindingData());
+        final var dom = codecContext.toNormalizedNodeNotification(createTestBindingData());
         assertEquals(createTestDomData(), dom);
     }
 
@@ -66,7 +65,7 @@ public class NotificationProcessingTest extends AbstractBindingCodecTest {
 
     @Test
     public void testNormalizedToNotificationWithInstant() {
-        final Instant instant = Instant.now();
+        final var instant = Instant.now();
         final var bindingDeserialized = codecContext.fromNormalizedNodeNotification(
             Absolute.of(TwoLevelListChanged.QNAME), createTestDomData(), instant);
         assertTrue(bindingDeserialized instanceof TwoLevelListChanged);
index ef766a0da56ead3caf9da8fd0ee8c62d2e9b7350..69e98c9d3c3d751973632aaf9b7020e005d91139 100644 (file)
@@ -26,8 +26,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class UnionTypeWithMultipleIdentityrefsTest extends AbstractBindingCodecTest {
 
@@ -64,7 +63,7 @@ public class UnionTypeWithMultipleIdentityrefsTest extends AbstractBindingCodecT
     }
 
     private void verifyIdentityWasTranslatedToBindingCorrectly(final QName identityQname, final UnionType union) {
-        final ContainerNode top = Builders.containerBuilder()
+        final ContainerNode top = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TOP_QNAME))
             .withChild(ImmutableNodes.leafNode(NodeIdentifier.create(UNION_LEAF_QNAME), identityQname))
             .build();
index ab0b2ed54e4bca5c483b41456bbbe43fe7cd97e2..aca1901557aebfb7ce2f61ddaf6a1454eb086c3b 100644 (file)
@@ -16,7 +16,6 @@ import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.ForwardingExecutorService;
-import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Collections;
@@ -41,11 +40,10 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStore;
 import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
 import org.opendaylight.yangtools.util.concurrent.DeadlockDetectingListeningExecutorService;
 import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class DOMBrokerTest extends AbstractDatastoreTest {
 
@@ -102,15 +100,16 @@ public class DOMBrokerTest extends AbstractDatastoreTest {
          * Writes /test in writeTx.
          *
          */
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
 
         /**
          * Reads /test from readTx Read should return Absent.
          *
          */
-        final ListenableFuture<Optional<NormalizedNode>> readTxContainer = readTx.read(OPERATIONAL,
-            TestModel.TEST_PATH);
-        assertFalse(readTxContainer.get().isPresent());
+        final var readTxContainer = readTx.read(OPERATIONAL, TestModel.TEST_PATH);
+        assertEquals(Optional.empty(), readTxContainer.get());
     }
 
     @Test(timeout = 10000)
@@ -121,12 +120,13 @@ public class DOMBrokerTest extends AbstractDatastoreTest {
          * Writes /test in writeTx
          *
          */
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
 
         writeTx.commit().get();
 
-        final Optional<NormalizedNode> afterCommitRead = domBroker.newReadOnlyTransaction()
-                .read(OPERATIONAL, TestModel.TEST_PATH).get();
+        final var afterCommitRead = domBroker.newReadOnlyTransaction().read(OPERATIONAL, TestModel.TEST_PATH).get();
         assertTrue(afterCommitRead.isPresent());
     }
 
@@ -143,7 +143,9 @@ public class DOMBrokerTest extends AbstractDatastoreTest {
             .awaitTermination(Mockito.anyLong(), Mockito.any(TimeUnit.class));
 
         final DOMDataTreeWriteTransaction writeTx = domBroker.newWriteOnlyTransaction();
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
 
         try {
             writeTx.commit().get(5, TimeUnit.SECONDS);
@@ -169,11 +171,12 @@ public class DOMBrokerTest extends AbstractDatastoreTest {
     @Test(expected = ReadFailedException.class)
     @SuppressWarnings({"checkstyle:IllegalThrows", "checkstyle:AvoidHidingCauseException"})
     public void basicTests() throws Throwable {
-        final DataContainerChild outerList = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-                .withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
-                .build();
-        final NormalizedNode testContainer = Builders.containerBuilder()
-                .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME))
+        final DataContainerChild outerList = ImmutableNodes.newSystemMapBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+            .withChild(TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
+            .build();
+        final ContainerNode testContainer = ImmutableNodes.newContainerBuilder()
+                .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
                 .withChild(outerList)
                 .build();
 
@@ -183,27 +186,33 @@ public class DOMBrokerTest extends AbstractDatastoreTest {
         assertNotNull(readRx);
         assertNotNull(((SerializedDOMDataBroker) domBroker).getCommitStatsTracker());
 
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
         writeTx.commit().get();
         assertFalse(writeTx.cancel());
 
-        assertEquals(false, domBroker.newReadOnlyTransaction().exists(CONFIGURATION, TestModel.TEST_PATH).get());
-        assertEquals(true, domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
-        assertEquals(false, domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST2_PATH).get());
+        assertFalse(domBroker.newReadOnlyTransaction().exists(CONFIGURATION, TestModel.TEST_PATH).get());
+        assertTrue(domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
+        assertFalse(domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST2_PATH).get());
 
         writeTx = domBroker.newWriteOnlyTransaction();
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
         writeTx.delete(OPERATIONAL, TestModel.TEST_PATH);
         writeTx.commit().get();
-        assertEquals(false, domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
+        assertFalse(domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
         assertTrue(domBroker.newWriteOnlyTransaction().cancel());
 
         writeTx = domBroker.newWriteOnlyTransaction();
-        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        writeTx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
         writeTx.merge(OPERATIONAL, TestModel.TEST_PATH, testContainer);
         writeTx.commit().get();
-        assertEquals(Boolean.TRUE, domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
-        assertEquals(Boolean.TRUE, domBroker.newReadOnlyTransaction().read(OPERATIONAL, TestModel.TEST_PATH).get()
+        assertTrue(domBroker.newReadOnlyTransaction().exists(OPERATIONAL, TestModel.TEST_PATH).get());
+        assertTrue(domBroker.newReadOnlyTransaction().read(OPERATIONAL, TestModel.TEST_PATH).get()
                  .orElseThrow().toString().contains(testContainer.toString()));
 
         readRx.read(OPERATIONAL, TestModel.TEST_PATH).get(); // init backing tx before close
index f6a23434dc2f10c986fa5096fd824601e7c7c1fc..be762e471d7c63674cb4cf31daffa4f95f9af098 100644 (file)
@@ -27,10 +27,9 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction;
 import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
 import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 
 public class DOMDataTreeChangeListenerTest extends AbstractDatastoreTest {
@@ -55,14 +54,16 @@ public class DOMDataTreeChangeListenerTest extends AbstractDatastoreTest {
     @Test
     public void receiveOnDataInitialEventForNonExistingData() throws Exception {
         final DOMDataTreeChangeListener listener = mock(DOMDataTreeChangeListener.class);
-        final ArgumentCaptor<List> candidateCapture = ArgumentCaptor.forClass(List.class);
+        final var candidateCapture = ArgumentCaptor.forClass(List.class);
         doNothing().when(listener).onInitialData();
         doNothing().when(listener).onDataTreeChanged(any());
 
         domStore.registerTreeChangeListener(TestModel.TEST_PATH, listener);
         verify(listener, times(1)).onInitialData();
 
-        final NormalizedNode testNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
+        final var testNode = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build();
         DOMStoreReadWriteTransaction writeTx = domStore.newReadWriteTransaction();
         assertNotNull(writeTx);
         writeTx.write(TestModel.TEST_PATH, testNode);
@@ -81,7 +82,9 @@ public class DOMDataTreeChangeListenerTest extends AbstractDatastoreTest {
         final ArgumentCaptor<List> candidateCapture = ArgumentCaptor.forClass(List.class);
         doNothing().when(listener).onDataTreeChanged(any());
 
-        final NormalizedNode testNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
+        final var testNode = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build();
 
         DOMStoreReadWriteTransaction writeTx = domStore.newReadWriteTransaction();
         assertNotNull(writeTx);
@@ -103,11 +106,13 @@ public class DOMDataTreeChangeListenerTest extends AbstractDatastoreTest {
         final ArgumentCaptor<List> candidateCapture = ArgumentCaptor.forClass(List.class);
         doNothing().when(listener).onDataTreeChanged(any());
 
-        final ContainerNode testNode = Builders.containerBuilder()
-                .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME))
-                .addChild(ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-                        .addChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME,
-                                TestModel.ID_QNAME, 1)).build()).build();
+        final ContainerNode testNode = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .addChild(ImmutableNodes.newSystemMapBuilder()
+                .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+                .addChild(TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
+                .build())
+            .build();
         DOMStoreReadWriteTransaction writeTx = domStore.newReadWriteTransaction();
         assertNotNull(writeTx);
         writeTx.write(TestModel.TEST_PATH, testNode);
index aef94a089289e8e179fe42d6c3de9a2e4b03803e..c53c134955f95de5bb3fd2ff63974009216cf23b 100644 (file)
@@ -39,8 +39,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
@@ -52,20 +51,22 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest {
     private ExecutorService futureExecutor;
     private CommitExecutorService commitExecutor;
 
-    private static final MapNode OUTER_LIST = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-            .withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
-            .build();
+    private static final MapNode OUTER_LIST = ImmutableNodes.newSystemMapBuilder()
+        .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+        .withChild(TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
+        .build();
 
-    private static final MapNode OUTER_LIST_2 = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-            .withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 2))
-            .build();
+    private static final MapNode OUTER_LIST_2 = ImmutableNodes.newSystemMapBuilder()
+        .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+        .withChild(TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 2))
+        .build();
 
-    private static final NormalizedNode TEST_CONTAINER = Builders.containerBuilder()
+    private static final NormalizedNode TEST_CONTAINER = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
             .withChild(OUTER_LIST)
             .build();
 
-    private static final NormalizedNode TEST_CONTAINER_2 = Builders.containerBuilder()
+    private static final NormalizedNode TEST_CONTAINER_2 = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
             .withChild(OUTER_LIST_2)
             .build();
@@ -319,14 +320,15 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest {
         final var outerListEntryId3 =
                 NodeIdentifierWithPredicates.of(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 3);
 
-        final var outerListEntry1 = ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1);
-        final var outerListEntry2 = ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 2);
-        final var outerListEntry3 = ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 3);
+        final var outerListEntry1 = TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1);
+        final var outerListEntry2 = TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 2);
+        final var outerListEntry3 = TestUtils.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 3);
 
-        final var listAfter = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-                .withChild(outerListEntry2)
-                .withChild(outerListEntry3)
-                .build();
+        final var listAfter = ImmutableNodes.newSystemMapBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+            .withChild(outerListEntry2)
+            .withChild(outerListEntry3)
+            .build();
 
         writeTx = domBroker.newWriteOnlyTransaction();
         writeTx.delete(LogicalDatastoreType.CONFIGURATION, TestModel.OUTER_LIST_PATH.node(outerListEntryId1));
index 0deaddea71f3d1883071222ba916d02241e5fd15..55f81585c852a9c500d90d96b379d1f8056820f7 100644 (file)
@@ -51,7 +51,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class DOMRpcRouterTest {
@@ -62,7 +62,7 @@ public class DOMRpcRouterTest {
 
     private static final DOMActionImplementation IMPL =
         (type, path, input) -> Futures.immediateFuture(new SimpleDOMActionResult(
-            Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(Actions.OUTPUT)).build()));
+            ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(Actions.OUTPUT)).build()));
 
     @Test
     public void registerRpcImplementation() {
@@ -259,6 +259,6 @@ public class DOMRpcRouterTest {
             final YangInstanceIdentifier path) {
         return actionService.invokeAction(Actions.BAZ_TYPE,
             DOMDataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path),
-            Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(Actions.INPUT)).build());
+            ImmutableNodes.newContainerBuilder().withNodeIdentifier(new NodeIdentifier(Actions.INPUT)).build());
     }
 }
index 190c46811cc1c5d6ba475be4e6d6c1745f03de76..1e4ccad6e11d5f1ba5c04280e97b501dd4e813a9 100644 (file)
@@ -32,8 +32,9 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
 import org.opendaylight.mdsal.dom.spi.store.DOMStore;
 import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class DOMTransactionChainTest extends AbstractDatastoreTest {
 
@@ -177,6 +178,8 @@ public class DOMTransactionChainTest extends AbstractDatastoreTest {
     }
 
     private static void writeTestContainer(final DOMDataTreeWriteTransaction tx) {
-        tx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
+        tx.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
+            .build());
     }
 }
index b749f82116d667c19bca18d3f5ed88ff53c16b86..69799abf3783da9eae365bafd746b5e196072be6 100644 (file)
@@ -34,8 +34,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class RoutedDOMRpcRoutingTableEntryTest {
@@ -46,15 +45,15 @@ public class RoutedDOMRpcRoutingTableEntryTest {
     public static final YangInstanceIdentifier TWO_PATH = YangInstanceIdentifier.of(
         new NodeIdentifier(Rpcs.BAZ), NodeIdentifierWithPredicates.of(Rpcs.BAZ, Rpcs.NAME, "two"));
 
-    public static final ContainerNode ONE_INPUT = Builders.containerBuilder()
+    public static final ContainerNode ONE_INPUT = ImmutableNodes.newContainerBuilder()
         .withNodeIdentifier(new NodeIdentifier(Rpcs.INPUT))
         .withChild(ImmutableNodes.leafNode(Rpcs.CTX, ONE_PATH))
         .build();
-    public static final ContainerNode TWO_INPUT = Builders.containerBuilder()
+    public static final ContainerNode TWO_INPUT = ImmutableNodes.newContainerBuilder()
         .withNodeIdentifier(new NodeIdentifier(Rpcs.INPUT))
         .withChild(ImmutableNodes.leafNode(Rpcs.CTX, TWO_PATH))
         .build();
-    public static final ContainerNode GLOBAL_INPUT = Builders.containerBuilder()
+    public static final ContainerNode GLOBAL_INPUT = ImmutableNodes.newContainerBuilder()
         .withNodeIdentifier(new NodeIdentifier(Rpcs.INPUT))
         // This not covered by schema
         .withChild(ImmutableNodes.leafNode(Rpcs.NAME, "name"))
@@ -126,7 +125,7 @@ public class RoutedDOMRpcRoutingTableEntryTest {
 
     @Test
     public void testWrongContext() {
-        assertRpcUnavailable(Builders.containerBuilder()
+        assertRpcUnavailable(ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(new NodeIdentifier(Rpcs.INPUT))
             .withChild(ImmutableNodes.leafNode(Rpcs.CTX, "bad type"))
             .build());
index 8b53a70a45144e0f8b0b4ec09ef9c405388444c4..bc3dde7e8bf4c46d546dd4a728d8ab12ffb6750f 100644 (file)
@@ -21,12 +21,15 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 final class TestUtils {
-    private static final MapNode OUTER_LIST = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
-        .withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
+    private static final MapNode OUTER_LIST = ImmutableNodes.newSystemMapBuilder()
+        .withNodeIdentifier(new NodeIdentifier(TestModel.OUTER_LIST_QNAME))
+        .withChild(ImmutableNodes.newMapEntryBuilder()
+            .withNodeIdentifier(NodeIdentifierWithPredicates.of(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
+            .withChild(ImmutableNodes.leafNode(TestModel.ID_QNAME, 1))
+            .build())
         .build();
 
     private static final String TOP_LEVEL_LIST_FOO_KEY_VALUE = "foo";
@@ -34,23 +37,23 @@ final class TestUtils {
     private static final QName TOP_LEVEL_LIST_QNAME = QName.create(TOP_QNAME, "top-level-list");
     private static final QName TOP_LEVEL_LIST_KEY_QNAME = QName.create(TOP_QNAME, "name");
 
-    private static final MapEntryNode TOP_LEVEL_LIST_NODE = Builders.mapEntryBuilder()
+    private static final MapEntryNode TOP_LEVEL_LIST_NODE = ImmutableNodes.newMapEntryBuilder()
         .withNodeIdentifier(NodeIdentifierWithPredicates.of(
             TOP_LEVEL_LIST_QNAME, TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
         .withChild(ImmutableNodes.leafNode(TOP_LEVEL_LIST_KEY_QNAME, TOP_LEVEL_LIST_FOO_KEY_VALUE))
         .build();
 
-    private static final MapNode CHILD_LIST = ImmutableNodes.mapNodeBuilder(TestModel.TEST_QNAME)
-        .withNodeIdentifier(NodeIdentifier.create(TestModel.TEST_QNAME))
+    private static final MapNode CHILD_LIST = ImmutableNodes.newSystemMapBuilder()
+        .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
         .withChild(TOP_LEVEL_LIST_NODE)
         .build();
 
-    static final ContainerNode TEST_CONTAINER = Builders.containerBuilder()
+    static final ContainerNode TEST_CONTAINER = ImmutableNodes.newContainerBuilder()
         .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
         .withChild(OUTER_LIST)
         .build();
 
-    static final ContainerNode TEST_CHILD = Builders.containerBuilder()
+    static final ContainerNode TEST_CHILD = ImmutableNodes.newContainerBuilder()
         .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME))
         .withChild(CHILD_LIST)
         .build();
@@ -61,6 +64,13 @@ final class TestUtils {
         // Hidden on purpose
     }
 
+    static MapEntryNode mapEntry(final QName listName, final QName keyName, final Object keyValue) {
+        return ImmutableNodes.newMapEntryBuilder()
+            .withNodeIdentifier(NodeIdentifierWithPredicates.of(listName, keyName, keyValue))
+            .withChild(ImmutableNodes.leafNode(keyName, keyValue))
+            .build();
+    }
+
     static TestRpcImplementation getTestRpcImplementation() {
         return new TestRpcImplementation();
     }
index 66f94dffd0cdb534db5468c4c23673f042770cb6..77e9da0e23ef6e4bf53dc328a703301dd7d8a250 100644 (file)
@@ -9,14 +9,11 @@ package org.opendaylight.mdsal.dom.store.inmemory.benchmark;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public abstract class AbstractInMemoryWriteTransactionBenchmark {
@@ -41,36 +38,43 @@ public abstract class AbstractInMemoryWriteTransactionBenchmark {
     protected static final int WARMUP_ITERATIONS = 6;
     protected static final int MEASUREMENT_ITERATIONS = 6;
 
-    protected static final MapNode ONE_ITEM_INNER_LIST = initInnerListItems(1);
-    protected static final MapNode TWO_ITEM_INNER_LIST = initInnerListItems(2);
-    protected static final MapNode TEN_ITEM_INNER_LIST = initInnerListItems(10);
+    protected static final SystemMapNode ONE_ITEM_INNER_LIST = initInnerListItems(1);
+    protected static final SystemMapNode TWO_ITEM_INNER_LIST = initInnerListItems(2);
+    protected static final SystemMapNode TEN_ITEM_INNER_LIST = initInnerListItems(10);
 
-    private static MapNode initInnerListItems(final int count) {
-        final CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapEntryBuilder = ImmutableNodes
-                .mapNodeBuilder(BenchmarkModel.INNER_LIST_QNAME);
+    private static SystemMapNode initInnerListItems(final int count) {
+        final var mapBuilder = ImmutableNodes.newSystemMapBuilder()
+            .withNodeIdentifier(new NodeIdentifier(BenchmarkModel.INNER_LIST_QNAME));
 
         for (int i = 1; i <= count; ++i) {
-            mapEntryBuilder
-                    .withChild(ImmutableNodes.mapEntry(BenchmarkModel.INNER_LIST_QNAME, BenchmarkModel.NAME_QNAME, i));
+            Integer key = i;
+            mapBuilder.withChild(ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(BenchmarkModel.INNER_LIST_QNAME,
+                    BenchmarkModel.NAME_QNAME, key))
+                .withChild(ImmutableNodes.leafNode(BenchmarkModel.NAME_QNAME, key))
+                .build());
         }
-        return mapEntryBuilder.build();
+        return mapBuilder.build();
     }
 
-    protected static final NormalizedNode[] OUTER_LIST_ONE_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_100K,
+    protected static final MapEntryNode[] OUTER_LIST_ONE_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_100K,
             ONE_ITEM_INNER_LIST);
-    protected static final NormalizedNode[] OUTER_LIST_TWO_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_50K,
+    protected static final MapEntryNode[] OUTER_LIST_TWO_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_50K,
             TWO_ITEM_INNER_LIST);
-    protected static final NormalizedNode[] OUTER_LIST_TEN_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_10K,
+    protected static final MapEntryNode[] OUTER_LIST_TEN_ITEM_INNER_LIST = initOuterListItems(OUTER_LIST_10K,
             TEN_ITEM_INNER_LIST);
 
-    private static NormalizedNode[] initOuterListItems(final int outerListItemsCount, final MapNode innerList) {
-        final NormalizedNode[] outerListItems = new NormalizedNode[outerListItemsCount];
+    private static MapEntryNode[] initOuterListItems(final int outerListItemsCount, final SystemMapNode innerList) {
+        final var outerListItems = new MapEntryNode[outerListItemsCount];
 
         for (int i = 0; i < outerListItemsCount; ++i) {
-            int outerListKey = i;
-            outerListItems[i] = ImmutableNodes
-                    .mapEntryBuilder(BenchmarkModel.OUTER_LIST_QNAME, BenchmarkModel.ID_QNAME, outerListKey)
-                    .withChild(innerList).build();
+            Integer key = i;
+            outerListItems[i] = ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(
+                    NodeIdentifierWithPredicates.of(BenchmarkModel.OUTER_LIST_QNAME, BenchmarkModel.ID_QNAME, key))
+                .withChild(ImmutableNodes.leafNode(BenchmarkModel.ID_QNAME, key))
+                .withChild(innerList)
+                .build();
         }
         return outerListItems;
     }
@@ -81,9 +85,12 @@ public abstract class AbstractInMemoryWriteTransactionBenchmark {
 
     public abstract void tearDown();
 
-    protected static DataContainerChild provideOuterListNode() {
-        return Builders.containerBuilder()
+    protected static ContainerNode provideOuterListNode() {
+        return ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(BenchmarkModel.TEST_QNAME))
-                .withChild(ImmutableNodes.mapNodeBuilder(BenchmarkModel.OUTER_LIST_QNAME).build()).build();
+                .withChild(ImmutableNodes.newSystemMapBuilder()
+                    .withNodeIdentifier(new NodeIdentifier(BenchmarkModel.OUTER_LIST_QNAME))
+                    .build())
+                .build();
     }
 }
index 509ad4d4980527cafebc05d4e7719621870ae966..8dd28d03b4b0a3d62e2b2e2b4319be445a52718f 100644 (file)
@@ -28,12 +28,13 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
 import org.opendaylight.mdsal.replicate.common.DataTreeCandidateUtils;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.DataTreeCandidateInputOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.slf4j.Logger;
@@ -41,7 +42,9 @@ import org.slf4j.LoggerFactory;
 
 final class SinkRequestHandler extends SimpleChannelInboundHandler<ByteBuf> {
     private static final Logger LOG = LoggerFactory.getLogger(SinkRequestHandler.class);
-    private static final ContainerNode EMPTY_ROOT = ImmutableNodes.containerNode(SchemaContext.NAME);
+    private static final ContainerNode EMPTY_ROOT = ImmutableNodes.newContainerBuilder()
+        .withNodeIdentifier(NodeIdentifier.create(SchemaContext.NAME))
+        .build();
 
     private final ReusableStreamReceiver receiver = ReusableImmutableNormalizedNodeStreamWriter.create();
     private final List<ByteBuf> chunks = new ArrayList<>();
@@ -73,12 +76,12 @@ final class SinkRequestHandler extends SimpleChannelInboundHandler<ByteBuf> {
     }
 
     private void handleEmptyData() {
-        final DOMDataTreeWriteTransaction tx = chain.newWriteOnlyTransaction();
+        final var tx = chain.newWriteOnlyTransaction();
 
-        if (tree.getRootIdentifier().isEmpty()) {
-            tx.put(tree.getDatastoreType(), YangInstanceIdentifier.of(), EMPTY_ROOT);
+        if (tree.path().isEmpty()) {
+            tx.put(tree.datastore(), YangInstanceIdentifier.of(), EMPTY_ROOT);
         } else {
-            tx.delete(tree.getDatastoreType(), tree.getRootIdentifier());
+            tx.delete(tree.datastore(), tree.path());
         }
         commit(tx);
     }
@@ -96,7 +99,7 @@ final class SinkRequestHandler extends SimpleChannelInboundHandler<ByteBuf> {
         }
 
         final DOMDataTreeWriteTransaction tx = chain.newWriteOnlyTransaction();
-        DataTreeCandidateUtils.applyToTransaction(tx, tree.getDatastoreType(), candidate);
+        DataTreeCandidateUtils.applyToTransaction(tx, tree.datastore(), candidate);
         commit(tx);
     }
 
index 243e08c2c6db81f18a97105b1c6708c47513cdb8..30f50d5a99413de2a126f933e6fb555dbd334937 100644 (file)
@@ -46,7 +46,7 @@ final class SinkSingletonService extends ChannelInitializer<SocketChannel> imple
     private static final Logger LOG = LoggerFactory.getLogger(SinkSingletonService.class);
     private static final ServiceGroupIdentifier SGID = new ServiceGroupIdentifier(SinkSingletonService.class.getName());
     // TODO: allow different trees?
-    private static final DOMDataTreeIdentifier TREE = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION,
+    private static final DOMDataTreeIdentifier TREE = DOMDataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION,
         YangInstanceIdentifier.of());
     private static long CHANNEL_CLOSE_TIMEOUT_S = 10;
     private static final ByteBuf TREE_REQUEST;
@@ -198,8 +198,8 @@ final class SinkSingletonService extends ChannelInitializer<SocketChannel> imple
         try (ByteBufOutputStream stream = new ByteBufOutputStream(ret)) {
             stream.writeByte(Constants.MSG_SUBSCRIBE_REQ);
             try (NormalizedNodeDataOutput output = NormalizedNodeStreamVersion.current().newDataOutput(stream)) {
-                tree.getDatastoreType().writeTo(output);
-                output.writeYangInstanceIdentifier(tree.getRootIdentifier());
+                tree.datastore().writeTo(output);
+                output.writeYangInstanceIdentifier(tree.path());
             }
         }
 
index f0dfe0f6c5949fd1382719ea7f9fd82d1ac90fe2..a4a6d987405899efd114176665f91b6d2ddaa8c2 100644 (file)
@@ -80,7 +80,7 @@ final class SourceRequestHandler extends SimpleChannelInboundHandler<ByteBuf> {
         try (var input = new ByteBufInputStream(msg)) {
             final var normalizedInput = NormalizedNodeDataInput.newDataInput(input);
 
-            dataTree = new DOMDataTreeIdentifier(LogicalDatastoreType.readFrom(normalizedInput),
+            dataTree = DOMDataTreeIdentifier.of(LogicalDatastoreType.readFrom(normalizedInput),
                 normalizedInput.readYangInstanceIdentifier());
         }
 
index 4ad437c730dcbd8219657b7637dca76936a05873..a2f1920e8bc05696d850ef3923aaf3d80b56b77c 100644 (file)
@@ -37,18 +37,14 @@ import org.opendaylight.mdsal.singleton.dom.impl.EOSClusterSingletonServiceProvi
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.Entity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.EntityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.EntityKey;
-import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
@@ -80,39 +76,39 @@ public class IntegrationTest extends AbstractDataBrokerTest {
     @Test
     public void testSourceToSink() throws InterruptedException, ExecutionException {
         // Make sure to start source...
-        final Registration source = NettyReplicationSource.createSource(support, getDomBroker(), css, true, TEST_PORT,
-            Duration.ZERO, 5);
-        // ... and give it some time start up and open up the port
-        Thread.sleep(1000);
-
-        // Mocking for sink...
-        final DOMTransactionChain sinkChain = mock(DOMTransactionChain.class);
-        final DOMDataTreeWriteTransaction sinkTx = mock(DOMDataTreeWriteTransaction.class);
-        doReturn(CommitInfo.emptyFluentFuture()).when(sinkTx).commit();
-        doReturn(sinkTx).when(sinkChain).newWriteOnlyTransaction();
-        final DOMDataBroker sinkBroker = mock(DOMDataBroker.class);
-        doReturn(sinkChain).when(sinkBroker).createMergingTransactionChain();
-
-        // Kick of the sink ...
-        final Registration sink = NettyReplicationSink.createSink(support, sinkBroker, css, true,
-            Inet4Address.getLoopbackAddress(), TEST_PORT, Duration.ZERO, Duration.ZERO, 3);
-        // ... and sync on it starting up
-
-        // verify the connection was established and MSG_EMPTY_DATA was transferred
-        verify(sinkBroker, timeout(1000)).createMergingTransactionChain();
-        verify(sinkTx, timeout(1000)).put(eq(LogicalDatastoreType.CONFIGURATION), eq(YangInstanceIdentifier.of()),
-            any(ContainerNode.class));
-
-        // generate some deltas
-        final int deltaCount = 5;
-        generateModification(getDataBroker(), deltaCount);
-
-        // verify that all the deltas were transferred and committed + 1 invocation from receiving MSG_EMPTY_DATA
-        verify(sinkChain, timeout(2000).times(deltaCount + 1)).newWriteOnlyTransaction();
-        verify(sinkTx, timeout(2000).times(deltaCount + 1)).commit();
-
-        sink.close();
-        source.close();
+        try (var source = NettyReplicationSource.createSource(support, getDomBroker(), css, true, TEST_PORT,
+            Duration.ZERO, 5)) {
+            // ... and give it some time start up and open up the port
+            Thread.sleep(1000);
+
+            // Mocking for sink...
+            final DOMTransactionChain sinkChain = mock(DOMTransactionChain.class);
+            final DOMDataTreeWriteTransaction sinkTx = mock(DOMDataTreeWriteTransaction.class);
+            doReturn(CommitInfo.emptyFluentFuture()).when(sinkTx).commit();
+            doReturn(sinkTx).when(sinkChain).newWriteOnlyTransaction();
+            final DOMDataBroker sinkBroker = mock(DOMDataBroker.class);
+            doReturn(sinkChain).when(sinkBroker).createMergingTransactionChain();
+
+            // Kick of the sink ...
+            try (var sink = NettyReplicationSink.createSink(support, sinkBroker, css, true,
+                Inet4Address.getLoopbackAddress(), TEST_PORT, Duration.ZERO, Duration.ZERO, 3)) {
+                // ... and sync on it starting up
+
+                // verify the connection was established and MSG_EMPTY_DATA was transferred
+                verify(sinkBroker, timeout(1000)).createMergingTransactionChain();
+                verify(sinkTx, timeout(1000)).put(eq(LogicalDatastoreType.CONFIGURATION),
+                    eq(YangInstanceIdentifier.of()), any(ContainerNode.class));
+
+                // generate some deltas
+                final int deltaCount = 5;
+                generateModification(getDataBroker(), deltaCount);
+
+                // verify that all the deltas were transferred and committed + 1 invocation from receiving
+                // MSG_EMPTY_DATA
+                verify(sinkChain, timeout(2000).times(deltaCount + 1)).newWriteOnlyTransaction();
+                verify(sinkTx, timeout(2000).times(deltaCount + 1)).commit();
+            }
+        }
     }
 
     /**
@@ -126,49 +122,51 @@ public class IntegrationTest extends AbstractDataBrokerTest {
         generateModification(getDataBroker(), deltaCount);
 
         // Make sure to start source...
-        final Registration source = NettyReplicationSource.createSource(support, getDomBroker(), css, true, TEST_PORT,
-            Duration.ZERO, 5);
-        // ... and give it some time start up and open up the port
-        Thread.sleep(1000);
-
-        // Mocking for sink...
-        final DOMTransactionChain sinkChain = mock(DOMTransactionChain.class);
-        final DOMDataTreeWriteTransaction sinkTx = mock(DOMDataTreeWriteTransaction.class);
-        doReturn(CommitInfo.emptyFluentFuture()).when(sinkTx).commit();
-        doReturn(sinkTx).when(sinkChain).newWriteOnlyTransaction();
-        final DOMDataBroker sinkBroker = mock(DOMDataBroker.class);
-        doReturn(sinkChain).when(sinkBroker).createMergingTransactionChain();
-
-        // Kick of the sink ...
-        final Registration sink = NettyReplicationSink.createSink(support, sinkBroker, css, true,
-            Inet4Address.getLoopbackAddress(), TEST_PORT, Duration.ZERO, Duration.ZERO, 3);
-        // ... and sync on it starting up
-
-        // verify the connection was established and MSG_EMPTY_DATA was transferred
-        verify(sinkBroker, timeout(1000)).createMergingTransactionChain();
-        verify(sinkChain, timeout(2000).times(1)).newWriteOnlyTransaction();
-
-        // verify that the initial data invoked onDataTreeChanged() and was transferred to sink
-        ArgumentCaptor<NormalizedNode> dataCaptor = ArgumentCaptor.forClass(NormalizedNode.class);
-        verify(sinkTx, timeout(2000).times(1)).put(any(), any(), dataCaptor.capture());
-        // verify that the initial state contains everything
-        NormalizedNode capturedInitialState = dataCaptor.getAllValues().iterator().next();
-        NormalizedNode expectedEntityState = generateNormalizedNodeForEntities(deltaCount);
-        assertEquals(expectedEntityState, capturedInitialState);
-
-        verify(sinkTx, timeout(2000).times(1)).commit();
-
-        sink.close();
-        source.close();
+        try (var source = NettyReplicationSource.createSource(support, getDomBroker(), css, true, TEST_PORT,
+            Duration.ZERO, 5)) {
+            // ... and give it some time start up and open up the port
+            Thread.sleep(1000);
+
+            // Mocking for sink...
+            final DOMTransactionChain sinkChain = mock(DOMTransactionChain.class);
+            final DOMDataTreeWriteTransaction sinkTx = mock(DOMDataTreeWriteTransaction.class);
+            doReturn(CommitInfo.emptyFluentFuture()).when(sinkTx).commit();
+            doReturn(sinkTx).when(sinkChain).newWriteOnlyTransaction();
+            final DOMDataBroker sinkBroker = mock(DOMDataBroker.class);
+            doReturn(sinkChain).when(sinkBroker).createMergingTransactionChain();
+
+            // Kick of the sink ...
+            try (var sink = NettyReplicationSink.createSink(support, sinkBroker, css, true,
+                Inet4Address.getLoopbackAddress(), TEST_PORT, Duration.ZERO, Duration.ZERO, 3)) {
+                // ... and sync on it starting up
+
+                // verify the connection was established and MSG_EMPTY_DATA was transferred
+                verify(sinkBroker, timeout(1000)).createMergingTransactionChain();
+                verify(sinkChain, timeout(2000).times(1)).newWriteOnlyTransaction();
+
+                // verify that the initial data invoked onDataTreeChanged() and was transferred to sink
+                final var dataCaptor = ArgumentCaptor.forClass(NormalizedNode.class);
+                verify(sinkTx, timeout(2000).times(1)).put(any(), any(), dataCaptor.capture());
+                // verify that the initial state contains everything
+                NormalizedNode capturedInitialState = dataCaptor.getAllValues().iterator().next();
+                NormalizedNode expectedEntityState = generateNormalizedNodeForEntities(deltaCount);
+                assertEquals(expectedEntityState, capturedInitialState);
+
+                verify(sinkTx, timeout(2000).times(1)).commit();
+            }
+        }
     }
 
     private static ContainerNode generateNormalizedNodeForEntities(final int amount) {
-        final CollectionNodeBuilder<MapEntryNode, SystemMapNode> builder = ImmutableNodes.mapNodeBuilder(ENTITY_QNAME);
+        final var builder = ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(new NodeIdentifier(ENTITY_QNAME));
         for (int i = 0; i < amount; i++) {
-            builder.withChild(ImmutableNodes.mapEntry(ENTITY_QNAME, ENTITY_NAME_QNAME, "testEntity" + i));
+            final var name = "testEntity" + i;
+            builder.withChild(ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(ENTITY_QNAME, ENTITY_NAME_QNAME, name))
+                .build());
         }
 
-        return Builders.containerBuilder()
+        return ImmutableNodes.newContainerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(SchemaContext.NAME))
                 .withChild(builder.build())
                 .build();