code: public static IndentingPrintWriter wrap(Appendable delegate, Indentation indentation) {
          return delegate instanceof IndentingPrintWriter
                  ? ((IndentingPrintWriter) delegate).withIndentation(indentation)
                  : new IndentingPrintWriter(delegate, indentation);
      }
docs: Returns an indenting printwriter around the given {@code delegate}.
  If the {@code delegate} printwriter is already an indenting printwriter, it will simply be returned as-is.
  If the {@code delegate} printwriter is not yet an indending printwriter, a new indenting printwriter class
  will be created to wrap the delegate using the specified <code>indentation</code>.
  
  @param delegate    The delegate to turn into an indenting printwriter.
  @param indentation The indentation to use for the indenting printwriter
  (optional, specify <code>null</code> to use the default indentation).
  @return The indenting delegate writer.
  @see Indentation#DEFAULT