Groovy 2.2.0

groovy.util
[Java] Class IndentPrinter

java.lang.Object
  groovy.util.IndentPrinter

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
 
Authors:
James Strachan


Constructor Summary
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

 
Method Summary
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)

 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Constructor Detail

IndentPrinter

public IndentPrinter()
Creates an IndentPrinter backed by a PrintWriter pointing to System.out, with an indent of two spaces.
See Also:
IndentPrinter(Writer, String)


IndentPrinter

public IndentPrinter(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)


IndentPrinter

public IndentPrinter(Writer out, 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


IndentPrinter

public 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.
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)


IndentPrinter

public IndentPrinter(Writer out, 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 Detail

decrementIndent

public void decrementIndent()


flush

public void flush()


getAutoIndent

public boolean getAutoIndent()


getIndentLevel

public int getIndentLevel()


incrementIndent

public void incrementIndent()


print

public void print(String text)
Prints a string.
Parameters:
text - String to be written


print

public void print(char c)
Prints a character.
Parameters:
c - char to be written


printIndent

public void printIndent()
Prints the current indent level.


println

public void println(String text)
Prints a string followed by an end of line character.
Parameters:
text - String to be written


println

public 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)


setAutoIndent

public void setAutoIndent(boolean autoIndent)


setIndentLevel

public void setIndentLevel(int indentLevel)


 

Copyright © 2003-2013 The Codehaus. All rights reserved.