Package org.apache.commons.digester
Class NodeCreateRule.NodeBuilder
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.commons.digester.NodeCreateRule.NodeBuilder
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
- Enclosing class:
- NodeCreateRule
private class NodeCreateRule.NodeBuilder extends org.xml.sax.helpers.DefaultHandler
The SAX content handler that does all the actual work of assembling the DOM node tree from the SAX events.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
depth
Depth of the current node, relative to the element where the content handler was put into action.protected org.w3c.dom.Document
doc
A DOM Document used to create the various Node instances.protected org.xml.sax.ContentHandler
oldContentHandler
The content handler used by Digester before it was set to this content handler.protected org.w3c.dom.Node
root
The DOM node that will be pushed on Digester's stack.protected org.w3c.dom.Node
top
The current top DOM mode.
-
Constructor Summary
Constructors Constructor Description NodeBuilder(org.w3c.dom.Document doc, org.w3c.dom.Node root)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(char[] ch, int start, int length)
Appends aText
node to the current node.void
endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
Checks whether control needs to be returned to Digester.void
processingInstruction(java.lang.String target, java.lang.String data)
Adds a newProcessingInstruction
to the current node.void
startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
Adds a new childElement
to the current node.
-
-
-
Field Detail
-
oldContentHandler
protected org.xml.sax.ContentHandler oldContentHandler
The content handler used by Digester before it was set to this content handler.
-
depth
protected int depth
Depth of the current node, relative to the element where the content handler was put into action.
-
doc
protected org.w3c.dom.Document doc
A DOM Document used to create the various Node instances.
-
root
protected org.w3c.dom.Node root
The DOM node that will be pushed on Digester's stack.
-
top
protected org.w3c.dom.Node top
The current top DOM mode.
-
-
Constructor Detail
-
NodeBuilder
public NodeBuilder(org.w3c.dom.Document doc, org.w3c.dom.Node root) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
Constructor.Stores the content handler currently used by Digester so it can be reset when done, and initializes the DOM objects needed to build the node.
- Parameters:
doc
- the document to use to create nodesroot
- the root node- Throws:
javax.xml.parsers.ParserConfigurationException
- if the DocumentBuilderFactory could not be instantiatedorg.xml.sax.SAXException
- if the XMLReader could not be instantiated by Digester (should not happen)
-
-
Method Detail
-
characters
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
Appends aText
node to the current node.- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.xml.sax.helpers.DefaultHandler
- Parameters:
ch
- the characters from the XML documentstart
- the start position in the arraylength
- the number of characters to read from the array- Throws:
org.xml.sax.SAXException
- if the DOM implementation throws an exception
-
endElement
public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
Checks whether control needs to be returned to Digester.- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
- Parameters:
namespaceURI
- the namespace URIlocalName
- the local nameqName
- the qualified (prefixed) name- Throws:
org.xml.sax.SAXException
- if the DOM implementation throws an exception
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
Adds a newProcessingInstruction
to the current node.- Specified by:
processingInstruction
in interfaceorg.xml.sax.ContentHandler
- Overrides:
processingInstruction
in classorg.xml.sax.helpers.DefaultHandler
- Parameters:
target
- the processing instruction targetdata
- the processing instruction data, or null if none was supplied- Throws:
org.xml.sax.SAXException
- if the DOM implementation throws an exception
-
startElement
public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
Adds a new childElement
to the current node.- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Parameters:
namespaceURI
- the namespace URIlocalName
- the local nameqName
- the qualified (prefixed) nameatts
- the list of attributes- Throws:
org.xml.sax.SAXException
- if the DOM implementation throws an exception
-
-