Class StAXStreamOutputter

java.lang.Object
org.jdom2.output.StAXStreamOutputter
All Implemented Interfaces:
Cloneable

public final class StAXStreamOutputter extends Object implements Cloneable
Outputs a JDOM document as a StAX XMLStreamWriter of bytes.

The StAXStreamOutputter can manage many styles of document formatting, from untouched to 'pretty' printed. The default is to output the document content exactly as created, but this can be changed by setting a new Format object:

All of the output*(...) methods will flush the destination XMLStreamWriter before returning, and none of them will close() the destination.

To omit output of the declaration use Format.setOmitDeclaration(boolean). To omit printing of the encoding in the declaration use Format.setOmitEncoding(boolean).

If changing the Format settings are insufficient for your output needs you can customise this StAXStreamOutputter further by setting a different StAXStreamProcessor with the setStAXStreamProcessor(StAXStreamProcessor) method or an appropriate constructor. A fully-enabled Abstract class AbstractStAXStreamProcessor is available to be further extended to your needs if all you want to do is tweak some details.

Since:
JDOM2
Author:
Rolf Lear
  • Constructor Details

    • StAXStreamOutputter

      public StAXStreamOutputter(Format format, StAXStreamProcessor processor)
      This will create an StAXStreamOutputter with the specified format characteristics.

      Note: the format object is cloned internally before use. If you want to modify the Format after constructing the StAXStreamOutputter you can modify the Format instance getFormat() returns.

      Parameters:
      format - The Format instance to use. This instance will be cloned() and as a consequence, changes made to the specified format instance will not be reflected in this StAXStreamOutputter. A null input format indicates that StAXStreamOutputter should use the default Format.getRawFormat()
      processor - The XMLOutputProcessor to delegate output to. If null the StAXStreamOutputter will use the default XMLOutputProcessor.
    • StAXStreamOutputter

      public StAXStreamOutputter()
      This will create an StAXStreamOutputter with a default Format and XMLOutputProcessor.
    • StAXStreamOutputter

      public StAXStreamOutputter(Format format)
      This will create an StAXStreamOutputter with the specified format characteristics.

      Note: the format object is cloned internally before use.

      Parameters:
      format - The Format instance to use. This instance will be cloned() and as a consequence, changes made to the specified format instance will not be reflected in this StAXStreamOutputter. A null input format indicates that StAXStreamOutputter should use the default Format.getRawFormat()
    • StAXStreamOutputter

      public StAXStreamOutputter(StAXStreamProcessor processor)
      This will create an StAXStreamOutputter with the specified XMLOutputProcessor.
      Parameters:
      processor - The XMLOutputProcessor to delegate output to. If null the StAXStreamOutputter will use the default XMLOutputProcessor.
  • Method Details

    • setFormat

      public void setFormat(Format newFormat)
      Sets the new format logic for the StAXStreamOutputter. Note the Format object is cloned internally before use.
      Parameters:
      newFormat - the format to use for subsequent output
      See Also:
    • getFormat

      public Format getFormat()
      Returns the current format in use by the StAXStreamOutputter. Note the Format object returned is not a clone of the one used internally, thus, an StAXStreamOutputter instance is able to have its Format changed by changing the settings on the Format instance returned by this method.
      Returns:
      the current Format instance used by this StAXStreamOutputter.
    • getStAXStream

      public StAXStreamProcessor getStAXStream()
      Returns the current XMLOutputProcessor instance in use by the StAXStreamOutputter.
      Returns:
      the current XMLOutputProcessor instance.
    • setStAXStreamProcessor

      public void setStAXStreamProcessor(StAXStreamProcessor processor)
      Sets a new XMLOutputProcessor instance for this StAXStreamOutputter. Note the processor object is expected to be thread-safe.
      Parameters:
      processor - the new XMLOutputProcesor to use for output
    • output

      public final void output(Document doc, XMLStreamWriter out) throws XMLStreamException
      This will print the Document to the given Writer.

      Warning: using your own Writer may cause the outputter's preferred character encoding to be ignored. If you use encodings other than UTF-8, we recommend using the method that takes an OutputStream instead.

      Parameters:
      doc - Document to format.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(DocType doctype, XMLStreamWriter out) throws XMLStreamException
      Print out the DocType.
      Parameters:
      doctype - DocType to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(Element element, XMLStreamWriter out) throws XMLStreamException
      Print out an Element, including its Attributes, and all contained (child) elements, etc.
      Parameters:
      element - Element to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • outputElementContent

      public final void outputElementContent(Element element, XMLStreamWriter out) throws XMLStreamException
      This will handle printing out an Element's content only, not including its tag, and attributes. This can be useful for printing the content of an element that contains HTML, like "<description>JDOM is <b>fun>!</description>".
      Parameters:
      element - Element to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(List<? extends Content> list, XMLStreamWriter out) throws XMLStreamException
      This will handle printing out a list of nodes. This can be useful for printing the content of an element that contains HTML, like "<description>JDOM is <b>fun>!</description>".
      Parameters:
      list - List of nodes.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(CDATA cdata, XMLStreamWriter out) throws XMLStreamException
      Print out a CDATA node.
      Parameters:
      cdata - CDATA to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(Text text, XMLStreamWriter out) throws XMLStreamException
      Print out a Text node. Performs the necessary entity escaping and whitespace stripping.
      Parameters:
      text - Text to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(Comment comment, XMLStreamWriter out) throws XMLStreamException
      Print out a Comment.
      Parameters:
      comment - Comment to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(ProcessingInstruction pi, XMLStreamWriter out) throws XMLStreamException
      Parameters:
      pi - ProcessingInstruction to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • output

      public final void output(EntityRef entity, XMLStreamWriter out) throws XMLStreamException
      Print out an EntityRef.
      Parameters:
      entity - EntityRef to output.
      out - XMLStreamWriter to use.
      Throws:
      XMLStreamException - - if there's any problem writing.
      NullPointerException - if the specified content is null.
    • clone

      public StAXStreamOutputter clone()
      Returns a cloned copy of this StAXStreamOutputter.
      Overrides:
      clone in class Object
    • toString

      public String toString()
      Return a string listing of the settings for this StAXStreamOutputter instance.
      Overrides:
      toString in class Object
      Returns:
      a string listing the settings for this StAXStreamOutputter instance