org.apache.xml.dtm.ref
Class DTMTreeWalker

java.lang.Object
  extended by org.apache.xml.dtm.ref.DTMTreeWalker
Direct Known Subclasses:
TreeWalker2Result

public class DTMTreeWalker
extends java.lang.Object

This class does a pre-order walk of the DTM tree, calling a ContentHandler interface as it goes. As such, it's more like the Visitor design pattern than like the DOM's TreeWalker. I think normally this class should not be needed, because of DTM#dispatchToEvents.


Field Summary
private  org.xml.sax.ContentHandler m_contentHandler
          Local reference to a ContentHandler
protected  DTM m_dtm
          DomHelper for this TreeWalker
(package private)  boolean nextIsRaw
          Flag indicating whether following text to be processed is raw text
 
Constructor Summary
DTMTreeWalker()
          Constructor.
DTMTreeWalker(org.xml.sax.ContentHandler contentHandler, DTM dtm)
          Constructor.
 
Method Summary
private  void dispatachChars(int node)
          Optimized dispatch of characters.
protected  void endNode(int node)
          End processing of given node
 org.xml.sax.ContentHandler getcontentHandler()
          Get the ContentHandler used for the tree walk.
 void setcontentHandler(org.xml.sax.ContentHandler ch)
          Set the ContentHandler used for the tree walk.
 void setDTM(DTM dtm)
          Set the DTM to be traversed.
protected  void startNode(int node)
          Start processing given node
 void traverse(int pos)
          Perform a non-recursive pre-order/post-order traversal, operating as a Visitor.
 void traverse(int pos, int top)
          Perform a non-recursive pre-order/post-order traversal, operating as a Visitor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_contentHandler

private org.xml.sax.ContentHandler m_contentHandler
Local reference to a ContentHandler


m_dtm

protected DTM m_dtm
DomHelper for this TreeWalker


nextIsRaw

boolean nextIsRaw
Flag indicating whether following text to be processed is raw text

Constructor Detail

DTMTreeWalker

public DTMTreeWalker()
Constructor.


DTMTreeWalker

public DTMTreeWalker(org.xml.sax.ContentHandler contentHandler,
                     DTM dtm)
Constructor.

Parameters:
contentHandler - The implemention of the contentHandler operation (toXMLString, digest, ...)
Method Detail

setDTM

public void setDTM(DTM dtm)
Set the DTM to be traversed.

Parameters:
dtm - The Document Table Model to be used.

getcontentHandler

public org.xml.sax.ContentHandler getcontentHandler()
Get the ContentHandler used for the tree walk.

Returns:
the ContentHandler used for the tree walk

setcontentHandler

public void setcontentHandler(org.xml.sax.ContentHandler ch)
Set the ContentHandler used for the tree walk.

Parameters:
ch - the ContentHandler to be the result of the tree walk.

traverse

public void traverse(int pos)
              throws org.xml.sax.SAXException
Perform a non-recursive pre-order/post-order traversal, operating as a Visitor. startNode (preorder) and endNode (postorder) are invoked for each node as we traverse over them, with the result that the node is written out to m_contentHandler.

Parameters:
pos - Node in the tree at which to start (and end) traversal -- in other words, the root of the subtree to traverse over.
Throws:
TransformerException
org.xml.sax.SAXException

traverse

public void traverse(int pos,
                     int top)
              throws org.xml.sax.SAXException
Perform a non-recursive pre-order/post-order traversal, operating as a Visitor. startNode (preorder) and endNode (postorder) are invoked for each node as we traverse over them, with the result that the node is written out to m_contentHandler.

Parameters:
pos - Node in the tree where to start traversal
top - Node in the tree where to end traversal. If top==DTM.NULL, run through end of document.
Throws:
TransformerException
org.xml.sax.SAXException

dispatachChars

private final void dispatachChars(int node)
                           throws org.xml.sax.SAXException
Optimized dispatch of characters.

Throws:
org.xml.sax.SAXException

startNode

protected void startNode(int node)
                  throws org.xml.sax.SAXException
Start processing given node

Parameters:
node - Node to process
Throws:
org.xml.sax.SAXException

endNode

protected void endNode(int node)
                throws org.xml.sax.SAXException
End processing of given node

Parameters:
node - Node we just finished processing
Throws:
org.xml.sax.SAXException