Class PrettyPrintXMLWriter

  • All Implemented Interfaces:
    XMLWriter
    Direct Known Subclasses:
    CompactXMLWriter

    public class PrettyPrintXMLWriter
    extends java.lang.Object
    implements XMLWriter
    Implementation of XMLWriter which emits nicely formatted documents.
    Version:
    $Id$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.regex.Pattern amp  
      private static java.util.regex.Pattern crlf  
      private static java.lang.String crlf_str  
      private int depth  
      private java.lang.String docType  
      private static java.util.regex.Pattern dqoute  
      private java.util.LinkedList<java.lang.String> elementStack  
      private java.lang.String encoding  
      private static java.util.regex.Pattern gt  
      private java.lang.String lineIndenter  
      private java.lang.String lineSeparator  
      private static java.util.regex.Pattern lowers  
      protected static java.lang.String LS
      Line separator ("\n" on UNIX)
      private static java.util.regex.Pattern lt  
      private boolean readyForNewLine  
      private static java.util.regex.Pattern sqoute  
      private boolean tagInProgress  
      private boolean tagIsEmpty  
      private java.io.PrintWriter writer  
    • Constructor Summary

      Constructors 
      Constructor Description
      PrettyPrintXMLWriter​(java.io.PrintWriter writer)  
      PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndenter)  
      PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String encoding, java.lang.String doctype)  
      PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndenter, java.lang.String encoding, java.lang.String doctype)  
      PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndenter, java.lang.String lineSeparator, java.lang.String encoding, java.lang.String doctype)  
      PrettyPrintXMLWriter​(java.io.Writer writer)  
      PrettyPrintXMLWriter​(java.io.Writer writer, java.lang.String lineIndenter)  
      PrettyPrintXMLWriter​(java.io.Writer writer, java.lang.String encoding, java.lang.String doctype)  
      PrettyPrintXMLWriter​(java.io.Writer writer, java.lang.String lineIndenter, java.lang.String encoding, java.lang.String doctype)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAttribute​(java.lang.String key, java.lang.String value)
      void endElement()
      protected void endOfLine()
      Write the end of line character (using specified line separator) and start new line with indentation
      private static java.lang.String escapeXml​(java.lang.String text)  
      private static java.lang.String escapeXmlAttribute​(java.lang.String text)  
      private void finishTag()  
      protected int getDepth()
      Get the current depth in the xml indentation
      protected java.lang.String getDocType()
      Get the docType in the xml
      protected java.util.LinkedList<java.lang.String> getElementStack()  
      protected java.lang.String getEncoding()
      Get the current encoding in the xml
      protected java.lang.String getLineIndenter()
      Get the string used as line indenter
      protected java.lang.String getLineSeparator()
      Get the string used as line separator or LS if not set.
      protected java.io.PrintWriter getWriter()
      Get the underlying writer
      protected void setDepth​(int depth)
      Set the depth in the xml indentation
      protected void setDocType​(java.lang.String docType)
      Set the docType in the xml
      protected void setEncoding​(java.lang.String encoding)
      Set the encoding in the xml
      protected void setLineIndenter​(java.lang.String lineIndenter)
      Set the string used as line indenter
      protected void setLineSeparator​(java.lang.String lineSeparator)
      Set the string used as line separator
      protected void setWriter​(java.io.PrintWriter writer)
      Set the underlying writer
      void startElement​(java.lang.String name)
      private void write​(java.lang.String str)
      Write a string to the underlying writer
      private void writeDocumentHeaders()  
      void writeMarkup​(java.lang.String text)
      void writeText​(java.lang.String text)
      private void writeText​(java.lang.String text, boolean escapeXml)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LS

        protected static final java.lang.String LS
        Line separator ("\n" on UNIX)
      • writer

        private java.io.PrintWriter writer
      • elementStack

        private java.util.LinkedList<java.lang.String> elementStack
      • tagInProgress

        private boolean tagInProgress
      • depth

        private int depth
      • lineIndenter

        private java.lang.String lineIndenter
      • lineSeparator

        private java.lang.String lineSeparator
      • encoding

        private java.lang.String encoding
      • docType

        private java.lang.String docType
      • readyForNewLine

        private boolean readyForNewLine
      • tagIsEmpty

        private boolean tagIsEmpty
      • amp

        private static final java.util.regex.Pattern amp
      • lt

        private static final java.util.regex.Pattern lt
      • gt

        private static final java.util.regex.Pattern gt
      • dqoute

        private static final java.util.regex.Pattern dqoute
      • sqoute

        private static final java.util.regex.Pattern sqoute
      • crlf

        private static final java.util.regex.Pattern crlf
      • lowers

        private static final java.util.regex.Pattern lowers
    • Constructor Detail

      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.PrintWriter writer,
                                    java.lang.String lineIndenter)
        Parameters:
        writer - not null
        lineIndenter - could be null, but the normal way is some spaces.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.Writer writer,
                                    java.lang.String lineIndenter)
        Parameters:
        writer - not null
        lineIndenter - could be null, but the normal way is some spaces.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.PrintWriter writer)
        Parameters:
        writer - not null
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.Writer writer)
        Parameters:
        writer - not null
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.PrintWriter writer,
                                    java.lang.String lineIndenter,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndenter - could be null, but the normal way is some spaces.
        encoding - could be null or invalid.
        doctype - could be null.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.Writer writer,
                                    java.lang.String lineIndenter,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndenter - could be null, but the normal way is some spaces.
        encoding - could be null or invalid.
        doctype - could be null.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.PrintWriter writer,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        encoding - could be null or invalid.
        doctype - could be null.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.Writer writer,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        encoding - could be null or invalid.
        doctype - could be null.
      • PrettyPrintXMLWriter

        public PrettyPrintXMLWriter​(java.io.PrintWriter writer,
                                    java.lang.String lineIndenter,
                                    java.lang.String lineSeparator,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndenter - could be null, but the normal way is some spaces.
        lineSeparator - could be null, but the normal way is valid line separator ("\n" on UNIX).
        encoding - could be null or invalid.
        doctype - could be null.
    • Method Detail

      • startElement

        public void startElement​(java.lang.String name)
        Specified by:
        startElement in interface XMLWriter
      • writeText

        public void writeText​(java.lang.String text)
        Specified by:
        writeText in interface XMLWriter
      • writeMarkup

        public void writeMarkup​(java.lang.String text)
        Specified by:
        writeMarkup in interface XMLWriter
      • writeText

        private void writeText​(java.lang.String text,
                               boolean escapeXml)
      • escapeXml

        private static java.lang.String escapeXml​(java.lang.String text)
      • escapeXmlAttribute

        private static java.lang.String escapeXmlAttribute​(java.lang.String text)
      • addAttribute

        public void addAttribute​(java.lang.String key,
                                 java.lang.String value)
        Specified by:
        addAttribute in interface XMLWriter
      • write

        private void write​(java.lang.String str)
        Write a string to the underlying writer
        Parameters:
        str -
      • finishTag

        private void finishTag()
      • getLineIndenter

        protected java.lang.String getLineIndenter()
        Get the string used as line indenter
        Returns:
        the line indenter
      • setLineIndenter

        protected void setLineIndenter​(java.lang.String lineIndenter)
        Set the string used as line indenter
        Parameters:
        lineIndenter - new line indenter, could be null, but the normal way is some spaces.
      • getLineSeparator

        protected java.lang.String getLineSeparator()
        Get the string used as line separator or LS if not set.
        Returns:
        the line separator
        See Also:
        LS
      • setLineSeparator

        protected void setLineSeparator​(java.lang.String lineSeparator)
        Set the string used as line separator
        Parameters:
        lineSeparator - new line separator, could be null but the normal way is valid line separator ("\n" on UNIX).
      • endOfLine

        protected void endOfLine()
        Write the end of line character (using specified line separator) and start new line with indentation
        See Also:
        getLineIndenter(), getLineSeparator()
      • writeDocumentHeaders

        private void writeDocumentHeaders()
      • setWriter

        protected void setWriter​(java.io.PrintWriter writer)
        Set the underlying writer
        Parameters:
        writer - not null writer
      • getWriter

        protected java.io.PrintWriter getWriter()
        Get the underlying writer
        Returns:
        the underlying writer
      • setDepth

        protected void setDepth​(int depth)
        Set the depth in the xml indentation
        Parameters:
        depth - new depth
      • getDepth

        protected int getDepth()
        Get the current depth in the xml indentation
        Returns:
        the current depth
      • setEncoding

        protected void setEncoding​(java.lang.String encoding)
        Set the encoding in the xml
        Parameters:
        encoding - new encoding
      • getEncoding

        protected java.lang.String getEncoding()
        Get the current encoding in the xml
        Returns:
        the current encoding
      • setDocType

        protected void setDocType​(java.lang.String docType)
        Set the docType in the xml
        Parameters:
        docType - new docType
      • getDocType

        protected java.lang.String getDocType()
        Get the docType in the xml
        Returns:
        the current docType
      • getElementStack

        protected java.util.LinkedList<java.lang.String> getElementStack()
        Returns:
        the current elementStack;