Class JDOMWriter

  • All Implemented Interfaces:
    IXMLWriter

    public class JDOMWriter
    extends XMLWriterNamespaceBase
    JDOM implementation of XML writer interface. The Document that is created can be accessed by using getDocument().
    Version:
    1.0
    Author:
    Andreas Brenk
    • Field Detail

      • document

        private Document document
        The JDOM Document this writer is creating.
      • currentElement

        private Element currentElement
        The currently open Element that is used for add* methods.
    • Constructor Detail

      • JDOMWriter

        public JDOMWriter​(java.lang.String[] namespaces)
        Creates a new instance with the given namespace URIs.
      • JDOMWriter

        public JDOMWriter​(java.lang.String[] namespaces,
                          Document document)
        Creates a new instance with the given Document as target for marshalling.
        Parameters:
        document - must not be null
      • JDOMWriter

        public JDOMWriter​(java.lang.String[] namespaces,
                          Element currentElement)
        Creates a new instance with the given Element as target for marshalling.
        Parameters:
        currentElement - must not be null
    • Method Detail

      • init

        public void init()
        Does nothing.
      • setIndentSpaces

        public void setIndentSpaces​(int count,
                                    java.lang.String newline,
                                    char indent)
        Does nothing.
        Parameters:
        count - number of character to indent per level, or disable indentation if negative (zero means new line only)
        newline - sequence of characters used for a line ending (null means use the single character '\n')
        indent - whitespace character used for indentation
      • writeXMLDecl

        public void writeXMLDecl​(java.lang.String version,
                                 java.lang.String encoding,
                                 java.lang.String standalone)
                          throws java.io.IOException
        Does nothing.
        Parameters:
        version - XML version text
        encoding - text for encoding attribute (unspecified if null)
        standalone - text for standalone attribute (unspecified if null)
        Throws:
        java.io.IOException - on error writing to document
      • startTagOpen

        public void startTagOpen​(int index,
                                 java.lang.String name)
                          throws java.io.IOException
        Description copied from interface: IXMLWriter
        Generate open start tag. This allows attributes and/or namespace declarations to be added to the start tag, but must be followed by a IXMLWriter.closeStartTag() call.
        Parameters:
        index - namespace URI index number
        name - unqualified element name
        Throws:
        java.io.IOException - on error writing to document
      • startTagNamespaces

        public void startTagNamespaces​(int index,
                                       java.lang.String name,
                                       int[] nums,
                                       java.lang.String[] prefs)
                                throws java.io.IOException
        Description copied from interface: IXMLWriter
        Generate start tag for element with namespaces. This creates the actual start tag, along with any necessary namespace declarations. Previously active namespace declarations are not duplicated. The tag is left incomplete, allowing other attributes to be added.
        Parameters:
        index - namespace URI index number
        name - element name
        nums - array of namespace indexes defined by this element (must be constant, reference is kept until end of element)
        prefs - array of namespace prefixes mapped by this element (no null values, use "" for default namespace declaration)
        Throws:
        java.io.IOException - on error writing to document
      • addAttribute

        public void addAttribute​(int index,
                                 java.lang.String name,
                                 java.lang.String value)
                          throws java.io.IOException
        Description copied from interface: IXMLWriter
        Add attribute to current open start tag. This is only valid after a call to IXMLWriter.startTagOpen(int, java.lang.String) and before the corresponding call to IXMLWriter.closeStartTag().
        Parameters:
        index - namespace URI index number
        name - unqualified attribute name
        value - text value for attribute
        Throws:
        java.io.IOException - on error writing to document
      • closeStartTag

        public void closeStartTag()
                           throws java.io.IOException
        Description copied from interface: IXMLWriter
        Close the current open start tag. This is only valid after a call to IXMLWriter.startTagOpen(int, java.lang.String).
        Throws:
        java.io.IOException - on error writing to document
      • closeEmptyTag

        public void closeEmptyTag()
                           throws java.io.IOException
        Description copied from interface: IXMLWriter
        Close the current open start tag as an empty element. This is only valid after a call to IXMLWriter.startTagOpen(int, java.lang.String).
        Throws:
        java.io.IOException - on error writing to document
      • startTagClosed

        public void startTagClosed​(int index,
                                   java.lang.String name)
                            throws java.io.IOException
        Description copied from interface: IXMLWriter
        Generate closed start tag. No attributes or namespaces can be added to a start tag written using this call.
        Parameters:
        index - namespace URI index number
        name - unqualified element name
        Throws:
        java.io.IOException - on error writing to document
      • endTag

        public void endTag​(int index,
                           java.lang.String name)
                    throws java.io.IOException
        Description copied from interface: IXMLWriter
        Generate end tag.
        Parameters:
        index - namespace URI index number
        name - unqualified element name
        Throws:
        java.io.IOException - on error writing to document
      • writeTextContent

        public void writeTextContent​(java.lang.String text)
                              throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write ordinary character data text content to document.
        Parameters:
        text - content value text (must not be null)
        Throws:
        java.io.IOException - on error writing to document
      • writeCData

        public void writeCData​(java.lang.String text)
                        throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write CDATA text to document.
        Parameters:
        text - content value text (must not be null)
        Throws:
        java.io.IOException - on error writing to document
      • writeComment

        public void writeComment​(java.lang.String text)
                          throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write comment to document.
        Parameters:
        text - comment text (must not be null)
        Throws:
        java.io.IOException - on error writing to document
      • writeEntityRef

        public void writeEntityRef​(java.lang.String name)
                            throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write entity reference to document.
        Parameters:
        name - entity name (must not be null)
        Throws:
        java.io.IOException - on error writing to document
      • writeDocType

        public void writeDocType​(java.lang.String name,
                                 java.lang.String sys,
                                 java.lang.String pub,
                                 java.lang.String subset)
                          throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write DOCTYPE declaration to document.
        Parameters:
        name - root element name
        sys - system ID (null if none, must be non-null for public ID to be used)
        pub - public ID (null if none)
        subset - internal subset (null if none)
        Throws:
        java.io.IOException - on error writing to document
      • writePI

        public void writePI​(java.lang.String target,
                            java.lang.String data)
                     throws java.io.IOException
        Description copied from interface: IXMLWriter
        Write processing instruction to document.
        Parameters:
        target - processing instruction target name (must not be null)
        data - processing instruction data (must not be null)
        Throws:
        java.io.IOException - on error writing to document
      • indent

        public void indent()
                    throws java.io.IOException
        Does nothing.
        Throws:
        java.io.IOException - on error writing to document
      • flush

        public void flush()
                   throws java.io.IOException
        Does nothing.
        Throws:
        java.io.IOException - on error writing to document
      • close

        public void close()
                   throws java.io.IOException
        Does nothing.
        Throws:
        java.io.IOException - on error writing to document
      • getDocument

        public Document getDocument()
        Returns:
        the JDOM Document this writer created.
      • defineNamespace

        protected void defineNamespace​(int index,
                                       java.lang.String prefix)
                                throws java.io.IOException
        Does nothing.
        Specified by:
        defineNamespace in class XMLWriterNamespaceBase
        Parameters:
        index - post-translation namespace URI index number
        prefix - prefix used for namespace
        Throws:
        java.io.IOException - if error writing to document
      • undefineNamespace

        protected void undefineNamespace​(int index)
        Does nothing.
        Specified by:
        undefineNamespace in class XMLWriterNamespaceBase
        Parameters:
        index - post-translation namespace URI index number
      • getNamespace

        private Namespace getNamespace​(int index)
        This will retrieve (if in existence) or create (if not) a Namespace for the supplied namespace index.