X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FModifiedNode.java;h=49a7873ac7b27e3290b20b0bdb82b5abf8b81b65;hb=fce70654f7d387a8454c8441459ffff03ad0f1a2;hp=cae3e94d1c7bdd7aa2dc5a5550cb2e2b0d8166dd;hpb=bf405586fc69c3781311cfb8ac19ba93b670ec8d;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java index cae3e94d1c..49a7873ac7 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java @@ -66,6 +66,11 @@ final class ModifiedNode extends NodeModification implements StoreTreeNode validatedCurrent; + private TreeNode validatedNode; + private ModifiedNode(final PathArgument identifier, final Optional original, final ChildTrackingPolicy childPolicy) { this.identifier = identifier; this.original = original; @@ -162,12 +167,12 @@ final class ModifiedNode extends NodeModification implements StoreTreeNode currentMetadata = findOriginalMetadata(child, modVersion); - final ModifiedNode newlyCreated = new ModifiedNode(child, currentMetadata, childPolicy); + final ModifiedNode newlyCreated = new ModifiedNode(child, currentMetadata, childOper.getChildPolicy()); if (operation == LogicalOperation.MERGE && value != null) { /* * We are attempting to modify a previously-unmodified part of a MERGE node. If the @@ -190,7 +195,7 @@ final class ModifiedNode extends NodeModification implements StoreTreeNode> childData = ((NormalizedNodeContainer)value).getChild(child); if (childData.isPresent()) { - newlyCreated.updateValue(LogicalOperation.MERGE, childData.get()); + childOper.mergeIntoModifiedNode(newlyCreated, childData.get(), modVersion); } } @@ -221,6 +226,11 @@ final class ModifiedNode extends NodeModification implements StoreTreeNode current, final TreeNode node) { + this.validatedOp = Preconditions.checkNotNull(op); + this.validatedCurrent = Preconditions.checkNotNull(current); + this.validatedNode = Preconditions.checkNotNull(node); + } + + TreeNode getValidatedNode(final SchemaAwareApplyOperation op, final Optional current) { + return op.equals(validatedOp) && current.equals(validatedCurrent) ? validatedNode : null; + } }