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
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
NodeCreateRule.NodeBuilder(org.w3c.dom.Document doc, org.w3c.dom.Node root)
          Constructor.
 
Method Summary
 void characters(char[] ch, int start, int length)
          Appends a Text 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 new ProcessingInstruction 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 child Element to the current node.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

NodeCreateRule.NodeBuilder

public NodeCreateRule.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 nodes
root - the root node
Throws:
javax.xml.parsers.ParserConfigurationException - if the DocumentBuilderFactory could not be instantiated
org.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 a Text node to the current node.

Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Parameters:
ch - the characters from the XML document
start - the start position in the array
length - 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 interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Parameters:
namespaceURI - the namespace URI
localName - the local name
qName - 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 new ProcessingInstruction to the current node.

Specified by:
processingInstruction in interface org.xml.sax.ContentHandler
Overrides:
processingInstruction in class org.xml.sax.helpers.DefaultHandler
Parameters:
target - the processing instruction target
data - 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 child Element to the current node.

Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Parameters:
namespaceURI - the namespace URI
localName - the local name
qName - the qualified (prefixed) name
atts - the list of attributes
Throws:
org.xml.sax.SAXException - if the DOM implementation throws an exception


Copyright (c) 2001-2004 - Apache Software Foundation