public abstract class AbstractStAXStreamProcessor extends AbstractOutputProcessor implements StAXStreamProcessor
StAXStreamProcessor
for supporting the StAXStreamOutputter
.
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.
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.
An interesting read for people using this class: Apache Axiom notes on setPrefix().
StAXStreamOutputter
,
StAXStreamProcessor
Constructor and Description |
---|
AbstractStAXStreamProcessor() |
Modifier and Type | Method and Description |
---|---|
protected void |
printAttribute(javax.xml.stream.XMLStreamWriter out,
FormatStack fstack,
Attribute attribute)
This will handle printing of an
. |
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
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
node. |
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
Comment comment)
Print out a
. |
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
DocType doctype)
Print out the
. |
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
Document doc)
This will print the
to the given XMLStreamWriter. |
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
Element element)
|
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
EntityRef entity)
Print out a
. |
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
. |
void |
process(javax.xml.stream.XMLStreamWriter out,
Format format,
Text text)
Print out a
node. |
buildWalker
public void process(javax.xml.stream.XMLStreamWriter out, Format format, Document doc) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
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.
process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output styledoc
- Document
to format.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, DocType doctype) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
DocType
.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output styledoctype
- DocType
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, Element element) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output styleelement
- Element
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, java.util.List<? extends Content> list) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output stylelist
- List
of nodes.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, CDATA cdata) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
CDATA
node.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output stylecdata
- CDATA
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, Text text) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
Text
node. Performs the necessary entity
escaping and whitespace stripping.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output styletext
- Text
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, Comment comment) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
Comment
.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output stylecomment
- Comment
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, ProcessingInstruction pi) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
ProcessingInstruction
.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output stylepi
- ProcessingInstruction
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.public void process(javax.xml.stream.XMLStreamWriter out, Format format, EntityRef entity) throws javax.xml.stream.XMLStreamException
StAXStreamProcessor
EntityRef
.process
in interface StAXStreamProcessor
out
- XMLStreamWriter
to use.format
- Format
instance specifying output styleentity
- EntityRef
to output.javax.xml.stream.XMLStreamException
- if there's any problem writing.protected void printDocument(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Document doc) throws javax.xml.stream.XMLStreamException
Document
.out
- XMLStreamWriter
to use.fstack
- the FormatStacknstack
- the NamespaceStackdoc
- Document
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printDocType(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, DocType docType) throws javax.xml.stream.XMLStreamException
DocType
.out
- XMLStreamWriter
to use.fstack
- the FormatStackdocType
- DocType
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printProcessingInstruction(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, ProcessingInstruction pi) throws javax.xml.stream.XMLStreamException
ProcessingInstruction
.out
- XMLStreamWriter
to use.fstack
- the FormatStackpi
- ProcessingInstruction
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printComment(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Comment comment) throws javax.xml.stream.XMLStreamException
Comment
.out
- XMLStreamWriter
to use.fstack
- the FormatStackcomment
- Comment
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printEntityRef(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, EntityRef entity) throws javax.xml.stream.XMLStreamException
EntityRef
.out
- XMLStreamWriter
to use.fstack
- the FormatStackentity
- EntotyRef
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printCDATA(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, CDATA cdata) throws javax.xml.stream.XMLStreamException
CDATA
.out
- XMLStreamWriter
to use.fstack
- the FormatStackcdata
- CDATA
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printText(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Text text) throws javax.xml.stream.XMLStreamException
Text
.out
- XMLStreamWriter
to use.fstack
- the FormatStacktext
- Text
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printElement(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Element element) throws javax.xml.stream.XMLStreamException
Element
.out
- XMLStreamWriter
to use.fstack
- the FormatStacknstack
- the NamespaceStackelement
- Element
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printContent(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, NamespaceStack nstack, Walker walker) throws javax.xml.stream.XMLStreamException
Content
.
out
- XMLStreamWriter
to use.fstack
- the FormatStacknstack
- the NamespaceStackwalker
- Walker
of Content
to write.javax.xml.stream.XMLStreamException
- if the destination XMLStreamWriter failsprotected void printNamespace(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Namespace ns) throws javax.xml.stream.XMLStreamException
Namespace
declarations.out
- XMLStreamWriter
to use.fstack
- The current FormatStackns
- Namespace
to print definition ofjavax.xml.stream.XMLStreamException
- if the output failsprotected void printAttribute(javax.xml.stream.XMLStreamWriter out, FormatStack fstack, Attribute attribute) throws javax.xml.stream.XMLStreamException
Attribute
.out
- XMLStreamWriter
to use.fstack
- The current FormatStackattribute
- Attribute
to outputjavax.xml.stream.XMLStreamException
- if the output failsCopyright © 2021 Jason Hunter, Brett McLaughlin. All Rights Reserved.