Class XMLWriterSupport

  • Direct Known Subclasses:
    XMLWriter

    public class XMLWriterSupport
    extends Object
    A support class for writing XML files.
    Author:
    Thomas Morgner
    • 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
    • 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,
                                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 IOException
        Starts a new block by increasing the indent level.
        Throws:
        IOException - if an IO error occurs.
      • endBlock

        public void endBlock()
                      throws IOException
        Ends the current block by decreasing the indent level.
        Throws:
        IOException - if an IO error occurs.
      • allowLineBreak

        public void allowLineBreak()
                            throws IOException
        Forces a linebreak on the next call to writeTag or writeCloseTag.
        Throws:
        IOException - if an IO error occurs.
      • getLineSeparator

        public static String getLineSeparator()
        Returns the line separator.
        Returns:
        the line separator.
      • writeTag

        public void writeTag​(Writer w,
                             String name)
                      throws IOException
        Writes an opening XML tag that has no attributes.
        Parameters:
        w - the writer.
        name - the tag name.
        Throws:
        IOException - if there is an I/O problem.
      • writeCloseTag

        public void writeCloseTag​(Writer w,
                                  String tag)
                           throws IOException
        Writes a closing XML tag.
        Parameters:
        w - the writer.
        tag - the tag name.
        Throws:
        IOException - if there is an I/O problem.
      • writeTag

        public void writeTag​(Writer w,
                             String name,
                             String attributeName,
                             String attributeValue,
                             boolean close)
                      throws 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:
        IOException - if there is an I/O problem.
      • writeTag

        public void writeTag​(Writer w,
                             String name,
                             Properties attributes,
                             boolean close)
                      throws 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:
        IOException - if there is an I/O problem.
      • writeTag

        public void writeTag​(Writer w,
                             String name,
                             AttributeList attributes,
                             boolean close)
                      throws 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:
        IOException - if there is an I/O problem.
      • normalize

        public static String normalize​(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​(Writer writer,
                           int increase)
                    throws 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:
        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.