Class PrettyPrintXMLWriter

  • All Implemented Interfaces:
    XMLWriter

    public class PrettyPrintXMLWriter
    extends java.lang.Object
    implements XMLWriter
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        PrettyPrintXMLWriter​(java.io.PrintWriter writer)  
      private PrettyPrintXMLWriter​(java.io.PrintWriter writer, char[] lineIndent, char[] lineSeparator, java.lang.String encoding, java.lang.String doctype)  
        PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndent)  
        PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String encoding, java.lang.String doctype)  
        PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndent, java.lang.String encoding, java.lang.String doctype)  
        PrettyPrintXMLWriter​(java.io.PrintWriter writer, java.lang.String lineIndent, 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 lineIndent)  
        PrettyPrintXMLWriter​(java.io.Writer writer, java.lang.String encoding, java.lang.String doctype)  
        PrettyPrintXMLWriter​(java.io.Writer writer, java.lang.String lineIndent, java.lang.String encoding, java.lang.String doctype)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAttribute​(java.lang.String key, java.lang.String value)
      Add a XML attribute to the current XML Element.
      private void completePreviouslyOpenedElement()  
      void endElement()
      End the previously opened element.
      private boolean ensureDocumentStarted()
      Write the documents if not already done.
      private void newLine()  
      void setDocType​(java.lang.String docType)
      Sets the docType of the document.
      void setEncoding​(java.lang.String encoding)
      Sets the encoding of the document.
      void setLineIndenter​(java.lang.String lineIndentParameter)  
      void setLineSeparator​(java.lang.String lineSeparator)  
      void startElement​(java.lang.String elementName)
      Start an XML Element tag.
      private void writeDocumentHeader()  
      void writeMarkup​(java.lang.String markup)
      Add a preformatted markup to the current element tag
      void writeText​(java.lang.String text)
      Add a value text to the current element tag This will perform XML escaping to guarantee valid content
      • Methods inherited from class java.lang.Object

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

      • CLOSE_1

        private static final char[] CLOSE_1
      • CLOSE_2

        private static final char[] CLOSE_2
      • DEFAULT_LINE_INDENT

        private static final char[] DEFAULT_LINE_INDENT
      • writer

        private java.io.PrintWriter writer
      • elementStack

        private java.util.ArrayList<java.lang.String> elementStack
      • processingElement

        private boolean processingElement
      • documentStarted

        private boolean documentStarted
      • endOnSameLine

        private boolean endOnSameLine
      • depth

        private int depth
      • lineIndent

        private char[] lineIndent
      • lineSeparator

        private char[] lineSeparator
      • encoding

        private java.lang.String encoding
      • docType

        private java.lang.String docType
    • Constructor Detail

      • PrettyPrintXMLWriter

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

        public PrettyPrintXMLWriter​(java.io.Writer writer,
                                    java.lang.String lineIndent)
        Parameters:
        writer - not null
        lineIndent - 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 lineIndent,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndent - 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 lineIndent,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndent - 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 lineIndent,
                                    java.lang.String lineSeparator,
                                    java.lang.String encoding,
                                    java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndent - could be null, but the normal way is some spaces.
        lineSeparator - could be null, but the normal way is valid line separator
        encoding - could be null or the encoding to use.
        doctype - could be null.
      • PrettyPrintXMLWriter

        private PrettyPrintXMLWriter​(java.io.PrintWriter writer,
                                     char[] lineIndent,
                                     char[] lineSeparator,
                                     java.lang.String encoding,
                                     java.lang.String doctype)
        Parameters:
        writer - not null
        lineIndent - could be null, but the normal way is some spaces.
        lineSeparator - could be null, but the normal way is valid line separator
        encoding - could be null or the encoding to use.
        doctype - could be null.
    • Method Detail

      • addAttribute

        public void addAttribute​(java.lang.String key,
                                 java.lang.String value)
                          throws java.io.IOException
        Add a XML attribute to the current XML Element. This method must get called immediately after XMLWriter.startElement(String)
        Specified by:
        addAttribute in interface XMLWriter
        Parameters:
        key - The key of the attribute.
        value - The value of the attribute.
        Throws:
        java.io.IOException - if adding the attribute fails.
      • setEncoding

        public void setEncoding​(java.lang.String encoding)
        Sets the encoding of the document. If not set, UTF-8 is being used
        Specified by:
        setEncoding in interface XMLWriter
        Parameters:
        encoding - the encoding
      • setDocType

        public void setDocType​(java.lang.String docType)
        Sets the docType of the document.
        Specified by:
        setDocType in interface XMLWriter
        Parameters:
        docType - the docType
      • setLineSeparator

        public void setLineSeparator​(java.lang.String lineSeparator)
        Parameters:
        lineSeparator - The line separator to be used.
      • setLineIndenter

        public void setLineIndenter​(java.lang.String lineIndentParameter)
        Parameters:
        lineIndentParameter - The line indent parameter.
      • startElement

        public void startElement​(java.lang.String elementName)
                          throws java.io.IOException
        Start an XML Element tag.
        Specified by:
        startElement in interface XMLWriter
        Parameters:
        elementName - The name of the tag.
        Throws:
        java.io.IOException - if starting the element fails.
      • writeText

        public void writeText​(java.lang.String text)
                       throws java.io.IOException
        Add a value text to the current element tag This will perform XML escaping to guarantee valid content
        Specified by:
        writeText in interface XMLWriter
        Parameters:
        text - The text which should be written.
        Throws:
        java.io.IOException - if writing the text fails.
      • writeMarkup

        public void writeMarkup​(java.lang.String markup)
                         throws java.io.IOException
        Add a preformatted markup to the current element tag
        Specified by:
        writeMarkup in interface XMLWriter
        Parameters:
        markup - The text which should be written.
        Throws:
        java.io.IOException - if writing the markup fails.
      • endElement

        public void endElement()
                        throws java.io.IOException
        End the previously opened element.
        Specified by:
        endElement in interface XMLWriter
        Throws:
        java.io.IOException - if ending the element fails.
        See Also:
        XMLWriter.startElement(String)
      • ensureDocumentStarted

        private boolean ensureDocumentStarted()
        Write the documents if not already done.
        Returns:
        true if the document headers have freshly been written.
      • writeDocumentHeader

        private void writeDocumentHeader()
      • newLine

        private void newLine()
      • completePreviouslyOpenedElement

        private void completePreviouslyOpenedElement()