Groovy Documentation

## groovy.util
[Java] 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

Authors:
  James Strachan

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

Method Summary
`void` | `decrementIndent()`
`void` | `flush()`
`int` | `getIndentLevel()`
`void` | `incrementIndent()`
`void` | `print(java.lang.String text)` Prints a string.
`void` | `print(char c)` Prints a character.
`void` | `printIndent()` Prints the current indent level.
`void` | `println(java.lang.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` | `setIndentLevel(int indentLevel)`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#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(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)

### IndentPrinter

    public 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

### IndentPrinter

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

Method Detail

### decrementIndent

    public void decrementIndent()

### flush

    public void flush()

### getIndentLevel

    public int getIndentLevel()

### incrementIndent

    public void incrementIndent()

### print

    public void print(java.lang.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(java.lang.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)

### setIndentLevel

    public void setIndentLevel(int indentLevel)

Groovy Documentation