Class AbstractDOMOutputProcessor
- java.lang.Object
-
- org.jdom2.output.support.AbstractOutputProcessor
-
- org.jdom2.output.support.AbstractDOMOutputProcessor
-
- All Implemented Interfaces:
DOMOutputProcessor
public abstract class AbstractDOMOutputProcessor extends AbstractOutputProcessor implements DOMOutputProcessor
This class provides a concrete implementation ofDOMOutputProcessor
for supporting theDOMOutputter
.Overview
This class is marked abstract even though all methods are fully implemented. The
process*(...)
methods are public because they match the DOMOutputProcessor interface but the remaining methods are all protected.People who want to create a custom DOMOutputProcessor for DOMOutputter 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
andFormatStack
that are managed in theprintElement(FormatStack, NamespaceStack, org.w3c.dom.Document, 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(FormatStack, NamespaceStack, org.w3c.dom.Document, Element)
andprintContent(FormatStack, NamespaceStack, org.w3c.dom.Document, org.w3c.dom.Node, Walker)
methods, but the FormatStack is pushed through to all print* Methods.Content Processing
This class delegates the formatting of the content to the Walker classes and you can create your own custom walker by overriding the
AbstractOutputProcessor.buildWalker(FormatStack, List, boolean)
method.- Since:
- JDOM2
- Author:
- Rolf Lear
- See Also:
DOMOutputter
,DOMOutputProcessor
-
-
Constructor Summary
Constructors Constructor Description AbstractDOMOutputProcessor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.w3c.dom.Node
helperContentDispatcher(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Content content)
This method contains code which is reused in a number of places.protected org.w3c.dom.Attr
printAttribute(FormatStack fstack, org.w3c.dom.Document basedoc, Attribute attribute)
This will handle printing of aAttribute
.protected org.w3c.dom.CDATASection
printCDATA(FormatStack fstack, org.w3c.dom.Document basedoc, CDATA cdata)
This will handle printing of aCDATA
.protected org.w3c.dom.Comment
printComment(FormatStack fstack, org.w3c.dom.Document basedoc, Comment comment)
This will handle printing of aComment
.protected void
printContent(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, org.w3c.dom.Node target, Walker walker)
This will handle printing of a List ofContent
.protected org.w3c.dom.Document
printDocument(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Document doc)
This will handle printing of aDocument
.protected org.w3c.dom.Element
printElement(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Element element)
This will handle printing of anElement
.protected org.w3c.dom.EntityReference
printEntityRef(FormatStack fstack, org.w3c.dom.Document basedoc, EntityRef entity)
This will handle printing of anEntityRef
.protected org.w3c.dom.ProcessingInstruction
printProcessingInstruction(FormatStack fstack, org.w3c.dom.Document basedoc, ProcessingInstruction pi)
This will handle printing of aProcessingInstruction
.protected org.w3c.dom.Text
printText(FormatStack fstack, org.w3c.dom.Document basedoc, Text text)
This will handle printing of aText
.java.util.List<org.w3c.dom.Node>
process(org.w3c.dom.Document basedoc, Format format, java.util.List<? extends Content> list)
This will convert the list of JDOM
using the given DOM Document to create the resulting list of DOM Nodes.Content
org.w3c.dom.Attr
process(org.w3c.dom.Document basedoc, Format format, Attribute attribute)
This will convert the
using the given DOM Document to create the resulting DOM Attr.Attribute
org.w3c.dom.CDATASection
process(org.w3c.dom.Document basedoc, Format format, CDATA cdata)
This will convert the
using the given DOM Document to create the resulting DOM CDATASection.CDATA
org.w3c.dom.Comment
process(org.w3c.dom.Document basedoc, Format format, Comment comment)
This will convert the
using the given DOM Document to create the resulting DOM Comment.Comment
org.w3c.dom.Document
process(org.w3c.dom.Document basedoc, Format format, Document doc)
This will convert the
to the given DOM Document.Document
org.w3c.dom.Element
process(org.w3c.dom.Document basedoc, Format format, Element element)
This will convert the
using the given DOM Document to create the resulting DOM Element.Element
org.w3c.dom.EntityReference
process(org.w3c.dom.Document basedoc, Format format, EntityRef entity)
This will convert the
using the given DOM Document to create the resulting DOM EntityReference.EntityRef
org.w3c.dom.ProcessingInstruction
process(org.w3c.dom.Document basedoc, Format format, ProcessingInstruction pi)
This will convert the
using the given DOM Document to create the resulting DOM ProcessingInstruction.ProcessingInstruction
org.w3c.dom.Text
process(org.w3c.dom.Document basedoc, Format format, Text text)
This will convert the
using the given DOM Document to create the resulting DOM Text.Text
-
Methods inherited from class org.jdom2.output.support.AbstractOutputProcessor
buildWalker
-
-
-
-
Method Detail
-
process
public org.w3c.dom.Document process(org.w3c.dom.Document basedoc, Format format, Document doc)
Description copied from interface:DOMOutputProcessor
This will convert the
to the given DOM Document.Document
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output styledoc
-Document
to format.- Returns:
- The same DOM Document as the input document, but with the JDOM content converted and added.
-
process
public org.w3c.dom.Element process(org.w3c.dom.Document basedoc, Format format, Element element)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM Element.Element
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output styleelement
-Element
to format.- Returns:
- The input JDOM Element converted to a DOM Element
-
process
public java.util.List<org.w3c.dom.Node> process(org.w3c.dom.Document basedoc, Format format, java.util.List<? extends Content> list)
Description copied from interface:DOMOutputProcessor
This will convert the list of JDOM
using the given DOM Document to create the resulting list of DOM Nodes.Content
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output stylelist
- JDOMContent
to convert.- Returns:
- The input JDOM Content List converted to a List of DOM Nodes
-
process
public org.w3c.dom.CDATASection process(org.w3c.dom.Document basedoc, Format format, CDATA cdata)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM CDATASection.CDATA
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output stylecdata
-CDATA
to format.- Returns:
- The input JDOM CDATA converted to a DOM CDATASection
-
process
public org.w3c.dom.Text process(org.w3c.dom.Document basedoc, Format format, Text text)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM Text.Text
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output styletext
-Text
to format.- Returns:
- The input JDOM Text converted to a DOM Text
-
process
public org.w3c.dom.Comment process(org.w3c.dom.Document basedoc, Format format, Comment comment)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM Comment.Comment
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output stylecomment
-Comment
to format.- Returns:
- The input JDOM Comment converted to a DOM Comment
-
process
public org.w3c.dom.ProcessingInstruction process(org.w3c.dom.Document basedoc, Format format, ProcessingInstruction pi)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM ProcessingInstruction.ProcessingInstruction
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output stylepi
-ProcessingInstruction
to format.- Returns:
- The input JDOM ProcessingInstruction converted to a DOM ProcessingInstruction
-
process
public org.w3c.dom.EntityReference process(org.w3c.dom.Document basedoc, Format format, EntityRef entity)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM EntityReference.EntityRef
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output styleentity
-EntityRef
to format.- Returns:
- The input JDOM EntityRef converted to a DOM EntityReference
-
process
public org.w3c.dom.Attr process(org.w3c.dom.Document basedoc, Format format, Attribute attribute)
Description copied from interface:DOMOutputProcessor
This will convert the
using the given DOM Document to create the resulting DOM Attr.Attribute
- Specified by:
process
in interfaceDOMOutputProcessor
- Parameters:
basedoc
- The DOM document to use for the conversionformat
-Format
instance specifying output styleattribute
-Attribute
to format.- Returns:
- The input JDOM Attribute converted to a DOM Attr
-
printDocument
protected org.w3c.dom.Document printDocument(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Document doc)
This will handle printing of aDocument
.- Parameters:
fstack
- the FormatStacknstack
- the NamespaceStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodesdoc
-Document
to write.- Returns:
- The input JDOM document converted to a DOM document.
-
printProcessingInstruction
protected org.w3c.dom.ProcessingInstruction printProcessingInstruction(FormatStack fstack, org.w3c.dom.Document basedoc, ProcessingInstruction pi)
This will handle printing of aProcessingInstruction
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodespi
-ProcessingInstruction
to write.- Returns:
- The input JDOM ProcessingInstruction converted to a DOM ProcessingInstruction.
-
printComment
protected org.w3c.dom.Comment printComment(FormatStack fstack, org.w3c.dom.Document basedoc, Comment comment)
This will handle printing of aComment
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodescomment
-Comment
to write.- Returns:
- The input JDOM Comment converted to a DOM Comment
-
printEntityRef
protected org.w3c.dom.EntityReference printEntityRef(FormatStack fstack, org.w3c.dom.Document basedoc, EntityRef entity)
This will handle printing of anEntityRef
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodesentity
-EntotyRef
to write.- Returns:
- The input JDOM EntityRef converted to a DOM EntityReference
-
printCDATA
protected org.w3c.dom.CDATASection printCDATA(FormatStack fstack, org.w3c.dom.Document basedoc, CDATA cdata)
This will handle printing of aCDATA
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodescdata
-CDATA
to write.- Returns:
- The input JDOM CDATA converted to a DOM CDATASection
-
printText
protected org.w3c.dom.Text printText(FormatStack fstack, org.w3c.dom.Document basedoc, Text text)
This will handle printing of aText
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodestext
-Text
to write.- Returns:
- The input JDOM Text converted to a DOM Text
-
printAttribute
protected org.w3c.dom.Attr printAttribute(FormatStack fstack, org.w3c.dom.Document basedoc, Attribute attribute)
This will handle printing of aAttribute
.- Parameters:
fstack
- the FormatStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodesattribute
-Attribute
to write.- Returns:
- The input JDOM Attribute converted to a DOM Attr
-
printElement
protected org.w3c.dom.Element printElement(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Element element)
This will handle printing of anElement
.This method arranges for outputting the Element infrastructure including Namespace Declarations and Attributes.
The actual formatting of the content is managed by the Walker created for the Element's content.
- Parameters:
fstack
- the FormatStacknstack
- the NamespaceStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodeselement
-Element
to write.- Returns:
- The input JDOM Element converted to a DOM Element
-
printContent
protected void printContent(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, org.w3c.dom.Node target, Walker walker)
This will handle printing of a List ofContent
. Uses the Walker to ensure formatting.- Parameters:
fstack
- the FormatStacknstack
- the NamespaceStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodestarget
- the DOM node this content should be appended to.walker
-List
ofContent
to write.
-
helperContentDispatcher
protected org.w3c.dom.Node helperContentDispatcher(FormatStack fstack, NamespaceStack nstack, org.w3c.dom.Document basedoc, Content content)
This method contains code which is reused in a number of places. It simply determines what content is passed in, and dispatches it to the correct print* method.- Parameters:
fstack
- The current FormatStacknstack
- the NamespaceStackbasedoc
- The org.w3c.dom.Document for creating DOM Nodescontent
- The content to dispatch- Returns:
- the input JDOM Content converted to a DOM Node.
-
-