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;
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);
}
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);
}