Seal ModificationApplyOperation
[yangtools.git] / data / yang-data-tree-ri / src / main / java / org / opendaylight / yangtools / yang / data / tree / impl / MapEntryModificationStrategy.java
index f1074a115778dac7cd068d41ecebcda068cd12e1..0a35aeec9151fb3825edbd8fa03dfbb6be62c5e4 100644 (file)
@@ -12,15 +12,16 @@ import static java.util.Objects.requireNonNull;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
-import org.opendaylight.yangtools.yang.data.spi.tree.TreeNode;
-import org.opendaylight.yangtools.yang.data.spi.tree.Version;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
+import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
-class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy<ListSchemaNode> {
+sealed class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy<ListSchemaNode> {
     private static final class EnforcingMandatory extends MapEntryModificationStrategy {
         private final MandatoryLeafEnforcer enforcer;
 
@@ -31,7 +32,7 @@ class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy
         }
 
         @Override
-        void mandatoryVerifyValueChildren(final NormalizedNode writtenValue) {
+        void mandatoryVerifyValueChildren(final DistinctNodeContainer<?, ?> writtenValue) {
             enforcer.enforceOnData(writtenValue);
         }
 
@@ -70,8 +71,8 @@ class MapEntryModificationStrategy extends DataNodeContainerModificationStrategy
 
     static @NonNull MapEntryModificationStrategy of(final ListSchemaNode schema,
             final DataTreeConfiguration treeConfig) {
-        final Optional<MandatoryLeafEnforcer> enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig);
-        return enforcer.isPresent() ? new EnforcingMandatory(schema, treeConfig, enforcer.get())
-                : new MapEntryModificationStrategy(schema, treeConfig);
+        final var enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig);
+        return enforcer != null ? new EnforcingMandatory(schema, treeConfig, enforcer)
+            : new MapEntryModificationStrategy(schema, treeConfig);
     }
 }