Class FormattingXMLStreamWriter

  • All Implemented Interfaces:
    javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamWriter, XMLExtendedStreamWriter

    public final class FormattingXMLStreamWriter
    extends java.lang.Object
    implements XMLExtendedStreamWriter, javax.xml.stream.XMLStreamConstants
    An XML stream writer which nicely formats the XML for configuration files.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.ArrayDeque<FormattingXMLStreamWriter.ArgRunnable> attrQueue  
      private javax.xml.stream.XMLStreamWriter delegate  
      private boolean indentEndElement  
      private int level  
      private static java.lang.String NO_NAMESPACE  
      private int state  
      private java.util.ArrayDeque<java.lang.String> unspecifiedNamespaces  
      • Fields inherited from interface javax.xml.stream.XMLStreamConstants

        ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
    • Constructor Summary

      Constructors 
      Constructor Description
      FormattingXMLStreamWriter​(javax.xml.stream.XMLStreamWriter delegate)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void flush()  
      javax.xml.namespace.NamespaceContext getNamespaceContext()  
      java.lang.String getPrefix​(java.lang.String uri)  
      java.lang.Object getProperty​(java.lang.String name)  
      private void indent()  
      private static java.lang.String join​(java.lang.Iterable<java.lang.String> values)  
      private static java.lang.String join​(java.lang.String[] values)  
      private java.lang.String nestUnspecifiedNamespace()  
      private void nl()  
      private void runAttrQueue()  
      void setDefaultNamespace​(java.lang.String uri)  
      void setNamespaceContext​(javax.xml.namespace.NamespaceContext context)  
      void setPrefix​(java.lang.String prefix, java.lang.String uri)  
      void setUnspecifiedElementNamespace​(java.lang.String namespace)
      Sets the namespace to use for child element writes when a namespace is not specified.
      void writeAttribute​(java.lang.String localName, java.lang.Iterable<java.lang.String> values)  
      void writeAttribute​(java.lang.String localName, java.lang.String value)  
      void writeAttribute​(java.lang.String localName, java.lang.String[] values)  
      void writeAttribute​(java.lang.String namespaceURI, java.lang.String localName, java.lang.Iterable<java.lang.String> values)  
      void writeAttribute​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)  
      void writeAttribute​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String[] values)  
      void writeAttribute​(java.lang.String prefix, java.lang.String namespaceURI, java.lang.String localName, java.lang.Iterable<java.lang.String> values)  
      void writeAttribute​(java.lang.String prefix, java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)  
      void writeAttribute​(java.lang.String prefix, java.lang.String namespaceURI, java.lang.String localName, java.lang.String[] values)  
      void writeCData​(java.lang.String data)  
      void writeCharacters​(char[] text, int start, int len)  
      void writeCharacters​(java.lang.String text)  
      void writeComment​(java.lang.String data)  
      void writeDefaultNamespace​(java.lang.String namespaceURI)  
      void writeDTD​(java.lang.String dtd)  
      void writeEmptyElement​(java.lang.String localName)  
      void writeEmptyElement​(java.lang.String namespaceURI, java.lang.String localName)  
      void writeEmptyElement​(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)  
      void writeEndDocument()  
      void writeEndElement()  
      void writeEntityRef​(java.lang.String name)  
      void writeNamespace​(java.lang.String prefix, java.lang.String namespaceURI)  
      void writeProcessingInstruction​(java.lang.String target)  
      void writeProcessingInstruction​(java.lang.String target, java.lang.String data)  
      void writeStartDocument()  
      void writeStartDocument​(java.lang.String version)  
      void writeStartDocument​(java.lang.String encoding, java.lang.String version)  
      void writeStartElement​(java.lang.String localName)  
      void writeStartElement​(java.lang.String namespaceURI, java.lang.String localName)  
      void writeStartElement​(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)  
      • Methods inherited from class java.lang.Object

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

      • NO_NAMESPACE

        private static final java.lang.String NO_NAMESPACE
      • delegate

        private final javax.xml.stream.XMLStreamWriter delegate
      • level

        private int level
      • state

        private int state
      • indentEndElement

        private boolean indentEndElement
      • unspecifiedNamespaces

        private java.util.ArrayDeque<java.lang.String> unspecifiedNamespaces
    • Constructor Detail

      • FormattingXMLStreamWriter

        public FormattingXMLStreamWriter​(javax.xml.stream.XMLStreamWriter delegate)
    • Method Detail

      • nl

        private void nl()
                 throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • indent

        private void indent()
                     throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • setUnspecifiedElementNamespace

        public void setUnspecifiedElementNamespace​(java.lang.String namespace)
        Description copied from interface: XMLExtendedStreamWriter
        Sets the namespace to use for child element writes when a namespace is not specified. In other words, when XMLStreamWriter.writeStartElement(String) is called this namespace will be used. Setting this to null will result in the standard behavior, which is usage of the xml default ns (not specifying a prefix) This setting is scoped within the document or element that it was called in. Once called all further child elements will use this namespace. In addition, it is inherited for all levels of nesting. In other words, setting an unspecified namespace on a grandchild will not affect the namespace setting of a child sibling. To clear the effect of this setting, call the method with a value of null.
        Specified by:
        setUnspecifiedElementNamespace in interface XMLExtendedStreamWriter
        Parameters:
        namespace - The namespace to use when not specified on elements, or null if the xml default ns should be used
      • nestUnspecifiedNamespace

        private java.lang.String nestUnspecifiedNamespace()
      • writeStartElement

        public void writeStartElement​(java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartElement

        public void writeStartElement​(java.lang.String namespaceURI,
                                      java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartElement

        public void writeStartElement​(java.lang.String prefix,
                                      java.lang.String localName,
                                      java.lang.String namespaceURI)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEmptyElement

        public void writeEmptyElement​(java.lang.String namespaceURI,
                                      java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEmptyElement

        public void writeEmptyElement​(java.lang.String prefix,
                                      java.lang.String localName,
                                      java.lang.String namespaceURI)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEmptyElement

        public void writeEmptyElement​(java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEndElement

        public void writeEndElement()
                             throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEndElement in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • runAttrQueue

        private void runAttrQueue()
                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEndDocument

        public void writeEndDocument()
                              throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEndDocument in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • close

        public void close()
                   throws javax.xml.stream.XMLStreamException
        Specified by:
        close in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • flush

        public void flush()
                   throws javax.xml.stream.XMLStreamException
        Specified by:
        flush in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String localName,
                                   java.lang.String value)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String prefix,
                                   java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.String value)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.String value)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String localName,
                                   java.lang.String[] values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String prefix,
                                   java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.String[] values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.String[] values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String localName,
                                   java.lang.Iterable<java.lang.String> values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String prefix,
                                   java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.Iterable<java.lang.String> values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.Iterable<java.lang.String> values)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface XMLExtendedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeNamespace

        public void writeNamespace​(java.lang.String prefix,
                                   java.lang.String namespaceURI)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeNamespace in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeDefaultNamespace

        public void writeDefaultNamespace​(java.lang.String namespaceURI)
                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeComment

        public void writeComment​(java.lang.String data)
                          throws javax.xml.stream.XMLStreamException
        Specified by:
        writeComment in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeProcessingInstruction

        public void writeProcessingInstruction​(java.lang.String target)
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeProcessingInstruction

        public void writeProcessingInstruction​(java.lang.String target,
                                               java.lang.String data)
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeCData

        public void writeCData​(java.lang.String data)
                        throws javax.xml.stream.XMLStreamException
        Specified by:
        writeCData in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeDTD

        public void writeDTD​(java.lang.String dtd)
                      throws javax.xml.stream.XMLStreamException
        Specified by:
        writeDTD in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEntityRef

        public void writeEntityRef​(java.lang.String name)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEntityRef in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartDocument

        public void writeStartDocument()
                                throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartDocument in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartDocument

        public void writeStartDocument​(java.lang.String version)
                                throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartDocument in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartDocument

        public void writeStartDocument​(java.lang.String encoding,
                                       java.lang.String version)
                                throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartDocument in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeCharacters

        public void writeCharacters​(java.lang.String text)
                             throws javax.xml.stream.XMLStreamException
        Specified by:
        writeCharacters in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeCharacters

        public void writeCharacters​(char[] text,
                                    int start,
                                    int len)
                             throws javax.xml.stream.XMLStreamException
        Specified by:
        writeCharacters in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • getPrefix

        public java.lang.String getPrefix​(java.lang.String uri)
                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        getPrefix in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • setPrefix

        public void setPrefix​(java.lang.String prefix,
                              java.lang.String uri)
                       throws javax.xml.stream.XMLStreamException
        Specified by:
        setPrefix in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • setDefaultNamespace

        public void setDefaultNamespace​(java.lang.String uri)
                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        setDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • setNamespaceContext

        public void setNamespaceContext​(javax.xml.namespace.NamespaceContext context)
                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        setNamespaceContext in interface javax.xml.stream.XMLStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • getNamespaceContext

        public javax.xml.namespace.NamespaceContext getNamespaceContext()
        Specified by:
        getNamespaceContext in interface javax.xml.stream.XMLStreamWriter
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
                                     throws java.lang.IllegalArgumentException
        Specified by:
        getProperty in interface javax.xml.stream.XMLStreamWriter
        Throws:
        java.lang.IllegalArgumentException
      • join

        private static java.lang.String join​(java.lang.String[] values)
      • join

        private static java.lang.String join​(java.lang.Iterable<java.lang.String> values)