From 37380a5c65e213bc5f34b521d8f8e7d315df7465 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 18 Nov 2020 15:24:24 +0100 Subject: [PATCH] Reduce list/map/entry strategy confusion Lists with a key are called 'Map' and contain 'MapEntry' Lists without a key are called a 'List' and do not have an entry strategy (yet). Change-Id: I0321eaebf1541a86778c63a2eaa68bdffcd8672a Signed-off-by: Robert Varga --- .../yang/data/impl/schema/tree/InMemoryDataTree.java | 4 ++-- ...tionStrategy.java => ListModificationStrategy.java} | 4 ++-- ...Strategy.java => MapEntryModificationStrategy.java} | 10 +++++----- .../data/impl/schema/tree/MapModificationStrategy.java | 2 +- .../impl/schema/tree/SchemaAwareApplyOperation.java | 2 +- .../yang/data/impl/schema/tree/MapEntryRootTest.java | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) rename yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/{UnkeyedListModificationStrategy.java => ListModificationStrategy.java} (97%) rename yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/{ListEntryModificationStrategy.java => MapEntryModificationStrategy.java} (87%) diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTree.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTree.java index 29cd2d4de8..1078f74b17 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTree.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTree.java @@ -82,8 +82,8 @@ final class InMemoryDataTree extends AbstractDataTreeTip implements DataTree { if (rootSchemaNode instanceof ListSchemaNode) { final PathArgument arg = treeConfig.getRootPath().getLastPathArgument(); if (arg instanceof NodeIdentifierWithPredicates) { - return maskMandatory ? new ListEntryModificationStrategy((ListSchemaNode) rootSchemaNode, treeConfig) - : ListEntryModificationStrategy.of((ListSchemaNode) rootSchemaNode, treeConfig); + return maskMandatory ? new MapEntryModificationStrategy((ListSchemaNode) rootSchemaNode, treeConfig) + : MapEntryModificationStrategy.of((ListSchemaNode) rootSchemaNode, treeConfig); } } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UnkeyedListModificationStrategy.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListModificationStrategy.java similarity index 97% rename from yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UnkeyedListModificationStrategy.java rename to yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListModificationStrategy.java index 9e40b18a08..4bfed11edd 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UnkeyedListModificationStrategy.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListModificationStrategy.java @@ -24,7 +24,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNo import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; -final class UnkeyedListModificationStrategy extends SchemaAwareApplyOperation { +final class ListModificationStrategy extends SchemaAwareApplyOperation { private static final NormalizedNodeContainerSupport ITEM_SUPPORT = new NormalizedNodeContainerSupport<>(UnkeyedListEntryNode.class, ImmutableUnkeyedListEntryNodeBuilder::create, ImmutableUnkeyedListEntryNodeBuilder::create); @@ -32,7 +32,7 @@ final class UnkeyedListModificationStrategy extends SchemaAwareApplyOperation
  • entryStrategy; private final UnkeyedListNode emptyNode; - UnkeyedListModificationStrategy(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { + ListModificationStrategy(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { entryStrategy = new DataNodeContainerModificationStrategy<>(ITEM_SUPPORT, schema, treeConfig); emptyNode = ImmutableNodes.listNode(schema.getQName()); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java similarity index 87% rename from yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java rename to yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java index be7c380052..c4ac9df8a6 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ListEntryModificationStrategy.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryModificationStrategy.java @@ -20,8 +20,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; -class ListEntryModificationStrategy extends DataNodeContainerModificationStrategy { - private static final class EnforcingMandatory extends ListEntryModificationStrategy { +class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy { + private static final class EnforcingMandatory extends MapEntryModificationStrategy { private final MandatoryLeafEnforcer enforcer; EnforcingMandatory(final ListSchemaNode schemaNode, final DataTreeConfiguration treeConfig, @@ -64,14 +64,14 @@ class ListEntryModificationStrategy extends DataNodeContainerModificationStrateg new NormalizedNodeContainerSupport<>(MapEntryNode.class, ImmutableMapEntryNodeBuilder::create, ImmutableMapEntryNodeBuilder::create); - ListEntryModificationStrategy(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { + MapEntryModificationStrategy(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { super(SUPPORT, schema, treeConfig); } - static @NonNull ListEntryModificationStrategy of(final ListSchemaNode schema, + static @NonNull MapEntryModificationStrategy of(final ListSchemaNode schema, final DataTreeConfiguration treeConfig) { final Optional enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig); return enforcer.isPresent() ? new EnforcingMandatory(schema, treeConfig, enforcer.get()) - : new ListEntryModificationStrategy(schema, treeConfig); + : new MapEntryModificationStrategy(schema, treeConfig); } } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapModificationStrategy.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapModificationStrategy.java index a956d653a9..25f508c4be 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapModificationStrategy.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapModificationStrategy.java @@ -37,7 +37,7 @@ final class MapModificationStrategy extends Invisible { private MapModificationStrategy(final NormalizedNodeContainerSupport support, final ListSchemaNode schema, final DataTreeConfiguration treeConfig, final MapNode emptyNode) { - super(support, treeConfig, ListEntryModificationStrategy.of(schema, treeConfig)); + super(support, treeConfig, MapEntryModificationStrategy.of(schema, treeConfig)); this.emptyNode = requireNonNull(emptyNode); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java index 066d1b89b7..ae8440ce84 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java @@ -99,7 +99,7 @@ abstract class SchemaAwareApplyOperation extends Modificat final List keyDefinition = schemaNode.getKeyDefinition(); final SchemaAwareApplyOperation op; if (keyDefinition == null || keyDefinition.isEmpty()) { - op = new UnkeyedListModificationStrategy(schemaNode, treeConfig); + op = new ListModificationStrategy(schemaNode, treeConfig); } else { op = MapModificationStrategy.of(schemaNode, treeConfig); } diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryRootTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryRootTest.java index c38ea90f0e..ea3854b445 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryRootTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MapEntryRootTest.java @@ -30,6 +30,6 @@ public class MapEntryRootTest extends AbstractTestModelTest { final InMemoryDataTree imdt = (InMemoryDataTree) dataTree; final InMemoryDataTreeModification mod = imdt.takeSnapshot().newModification(); final ModificationApplyOperation strategy = mod.getStrategy(); - assertThat(strategy, instanceOf(ListEntryModificationStrategy.class)); + assertThat(strategy, instanceOf(MapEntryModificationStrategy.class)); } } -- 2.36.6