code: public void apply( Traversal order,
                         Operation operation,
                         Type firstType,
                         Type... additionalTypes ) {
          apply(order, operation, EnumSet.of(firstType, additionalTypes));
      }
docs: Walk the plan tree starting in the specified traversal order, and apply the supplied operation to every plan node that is
  one of the supplied types.
  
  @param order the order in which the subtree should be traversed; may not be null
  @param operation the operation that should be applied; may not be null
  @param firstType the first type of node to which the operation should be applied; may not be null
  @param additionalTypes the additional types of nodes to which the operation should be applied; may not be null