JDOM
2.0.5

org.jdom2.output.support
Class AbstractStAXStreamProcessor

java.lang.Object
  extended by org.jdom2.output.support.AbstractOutputProcessor
      extended by org.jdom2.output.support.AbstractStAXStreamProcessor
All Implemented Interfaces:
StAXStreamProcessor

public abstract class AbstractStAXStreamProcessor
extends AbstractOutputProcessor
implements StAXStreamProcessor

This class provides a concrete implementation of StAXStreamProcessor for supporting the StAXStreamOutputter.

Overview

This class is marked abstract even though all methods are fully implemented. The process*(...) methods are public because they match the StAXStreamProcessor interface but the remaining methods are all protected.

People who want to create a custom StAXStreamProcessor for StAXStreamOutputter are able to extend this class and modify any functionality they want. Before sub-classing this you should first check to see if the Format class can get you the results you want.

Subclasses of this should have reentrant methods. This is easiest to accomplish simply by not allowing any instance fields. If your sub-class has an instance field/variable, then it's probably broken.

The Stacks

One significant feature of this implementation is that it creates and maintains both a NamespaceStack and FormatStack that are managed in the printElement(XMLStreamWriter, FormatStack, NamespaceStack, Element) method. The stacks are pushed and popped in that method only. They significantly improve the performance and readability of the code.

The NamespaceStack is only sent through to the printElement(XMLStreamWriter, FormatStack, NamespaceStack, Element) and printContent(XMLStreamWriter, FormatStack, NamespaceStack, Walker) methods, but the FormatStack is pushed through to all print* Methods.

Since:
JDOM2
Author:
Rolf Lear
See Also:
StAXStreamOutputter, StAXStreamProcessor

Constructor Summary
AbstractStAXStreamProcessor()
           
 
Method Summary
protected  void printAttribute(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Attribute attribute)
          This will handle printing of an Attribute.
protected  void printCDATA(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, CDATA cdata)
          This will handle printing of a CDATA.
protected  void printComment(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Comment comment)
          This will handle printing of a Comment.
protected  void printContent(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Walker walker)
          This will handle printing of a List of Content.
protected  void printDocType(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, DocType docType)
          This will handle printing of a DocType.
protected  void printDocument(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Document doc)
          This will handle printing of a Document.
protected  void printElement(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Element element)
          This will handle printing of an Element.
protected  void printEntityRef(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, EntityRef entity)
          This will handle printing of an EntityRef.
protected  void printNamespace(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Namespace ns)
          This will handle printing of any needed Namespace declarations.
protected  void printProcessingInstruction(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, ProcessingInstruction pi)
          This will handle printing of a ProcessingInstruction.
protected  void printText(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Text text)
          This will handle printing of a Text.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, CDATA cdata)
          Print out a CDATA node.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, Comment comment)
          Print out a Comment.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, DocType doctype)
          Print out the DocType.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, Document doc)
          This will print the Document to the given XMLStreamWriter.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, Element element)
          Print out an Element, including its Attributes, and all contained (child) elements, etc.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, EntityRef entity)
          Print out a EntityRef.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, java.util.List<? extends Content> list)
          This will handle printing out a list of nodes.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, ProcessingInstruction pi)
          Print out a ProcessingInstruction.
 void process(javax.xml.stream.XMLStreamWriter out, Format format, Text text)
          Print out a Text node.
 
Methods inherited from class org.jdom2.output.support.AbstractOutputProcessor
buildWalker
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractStAXStreamProcessor

public AbstractStAXStreamProcessor()
Method Detail

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    Document doc)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
This will print the Document to the given XMLStreamWriter.

Warning: using your own XMLStreamWriter 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.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
doc - Document to format.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    DocType doctype)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out the DocType.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
doctype - DocType to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    Element element)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out an Element, including its Attributes, and all contained (child) elements, etc.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
element - Element to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    java.util.List<? extends Content> list)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
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>".

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
list - List of nodes.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    CDATA cdata)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out a CDATA node.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
cdata - CDATA to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    Text text)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out a Text node. Perfoms the necessary entity escaping and whitespace stripping.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
text - Text to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    Comment comment)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out a Comment.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
comment - Comment to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    ProcessingInstruction pi)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out a ProcessingInstruction.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
pi - ProcessingInstruction to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

