BUG-4295: instantiate MERGE operations lazily
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / MinMaxElementsValidation.java
index 932f20a810092d5d9543a5cabb94ebe0446deaf9..ede5bcc067b227719a92655359c82df1a013ad75 100644 (file)
@@ -114,17 +114,17 @@ final class MinMaxElementsValidation extends SchemaAwareApplyOperation {
         for (final ModifiedNode modChild : modification.getChildren()) {
             switch (modChild.getOperation()) {
                 case WRITE:
-                    if (!modChild.getOriginal().isPresent()) {
+                    if (!checkOriginalPresent(modChild)) {
                         result++;
                     }
                     break;
                 case MERGE:
-                    if (!current.isPresent()) {
+                    if (!checkOriginalPresent(modChild)) {
                         result++;
                     }
                     break;
                 case DELETE:
-                    if (modChild.getOriginal().isPresent()) {
+                    if (checkOriginalPresent(modChild)) {
                         result--;
                     }
                     break;
@@ -139,6 +139,10 @@ final class MinMaxElementsValidation extends SchemaAwareApplyOperation {
         return result;
     }
 
+    private static boolean checkOriginalPresent(ModifiedNode child) {
+        return child.getOriginal().isPresent();
+    }
+
     @Override
     protected void checkTouchApplicable(final YangInstanceIdentifier path, final NodeModification modification,
             final Optional<TreeNode> current) throws DataValidationFailedException {
@@ -191,4 +195,14 @@ final class MinMaxElementsValidation extends SchemaAwareApplyOperation {
     protected ChildTrackingPolicy getChildPolicy() {
         return delegate.getChildPolicy();
     }
+
+    @Override
+    void mergeIntoModifiedNode(final ModifiedNode node, final NormalizedNode<?, ?> value, final Version version) {
+        delegate.mergeIntoModifiedNode(node, value, version);
+    }
+
+    @Override
+    void recursivelyVerifyStructure(NormalizedNode<?, ?> value) {
+        delegate.recursivelyVerifyStructure(value);
+    }
 }