code: private List<OperationPair> createMutateOperationPairs() {
      List<OperationPair> ops = Lists.newArrayList();
  
      if (originalRoot == null) {
        // The original tree was empty, so treat all nodes in this tree as ADDs.
        return createAddOperations(root);
      }
  
      // Add the mutate operations required to apply changes to the root node.
      Set<ProductDimension> dimensionsToProcess = addMutateOperations(originalRoot, root, ops);
  
      // Add additional mutate operations for the remaining child dimensions to process.
      addMutateOperationsByParent(originalRoot, root, dimensionsToProcess, ops);
      return ops;
    }
docs: Creates and returns the pairs of node/operation that will apply the changes made to this tree.