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%2FModificationApplyOperation.java;h=933bf9c5704a9f788d0882dd2b1e6d4d06966bd5;hb=bf405586fc69c3781311cfb8ac19ba93b670ec8d;hp=115b844e92bd74bbe2eac610c01947ae55373bba;hpb=48a63837cd17eae10185aabcba681b70c985a7b4;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationApplyOperation.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationApplyOperation.java index 115b844e92..933bf9c570 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationApplyOperation.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModificationApplyOperation.java @@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree; import com.google.common.base.Optional; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; 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.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode; @@ -69,13 +70,34 @@ abstract class ModificationApplyOperation implements StoreTreeNode modification, boolean verifyChildren) + throws IllegalArgumentException; + + /** + * Return the tracking policy for this node's children. + * + * @return Tracking policy, may not be null. + */ + abstract ChildTrackingPolicy getChildPolicy(); + + /** + * Stage a merge operation into a {@link ModifiedNode} such that it will be processed correctly by + * {@link #apply(ModifiedNode, Optional, Version)}. This method is the context which is introducing this operation, + * and so any overheads are charged to whoever is in control of the access pattern. + * + * @param modification Original modification node + * @param value Value which should be merge into the modification + * @param version Data version as carried in the containing {@link InMemoryDataTreeModification} + */ + abstract void mergeIntoModifiedNode(ModifiedNode modification, NormalizedNode value, Version version); /** * Returns a suboperation for specified tree node @@ -85,4 +107,6 @@ abstract class ModificationApplyOperation implements StoreTreeNode getChild(PathArgument child); + + abstract void recursivelyVerifyStructure(NormalizedNode value); }