Package groovy.text.markup

# Class DelegatingIndentWriter

java.lang.Object
java.io.Writer
groovy.text.markup.DelegatingIndentWriter

All Implemented Interfaces:
  `Closeable`, `Flushable`, `Appendable`, `AutoCloseable`

public class DelegatingIndentWriter extends Writer
A writer which delegates to another writer and supports an additional indenting level.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SPACES`
  Four-space indentation unit.
  `static final String`
  `TAB`
  Tab indentation unit.

  ### Fields inherited from class java.io.Writer

  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DelegatingIndentWriter(Writer delegate)`
  Creates an indenting writer that uses `SPACES` for each indentation level.
  `DelegatingIndentWriter(Writer delegate, String indentString)`
  Creates an indenting writer that delegates output to another writer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Writer`
  `append(char c)`
  `Writer`
  `append(CharSequence csq)`
  `Writer`
  `append(CharSequence csq, int start, int end)`
  `void`
  `close()`
  `void`
  `flush()`
  `int`
  `next()`
  Increases the current indentation level.
  `int`
  `previous()`
  Decreases the current indentation level.
  `void`
  `write(char[] cbuf)`
  `void`
  `write(char[] cbuf, int off, int len)`
  `void`
  `write(int c)`
  `void`
  `write(String str)`
  `void`
  `write(String str, int off, int len)`
  `void`
  `writeIndent()`
  Writes the current indentation prefix to the delegate writer.

  ### Methods inherited from class java.io.Writer

  `nullWriter`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### SPACES

    public static final String SPACES
    Four-space indentation unit.
    See Also:
      - Constant Field Values

  - ### TAB

    public static final String TAB
    Tab indentation unit.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DelegatingIndentWriter

    public DelegatingIndentWriter(Writer delegate)
    Creates an indenting writer that uses `SPACES` for each indentation level.
    Parameters:
      `delegate` - writer that receives the rendered output

  - ### DelegatingIndentWriter

    public DelegatingIndentWriter(Writer delegate, String indentString)
    Creates an indenting writer that delegates output to another writer.
    Parameters:
      `delegate` - writer that receives the rendered output
      `indentString` - indentation unit written for each nesting level

- ## Method Details

  - ### write

    public void write(int c) throws IOException
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(char[] cbuf) throws IOException
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(char[] cbuf, int off, int len) throws IOException
    Specified by:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(String str) throws IOException
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(String str, int off, int len) throws IOException
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### append

    public Writer append(CharSequence csq) throws IOException
    Specified by:
      `append` in interface `Appendable`
    Overrides:
      `append` in class `Writer`
    Throws:
      `IOException`

  - ### append

    public Writer append(CharSequence csq, int start, int end) throws IOException
    Specified by:
      `append` in interface `Appendable`
    Overrides:
      `append` in class `Writer`
    Throws:
      `IOException`

  - ### append

    public Writer append(char c) throws IOException
    Specified by:
      `append` in interface `Appendable`
    Overrides:
      `append` in class `Writer`
    Throws:
      `IOException`

  - ### flush

    public void flush() throws IOException
    Specified by:
      `flush` in interface `Flushable`
    Specified by:
      `flush` in class `Writer`
    Throws:
      `IOException`

  - ### close

    public void close() throws IOException
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Specified by:
      `close` in class `Writer`
    Throws:
      `IOException`

  - ### next

    public int next()
    Increases the current indentation level.
    Returns:
      the new indentation level

  - ### previous

    public int previous()
    Decreases the current indentation level.
    Returns:
      the new indentation level

  - ### writeIndent

    public void writeIndent() throws IOException
    Writes the current indentation prefix to the delegate writer.
    Throws:
      `IOException` - if writing the indentation fails