process

public void process(javax.xml.stream.XMLStreamWriter out,
                    Format format,
                    EntityRef entity)
             throws javax.xml.stream.XMLStreamException
Description copied from interface: StAXStreamProcessor
Print out a EntityRef.

Specified by:
process in interface StAXStreamProcessor
Parameters:
out - XMLStreamWriter to use.
format - Format instance specifying output style
entity - EntityRef to output.
Throws:
javax.xml.stream.XMLStreamException - if there's any problem writing.

printDocument

protected void printDocument(javax.xml.stream.XMLStreamWriter out,
                             FormatStack fstack,
                             NamespaceStack nstack,
                             Document doc)
                      throws javax.xml.stream.XMLStreamException
This will handle printing of a Document.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
nstack - the NamespaceStack
doc - Document to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printDocType

protected void printDocType(javax.xml.stream.XMLStreamWriter out,
                            FormatStack fstack,
                            DocType docType)
                     throws javax.xml.stream.XMLStreamException
This will handle printing of a DocType.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
docType - DocType to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printProcessingInstruction

protected void printProcessingInstruction(javax.xml.stream.XMLStreamWriter out,
                                          FormatStack fstack,
                                          ProcessingInstruction pi)
                                   throws javax.xml.stream.XMLStreamException
This will handle printing of a ProcessingInstruction.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
pi - ProcessingInstruction to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printComment

protected void printComment(javax.xml.stream.XMLStreamWriter out,
                            FormatStack fstack,
                            Comment comment)
                     throws javax.xml.stream.XMLStreamException
This will handle printing of a Comment.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
comment - Comment to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printEntityRef

protected void printEntityRef(javax.xml.stream.XMLStreamWriter out,
                              FormatStack fstack,
                              EntityRef entity)
                       throws javax.xml.stream.XMLStreamException
This will handle printing of an EntityRef.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
entity - EntotyRef to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printCDATA

protected void printCDATA(javax.xml.stream.XMLStreamWriter out,
                          FormatStack fstack,
                          CDATA cdata)
                   throws javax.xml.stream.XMLStreamException
This will handle printing of a CDATA.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
cdata - CDATA to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printText

protected void printText(javax.xml.stream.XMLStreamWriter out,
                         FormatStack fstack,
                         Text text)
                  throws javax.xml.stream.XMLStreamException
This will handle printing of a Text.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
text - Text to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printElement

protected void printElement(javax.xml.stream.XMLStreamWriter out,
                            FormatStack fstack,
                            NamespaceStack nstack,
                            Element element)
                     throws javax.xml.stream.XMLStreamException
This will handle printing of an Element.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
nstack - the NamespaceStack
element - Element to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printContent

protected void printContent(javax.xml.stream.XMLStreamWriter out,
                            FormatStack fstack,
                            NamespaceStack nstack,
                            Walker walker)
                     throws javax.xml.stream.XMLStreamException
This will handle printing of a List of Content.

Parameters:
out - XMLStreamWriter to use.
fstack - the FormatStack
nstack - the NamespaceStack
walker - Walker of Content to write.
Throws:
javax.xml.stream.XMLStreamException - if the destination XMLStreamWriter fails

printNamespace

protected void printNamespace(javax.xml.stream.XMLStreamWriter out,
                              FormatStack fstack,
                              Namespace ns)
                       throws javax.xml.stream.XMLStreamException
This will handle printing of any needed Namespace declarations.

Parameters:
out - XMLStreamWriter to use.
fstack - The current FormatStack
ns - Namespace to print definition of
Throws:
javax.xml.stream.XMLStreamException - if the output fails

printAttribute

protected void printAttribute(javax.xml.stream.XMLStreamWriter out,
                              FormatStack fstack,
                              Attribute attribute)
                       throws javax.xml.stream.XMLStreamException
This will handle printing of an Attribute.

Parameters:
out - XMLStreamWriter to use.
fstack - The current FormatStack
attribute - Attribute to output
Throws:
javax.xml.stream.XMLStreamException - if the output fails

JDOM
2.0.5

Copyright 2013 Jason Hunter, Brett McLaughlin. All Rights Reserved.