A helper class for printing indented text. This can be used stand-alone or, more commonly, from Builders.
By default, a PrintWriter to System.out is used as the Writer, but it is possible to change the Writer by passing a new one as a constructor argument.
Indention by default is 2 characters but can be changed by passing a different value as a constructor argument.
The following is an example usage. Note that within a "with" block you need to specify a parameter name so that this.println is not called instead of IndentPrinter.println:
 new IndentPrinter(new PrintWriter(out)).with { p ->
     p.printIndent()
     p.println('parent1')
     p.incrementIndent()
     p.printIndent()
     p.println('child 1')
     p.printIndent()
     p.println('child 2')
     p.decrementIndent()
     p.printIndent()
     p.println('parent2')
     p.flush()
 }
 
 The above example prints this to standard output:
 parent1 child 1 child 2 parent2
| Type | Name and description | 
|---|---|
| int | indentLevel | 
| Constructor and description | 
|---|
| IndentPrinter
                                ()Creates an IndentPrinter backed by a PrintWriter pointing to System.out, with an indent of two spaces. | 
| IndentPrinter
                                (Writer out)Creates an IndentPrinter backed by the supplied Writer, with an indent of two spaces. | 
| IndentPrinter
                                (Writer out, String indent)Creates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting. | 
| IndentPrinter
                                (Writer out, String indent, boolean addNewlines)Creates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting and the ability to override newline handling. | 
| IndentPrinter
                                (Writer out, String indent, boolean addNewlines, boolean autoIndent)Create an IndentPrinter to the given PrintWriter | 
| Type Params | Return Type | Name and description | 
|---|---|---|
|  | void | decrementIndent() | 
|  | void | flush() | 
|  | boolean | getAutoIndent() | 
|  | int | getIndentLevel() | 
|  | void | incrementIndent() | 
|  | void | print(String text)Prints a string. | 
|  | void | print(char c)Prints a character. | 
|  | void | printIndent()Prints the current indent level. | 
|  | void | println(String text)Prints a string followed by an end of line character. | 
|  | void | println()Prints an end-of-line character (if enabled via addNewLines property). | 
|  | void | setAutoIndent(boolean autoIndent) | 
|  | void | setIndentLevel(int indentLevel) | 
Creates an IndentPrinter backed by a PrintWriter pointing to System.out, with an indent of two spaces.
Creates an IndentPrinter backed by the supplied Writer, with an indent of two spaces.
out -  Writer to output toCreates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting.
out -  Writer to output toindent -  character(s) used to indent each lineCreates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting and the ability to override newline handling.
out -  Writer to output toindent -  character(s) used to indent each lineaddNewlines -  set to false to gobble all new lines (default true)Create an IndentPrinter to the given PrintWriter
out -  Writer to output toindent -  character(s) used to indent each lineaddNewlines -  set to false to gobble all new lines (default true)autoIndent -  set to true to make println() prepend the indent automatically (default false)Prints a string.
text -  String to be writtenPrints a character.
c -  char to be writtenPrints the current indent level.
Prints a string followed by an end of line character.
text -  String to be writtenPrints an end-of-line character (if enabled via addNewLines property). Defaults to outputting a single '\n' character but by using a custom Writer, e.g. PlatformLineWriter, you can get platform-specific end-of-line characters.
Copyright © 2003-2021 The Apache Software Foundation. All rights reserved.