Merge "Fix checkstyle if-statements must use braces in yang-data-operations"
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / OperationWithModification.java
index 2cd757d0425d558ccab4cb0e3266d7cf43838c2d..102c4c7841af77449674b98a5308a9653a4aadd8 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 
 import com.google.common.base.Optional;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version;
@@ -51,18 +51,25 @@ final class OperationWithModification {
     public static OperationWithModification from(final ModificationApplyOperation operation,
             final ModifiedNode modification) {
         return new OperationWithModification(operation, modification);
-
     }
 
     public void merge(final NormalizedNode<?, ?> data) {
         modification.merge(data);
         applyOperation.verifyStructure(modification);
-
     }
 
     public OperationWithModification forChild(final PathArgument childId) {
-        ModifiedNode childMod = modification.modifyChild(childId);
-        Optional<ModificationApplyOperation> childOp = applyOperation.getChild(childId);
-        return from(childOp.get(),childMod);
+        ModificationApplyOperation childOp = applyOperation.getChild(childId).get();
+
+        final boolean isOrdered;
+        if (childOp instanceof SchemaAwareApplyOperation) {
+            isOrdered = ((SchemaAwareApplyOperation) childOp).isOrdered();
+        } else {
+            isOrdered = true;
+        }
+
+        ModifiedNode childMod = modification.modifyChild(childId, isOrdered);
+
+        return from(childOp,childMod);
     }
 }