- protected abstract TreeNode applySubtreeChange(ModifiedNode modification,
- TreeNode currentMeta, Version version);
+ /**
+ * Apply a nested operation. Since there may not actually be a nested operation
+ * to be applied, implementations of this method are responsible for calling
+ * {@link ModifiedNode#resolveModificationType(ModificationType)} as appropriate.
+ *
+ * @param modification Modified node
+ * @param currentMeta Store Metadata Node on which NodeModification should be applied
+ * @param version New subtree version of parent node
+ * @return A sealed TreeNode representing applied operation.
+ */
+ protected abstract TreeNode applyTouch(ModifiedNode modification, TreeNode currentMeta, Version version);