## 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
`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
`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
`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.