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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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.