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()Decreases the indentation level by one. |
|
public void |
flush()Flushes the underlying writer. |
|
public boolean |
getAutoIndent()Indicates whether println(String) should emit indentation automatically. |
|
public int |
getIndentLevel()Returns the current indentation level. |
|
public void |
incrementIndent()Increases the indentation level by one. |
|
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)Enables or disables automatic indentation for println(String). |
|
public void |
setIndentLevel(int indentLevel)Sets the indentation level. |
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)Decreases the indentation level by one.
Flushes the underlying writer.
Indicates whether println(String) should emit indentation automatically.
true if automatic indentation is enabledReturns the current indentation level.
Increases the indentation level by one.
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.
Enables or disables automatic indentation for println(String).
autoIndent - true to enable automatic indentationSets the indentation level.
indentLevel - the new indentation levelCopyright © 2003-2026 The Apache Software Foundation. All rights reserved.