Add UniqueValidation
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / StructuralContainerModificationStrategy.java
index 20ab7523d9cc050c35b92cac0a65566730c2a43a..d3a418ee9834e1f38669136f9d78f7b231bd8fb1 100644 (file)
@@ -10,11 +10,10 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 
 /**
  * Structural containers are special in that they appear when implied by child nodes and disappear whenever they are
@@ -27,21 +26,20 @@ import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 final class StructuralContainerModificationStrategy extends ContainerModificationStrategy {
     private final ContainerNode emptyNode;
 
-    StructuralContainerModificationStrategy(final ContainerSchemaNode schema, final DataTreeConfiguration treeConfig) {
+    StructuralContainerModificationStrategy(final ContainerLike schema, final DataTreeConfiguration treeConfig) {
         super(schema, treeConfig);
         this.emptyNode = ImmutableNodes.containerNode(schema.getQName());
     }
 
     @Override
-    Optional<TreeNode> apply(final ModifiedNode modification, final Optional<TreeNode> storeMeta,
+    Optional<? extends TreeNode> apply(final ModifiedNode modification, final Optional<? extends TreeNode> storeMeta,
             final Version version) {
         return AutomaticLifecycleMixin.apply(super::apply, this::applyWrite, emptyNode, modification, storeMeta,
             version);
     }
 
     @Override
-    protected void checkTouchApplicable(final ModificationPath path, final NodeModification modification,
-            final Optional<TreeNode> current, final Version version) throws DataValidationFailedException {
-        checkTouchApplicable(path, modification, current, version, emptyNode);
+    TreeNode defaultTreeNode() {
+        return defaultTreeNode(emptyNode);
     }
 }