public class IndentPrinter extends Object
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
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 |
---|---|---|
public void |
decrementIndent() | |
public void |
flush() | |
public boolean |
getAutoIndent() | |
public int |
getIndentLevel() | |
public void |
incrementIndent() | |
public void |
print(String text) Prints a string. | |
public void |
print(char c) Prints a character. | |
public void |
printIndent() Prints the current indent level. | |
public void |
println(String text) Prints a string followed by an end of line character. | |
public void |
println() Prints an end-of-line character (if enabled via addNewLines property). | |
public void |
setAutoIndent(boolean autoIndent) | |
public void |
setIndentLevel(int indentLevel) |
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
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.
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/groovy/util/IndentPrinter.html