org.jfree.xml.writer

## Class XMLWriterSupport

- java.lang.Object
- - org.jfree.xml.writer.XMLWriterSupport

Direct Known Subclasses:
  XMLWriter

    public class XMLWriterSupport
    extends java.lang.Object

A support class for writing XML files.

Author:
  Thomas Morgner

### Field Summary

Fields
`static boolean` `CLOSE` A constant for close.
`static int` `CLOSE_TAG_DECREASE` A constant for controlling the indent function.
`static int` `INDENT_ONLY` A constant for controlling the indent function.
`static boolean` `OPEN` A constant for open.
`static int` `OPEN_TAG_INCREASE` A constant for controlling the indent function.

### Constructor Summary

Constructors
Constructor and Description
`XMLWriterSupport()` Default Constructor.
`XMLWriterSupport(SafeTagList safeTags, int indentLevel)` Creates a new support instance.
`XMLWriterSupport(SafeTagList safeTags, int indentLevel, java.lang.String indentString)` Creates a new support instance.

### Method Summary

Methods
`void` `allowLineBreak()` Forces a linebreak on the next call to writeTag or writeCloseTag.
`protected void` `decreaseIndent()` Decreates the indention by one level.
`void` `endBlock()` Ends the current block by decreasing the indent level.
`int` `getIndentLevel()` Returns the current indent level.
`static java.lang.String` `getLineSeparator()` Returns the line separator.
`SafeTagList` `getSafeTags()` Returns the list of safe tags.
`protected void` `increaseIndent()` Increases the indention by one level.
`void` `indent(java.io.Writer writer, int increase)` Indent the line.
`static java.lang.String` `normalize(java.lang.String s)` Normalises a string, replacing certain characters with their escape sequences so that the XML text is not corrupted.
`void` `startBlock()` Starts a new block by increasing the indent level.
`void` `writeCloseTag(java.io.Writer w, java.lang.String tag)` Writes a closing XML tag.
`void` `writeTag(java.io.Writer w, java.lang.String name)` Writes an opening XML tag that has no attributes.
`void` `writeTag(java.io.Writer w, java.lang.String name, AttributeList attributes, boolean close)` Writes an opening XML tag along with a list of attribute/value pairs.
`void` `writeTag(java.io.Writer w, java.lang.String name, java.util.Properties attributes, boolean close)` Deprecated. use the attribute list instead of the properties.
`void` `writeTag(java.io.Writer w, java.lang.String name, java.lang.String attributeName, java.lang.String attributeValue, boolean close)` Writes an opening XML tag with an attribute/value pair.

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

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

### Field Detail

#### OPEN_TAG_INCREASE

    public static final int OPEN_TAG_INCREASE

A constant for controlling the indent function.

See Also:
  Constant Field Values

#### CLOSE_TAG_DECREASE

    public static final int CLOSE_TAG_DECREASE

A constant for controlling the indent function.

See Also:
  Constant Field Values

#### INDENT_ONLY

    public static final int INDENT_ONLY

A constant for controlling the indent function.

See Also:
  Constant Field Values

#### CLOSE

    public static final boolean CLOSE

A constant for close.

See Also:
  Constant Field Values

#### OPEN

    public static final boolean OPEN

A constant for open.

See Also:
  Constant Field Values

### Constructor Detail

#### XMLWriterSupport

    public XMLWriterSupport()

Default Constructor. The created XMLWriterSupport will not have no safe tags and starts with an indention level of 0.

#### XMLWriterSupport

    public XMLWriterSupport(SafeTagList safeTags,
                    int indentLevel)

Creates a new support instance.

Parameters:
  `safeTags` - tags that are safe for line breaks.
  `indentLevel` - the index level.

#### XMLWriterSupport

    public XMLWriterSupport(SafeTagList safeTags,
                    int indentLevel,
                    java.lang.String indentString)

Creates a new support instance.

Parameters:
  `safeTags` - the tags that are safe for line breaks.
  `indentLevel` - the indent level.
  `indentString` - the indent string.

### Method Detail

#### startBlock

    public void startBlock()
                    throws java.io.IOException

Starts a new block by increasing the indent level.

Throws:
  `java.io.IOException` - if an IO error occurs.

#### endBlock

    public void endBlock()
                  throws java.io.IOException

Ends the current block by decreasing the indent level.

Throws:
  `java.io.IOException` - if an IO error occurs.

#### allowLineBreak

    public void allowLineBreak()
                        throws java.io.IOException

Forces a linebreak on the next call to writeTag or writeCloseTag.

Throws:
  `java.io.IOException` - if an IO error occurs.

#### getLineSeparator

    public static java.lang.String getLineSeparator()

Returns the line separator.

Returns:
  the line separator.

#### writeTag

    public void writeTag(java.io.Writer w,
                java.lang.String name)
                  throws java.io.IOException

Writes an opening XML tag that has no attributes.

Parameters:
  `w` - the writer.
  `name` - the tag name.
Throws:
  `java.io.IOException` - if there is an I/O problem.

#### writeCloseTag

    public void writeCloseTag(java.io.Writer w,
                     java.lang.String tag)
                       throws java.io.IOException

Writes a closing XML tag.

Parameters:
  `w` - the writer.
  `tag` - the tag name.
Throws:
  `java.io.IOException` - if there is an I/O problem.

#### writeTag

    public void writeTag(java.io.Writer w,
                java.lang.String name,
                java.lang.String attributeName,
                java.lang.String attributeValue,
                boolean close)
                  throws java.io.IOException

Writes an opening XML tag with an attribute/value pair.

Parameters:
  `w` - the writer.
  `name` - the tag name.
  `attributeName` - the attribute name.
  `attributeValue` - the attribute value.
  `close` - controls whether the tag is closed.
Throws:
  `java.io.IOException` - if there is an I/O problem.

#### writeTag

    public void writeTag(java.io.Writer w,
                java.lang.String name,
                java.util.Properties attributes,
                boolean close)
                  throws java.io.IOException

Deprecated. use the attribute list instead of the properties.
Writes an opening XML tag along with a list of attribute/value pairs.

Parameters:
  `w` - the writer.
  `name` - the tag name.
  `attributes` - the attributes.
  `close` - controls whether the tag is closed.
Throws:
  `java.io.IOException` - if there is an I/O problem.

#### writeTag

    public void writeTag(java.io.Writer w,
                java.lang.String name,
                AttributeList attributes,
                boolean close)
                  throws java.io.IOException

Writes an opening XML tag along with a list of attribute/value pairs.

Parameters:
  `w` - the writer.
  `name` - the tag name.
  `attributes` - the attributes.
  `close` - controls whether the tag is closed.
Throws:
  `java.io.IOException` - if there is an I/O problem.

#### normalize

    public static java.lang.String normalize(java.lang.String s)

Normalises a string, replacing certain characters with their escape sequences so that the XML text is not corrupted.

Parameters:
  `s` - the string.
Returns:
  the normalised string.

#### indent

    public void indent(java.io.Writer writer,
              int increase)
                throws java.io.IOException

Indent the line. Called for proper indenting in various places.

Parameters:
  `writer` - the writer which should receive the indentention.
  `increase` - the current indent level.
Throws:
  `java.io.IOException` - if writing the stream failed.

#### getIndentLevel

    public int getIndentLevel()

Returns the current indent level.

Returns:
  the current indent level.

#### increaseIndent

    protected void increaseIndent()

Increases the indention by one level.

#### decreaseIndent

    protected void decreaseIndent()

Decreates the indention by one level.

#### getSafeTags

    public SafeTagList getSafeTags()

Returns the list of safe tags.

Returns:
  The list.