Package groovy.util
Class IndentPrinter
java.lang.Object
groovy.util.IndentPrinter
public class IndentPrinter
extends java.lang.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 SummaryConstructors Constructor Description IndentPrinter()Creates an IndentPrinter backed by a PrintWriter pointing to System.out, with an indent of two spaces.IndentPrinter(java.io.Writer out)Creates an IndentPrinter backed by the supplied Writer, with an indent of two spaces.IndentPrinter(java.io.Writer out, java.lang.String indent)Creates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting.IndentPrinter(java.io.Writer out, java.lang.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(java.io.Writer out, java.lang.String indent, boolean addNewlines, boolean autoIndent)Create an IndentPrinter to the given PrintWriter
- 
Method SummaryModifier and Type Method Description voiddecrementIndent()voidflush()booleangetAutoIndent()intgetIndentLevel()voidincrementIndent()voidprint(char c)Prints a character.voidprint(java.lang.String text)Prints a string.voidprintIndent()Prints the current indent level.voidprintln()Prints an end-of-line character (if enabled via addNewLines property).voidprintln(java.lang.String text)Prints a string followed by an end of line character.voidsetAutoIndent(boolean autoIndent)voidsetIndentLevel(int indentLevel)Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Constructor Details- 
IndentPrinterpublic IndentPrinter()Creates an IndentPrinter backed by a PrintWriter pointing to System.out, with an indent of two spaces.- See Also:
- IndentPrinter(Writer, String)
 
- 
IndentPrinterpublic IndentPrinter(java.io.Writer out)Creates an IndentPrinter backed by the supplied Writer, with an indent of two spaces.- Parameters:
- out- Writer to output to
- See Also:
- IndentPrinter(Writer, String)
 
- 
IndentPrinterpublic IndentPrinter(java.io.Writer out, java.lang.String indent)Creates an IndentPrinter backed by the supplied Writer, with a user-supplied String to be used for indenting.- Parameters:
- out- Writer to output to
- indent- character(s) used to indent each line
 
- 
IndentPrinterpublic IndentPrinter(java.io.Writer out, java.lang.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.- Parameters:
- out- Writer to output to
- indent- character(s) used to indent each line
- addNewlines- set to false to gobble all new lines (default true)
 
- 
IndentPrinterpublic IndentPrinter(java.io.Writer out, java.lang.String indent, boolean addNewlines, boolean autoIndent)Create an IndentPrinter to the given PrintWriter- Parameters:
- out- Writer to output to
- indent- character(s) used to indent each line
- addNewlines- set to false to gobble all new lines (default true)
- autoIndent- set to true to make println() prepend the indent automatically (default false)
 
 
- 
- 
Method Details- 
printlnpublic void println(java.lang.String text)Prints a string followed by an end of line character.- Parameters:
- text- String to be written
 
- 
printpublic void print(java.lang.String text)Prints a string.- Parameters:
- text- String to be written
 
- 
printpublic void print(char c)Prints a character.- Parameters:
- c- char to be written
 
- 
printIndentpublic void printIndent()Prints the current indent level.
- 
printlnpublic void println()Prints 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.- See Also:
- IndentPrinter(Writer, String, boolean)
 
- 
incrementIndentpublic void incrementIndent()
- 
decrementIndentpublic void decrementIndent()
- 
getIndentLevelpublic int getIndentLevel()
- 
setIndentLevelpublic void setIndentLevel(int indentLevel)
- 
getAutoIndentpublic boolean getAutoIndent()
- 
setAutoIndentpublic void setAutoIndent(boolean autoIndent)
- 
flushpublic void flush()
 
-