Promote ImmutableNodes to yang-data-spi
[yangtools.git] / data / yang-data-tree-ri / src / main / java / org / opendaylight / yangtools / yang / data / tree / impl / MapModificationStrategy.java
index 32383d0132253da5af90a6109662317b24aa2611..ec936ebff6bee9d38e132e8ec6461afb9ca07377 100644 (file)
@@ -16,9 +16,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
 import org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.Invisible;
 import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
@@ -27,16 +24,16 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
 final class MapModificationStrategy extends Invisible<ListSchemaNode> {
     private static final NormalizedNodeContainerSupport<NodeIdentifier, UserMapNode> ORDERED_SUPPORT =
-            new NormalizedNodeContainerSupport<>(UserMapNode.class, ChildTrackingPolicy.ORDERED,
-                    ImmutableUserMapNodeBuilder::create, ImmutableUserMapNodeBuilder::new);
+        new NormalizedNodeContainerSupport<>(UserMapNode.class, ChildTrackingPolicy.ORDERED,
+            BUILDER_FACTORY::newUserMapBuilder, BUILDER_FACTORY::newUserMapBuilder);
     private static final NormalizedNodeContainerSupport<NodeIdentifier, SystemMapNode> UNORDERED_SUPPORT =
-            new NormalizedNodeContainerSupport<>(SystemMapNode.class, ImmutableMapNodeBuilder::create,
-                    ImmutableMapNodeBuilder::new);
+        new NormalizedNodeContainerSupport<>(SystemMapNode.class, BUILDER_FACTORY::newSystemMapBuilder,
+            BUILDER_FACTORY::newSystemMapBuilder);
 
     private final @NonNull MapNode emptyNode;
 
     private MapModificationStrategy(final NormalizedNodeContainerSupport<?, ?> support, final ListSchemaNode schema,
-        final DataTreeConfiguration treeConfig, final MapNode emptyNode) {
+            final DataTreeConfiguration treeConfig, final MapNode emptyNode) {
         super(support, treeConfig, MapEntryModificationStrategy.of(schema, treeConfig));
         this.emptyNode = requireNonNull(emptyNode);
     }
@@ -44,12 +41,13 @@ final class MapModificationStrategy extends Invisible<ListSchemaNode> {
     static MapModificationStrategy of(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) {
         final NormalizedNodeContainerSupport<?, ?> support;
         final MapNode emptyNode;
+        final var name = NodeIdentifier.create(schema.getQName());
         if (schema.isUserOrdered()) {
             support = ORDERED_SUPPORT;
-            emptyNode = ImmutableNodes.orderedMapNode(schema.getQName());
+            emptyNode = BUILDER_FACTORY.newUserMapBuilder().withNodeIdentifier(name).build();
         } else {
             support = UNORDERED_SUPPORT;
-            emptyNode = ImmutableNodes.mapNode(schema.getQName());
+            emptyNode = BUILDER_FACTORY.newSystemMapBuilder().withNodeIdentifier(name).build();
         }
         return new MapModificationStrategy(support, schema, treeConfig, emptyNode);
     }