Class 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 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.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method 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, java.lang.String attributeName, java.lang.String attributeValue, boolean close)
      Writes an opening XML tag with an attribute/value pair.
      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, AttributeList attributes, boolean close)
      Writes an opening XML tag along with a list of attribute/value pairs.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.