org.codehaus.plexus.util.xml

## Class PrettyPrintXMLWriter

- java.lang.Object
- - org.codehaus.plexus.util.xml.PrettyPrintXMLWriter

All Implemented Interfaces:
  XMLWriter

Direct Known Subclasses:
  CompactXMLWriter

    public class PrettyPrintXMLWriter
    extends Object
    implements XMLWriter

Implementation of XMLWriter which emits nicely formatted documents.

Version:
  $Id: PrettyPrintXMLWriter.java 8660 2010-03-05 21:50:36Z hboutemy $

### Field Summary

Fields
`protected static String` `LS` Line separator ("\n" on UNIX)

### Constructor Summary

Constructors
Constructor and Description
`PrettyPrintXMLWriter(PrintWriter writer)`
`PrettyPrintXMLWriter(PrintWriter writer, String lineIndenter)`
`PrettyPrintXMLWriter(PrintWriter writer, String encoding, String doctype)`
`PrettyPrintXMLWriter(PrintWriter writer, String lineIndenter, String encoding, String doctype)`
`PrettyPrintXMLWriter(PrintWriter writer, String lineIndenter, String lineSeparator, String encoding, String doctype)`
`PrettyPrintXMLWriter(Writer writer)`
`PrettyPrintXMLWriter(Writer writer, String lineIndenter)`
`PrettyPrintXMLWriter(Writer writer, String encoding, String doctype)`
`PrettyPrintXMLWriter(Writer writer, String lineIndenter, String encoding, String doctype)`

### Method Summary

Methods
`void` `addAttribute(String key, String value)`
`void` `endElement()`
`protected void` `endOfLine()` Write the end of line character (using specified line separator) and start new line with indentation
`protected int` `getDepth()` Get the current depth in the xml indentation
`protected String` `getDocType()` Get the docType in the xml
`protected LinkedList` `getElementStack()`
`protected String` `getEncoding()` Get the current encoding in the xml
`protected String` `getLineIndenter()` Get the string used as line indenter
`protected String` `getLineSeparator()` Get the string used as line separator or LS if not set.
`protected PrintWriter` `getWriter()` Get the underlying writer
`protected void` `setDepth(int depth)` Set the depth in the xml indentation
`protected void` `setDocType(String docType)` Set the docType in the xml
`protected void` `setEncoding(String encoding)` Set the encoding in the xml
`protected void` `setLineIndenter(String lineIndenter)` Set the string used as line indenter
`protected void` `setLineSeparator(String lineSeparator)` Set the string used as line separator
`protected void` `setWriter(PrintWriter writer)` Set the underlying writer
`void` `startElement(String name)`
`void` `writeMarkup(String text)`
`void` `writeText(String text)`

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

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

### Field Detail

#### LS

    protected static final String LS

Line separator ("\n" on UNIX)

### Constructor Detail

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(PrintWriter writer,
                        String lineIndenter)

Parameters:
  `writer` - not null
  `lineIndenter` - could be null, but the normal way is some spaces.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(Writer writer,
                        String lineIndenter)

Parameters:
  `writer` - not null
  `lineIndenter` - could be null, but the normal way is some spaces.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(PrintWriter writer)

Parameters:
  `writer` - not null

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(Writer writer)

Parameters:
  `writer` - not null

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(PrintWriter writer,
                        String lineIndenter,
                        String encoding,
                        String doctype)

Parameters:
  `writer` - not null
  `lineIndenter` - could be null, but the normal way is some spaces.
  `encoding` - could be null or invalid.
  `doctype` - could be null.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(Writer writer,
                        String lineIndenter,
                        String encoding,
                        String doctype)

Parameters:
  `writer` - not null
  `lineIndenter` - could be null, but the normal way is some spaces.
  `encoding` - could be null or invalid.
  `doctype` - could be null.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(PrintWriter writer,
                        String encoding,
                        String doctype)

Parameters:
  `writer` - not null
  `encoding` - could be null or invalid.
  `doctype` - could be null.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(Writer writer,
                        String encoding,
                        String doctype)

Parameters:
  `writer` - not null
  `encoding` - could be null or invalid.
  `doctype` - could be null.

#### PrettyPrintXMLWriter

    public PrettyPrintXMLWriter(PrintWriter writer,
                        String lineIndenter,
                        String lineSeparator,
                        String encoding,
                        String doctype)

Parameters:
  `writer` - not null
  `lineIndenter` - could be null, but the normal way is some spaces.
  `lineSeparator` - could be null, but the normal way is valid line separator ("\n" on UNIX).
  `encoding` - could be null or invalid.
  `doctype` - could be null.

### Method Detail

#### startElement

    public void startElement(String name)

Specified by:
  `startElement` in interface `XMLWriter`

#### writeText

    public void writeText(String text)

Specified by:
  `writeText` in interface `XMLWriter`

#### writeMarkup

    public void writeMarkup(String text)

Specified by:
  `writeMarkup` in interface `XMLWriter`

#### addAttribute

    public void addAttribute(String key,
                    String value)

Specified by:
  `addAttribute` in interface `XMLWriter`

#### endElement

    public void endElement()

Specified by:
  `endElement` in interface `XMLWriter`

#### getLineIndenter

    protected String getLineIndenter()

Get the string used as line indenter

Returns:
  the line indenter

#### setLineIndenter

    protected void setLineIndenter(String lineIndenter)

Set the string used as line indenter

Parameters:
  `lineIndenter` - new line indenter, could be null, but the normal way is some spaces.

#### getLineSeparator

    protected String getLineSeparator()

Get the string used as line separator or LS if not set.

Returns:
  the line separator
See Also:
  `LS`

#### setLineSeparator

    protected void setLineSeparator(String lineSeparator)

Set the string used as line separator

Parameters:
  `lineSeparator` - new line separator, could be null but the normal way is valid line separator ("\n" on UNIX).

#### endOfLine

    protected void endOfLine()

Write the end of line character (using specified line separator) and start new line with indentation

See Also:
  `getLineIndenter()`, `getLineSeparator()`

#### setWriter

    protected void setWriter(PrintWriter writer)

Set the underlying writer

Parameters:
  `writer` - not null writer

#### getWriter

    protected PrintWriter getWriter()

Get the underlying writer

Returns:
  the underlying writer

#### setDepth

    protected void setDepth(int depth)

Set the depth in the xml indentation

Parameters:
  `depth` - new depth

#### getDepth

    protected int getDepth()

Get the current depth in the xml indentation

Returns:
  the current depth

#### setEncoding

    protected void setEncoding(String encoding)

Set the encoding in the xml

Parameters:
  `encoding` - new encoding

#### getEncoding

    protected String getEncoding()

Get the current encoding in the xml

Returns:
  the current encoding

#### setDocType

    protected void setDocType(String docType)

Set the docType in the xml

Parameters:
  `docType` - new docType

#### getDocType

    protected String getDocType()

Get the docType in the xml

Returns:
  the current docType

#### getElementStack

    protected LinkedList getElementStack()

Returns:
  the current elementStack;