## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.9

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# TreeWalker Class Reference

Inheritance diagram for TreeWalker:

[legend]
List of all members.

## Public Member Functions

- TreeWalker ()
    Constructor.
- virtual ~TreeWalker ()
- const XalanNode * traverse (const XalanNode *pos)
    Perform a document-order traversal.
- XalanNode * traverse (XalanNode *pos)
    Perform a document-order traversal.
- const XalanNode * traverse (const XalanNode *pos, const XalanNode *parent)
    Perform a document-order traversal stopping at the provided parent node.
- XalanNode * traverse (XalanNode *pos, XalanNode *parent)
    Perform a document-order traversal stopping at the provided parent node.
- virtual void traverseSubtree (const XalanNode *pos)
    Perform a pre-order traversal.
- virtual void traverseSubtree (XalanNode *pos)
    Perform a pre-order traversal.

## Protected Member Functions

- virtual bool startNode (const XalanNode *node)=0
    Called when first walking a node.
- virtual bool startNode (XalanNode *node)=0
    Called when first walking a node.
- virtual bool endNode (const XalanNode *node)=0
    Called when leaving a node.
- virtual bool endNode (XalanNode *node)=0
    Called when leaving a node.

## Constructor & Destructor Documentation

TreeWalker::TreeWalker | ( |  | ) |

| Constructor.

virtual TreeWalker::~TreeWalker | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual bool TreeWalker::endNode | ( | XalanNode * | node | ) | `[protected, pure virtual]`

Called when leaving a node.

Parameters:

  node | The node

Returns:
  return false if the walk should continue, or true if it should not.

Implemented in XalanDocumentPrefixResolver::NamespaceNodesTreeWalker, NodeNameTreeWalker, and FormatterTreeWalker.

virtual bool TreeWalker::endNode | ( | const XalanNode * | node | ) | `[protected, pure virtual]`

Called when leaving a node.

Parameters:

  node | The node

Returns:
  return false if the walk should continue, or true if it should not.

Implemented in XalanDocumentPrefixResolver::NamespaceNodesTreeWalker, NodeNameTreeWalker, and FormatterTreeWalker.

virtual bool TreeWalker::startNode | ( | XalanNode * | node | ) | `[protected, pure virtual]`

Called when first walking a node.

Parameters:

  node | The node

Returns:
  return false if the walk should continue, or true if it should not.

Implemented in XalanDocumentPrefixResolver::NamespaceNodesTreeWalker, NodeNameTreeWalker, and FormatterTreeWalker.

virtual bool TreeWalker::startNode | ( | const XalanNode * | node | ) | `[protected, pure virtual]`

Called when first walking a node.

Parameters:

  node | The node

Returns:
  return false if the walk should continue, or true if it should not.

Implemented in XalanDocumentPrefixResolver::NamespaceNodesTreeWalker, NodeNameTreeWalker, and FormatterTreeWalker.

XalanNode* TreeWalker::traverse | ( | XalanNode * | pos,
|  | XalanNode * | parent
| ) |

Perform a document-order traversal stopping at the provided parent node.

Derived classes and stop the traversal by returning true from startNode() or endNode(). If that happens, the function will return the next node in document order. If desired, the caller can start traversing the tree again from that point. Note that terminal nodes will always have startNode() and endNode() called before the traversal terminates.

Parameters:

  pos | The node in the tree with which to start the walk
  parent | The parent of pos. Note that for multiple calls that continue the traversal, this node must remain the same.

Returns:
  parent if the traversal completes, or the next node if the traversal doesn't complete.

const XalanNode* TreeWalker::traverse | ( | const XalanNode * | pos,
|  | const XalanNode * | parent
| ) |

Perform a document-order traversal stopping at the provided parent node.

Derived classes and stop the traversal by returning true from startNode() or endNode(). If that happens, the function will return the next node in document order. If desired, the caller can start traversing the tree again from that point. Note that terminal nodes will always have startNode() and endNode() called before the traversal terminates.

Parameters:

  pos | The node in the tree with which to start the walk
  parent | The parent of pos. Note that for multiple calls that continue the traversal, this node must remain the same.

Returns:
  parent if the traversal completes, or the next node if the traversal doesn't complete.

XalanNode* TreeWalker::traverse | ( | XalanNode * | pos | ) |

Perform a document-order traversal.

Derived classes and stop the traversal by returning true from startNode() or endNode(). If that happens, the function will return the next node in document order. If desired, the caller can start traversing the tree again from that point. Note that terminal nodes will always have startNode() and endNode() called before the traversal terminates.

Parameters:

  pos | The node in the tree with which to start the walk

Returns:
  0 if the traversal completes, or the next node if the traversal doesn't complete.

const XalanNode* TreeWalker::traverse | ( | const XalanNode * | pos | ) |

Perform a document-order traversal.

Derived classes and stop the traversal by returning true from startNode() or endNode(). If that happens, the function will return the next node in document order. If desired, the caller can start traversing the tree again from that point. Note that terminal nodes will always have startNode() and endNode() called before the traversal terminates.

Parameters:

  pos | The node in the tree with which to start the walk

Returns:
  0 if the traversal completes, or the next node if the traversal doesn't complete.

virtual void TreeWalker::traverseSubtree | ( | XalanNode * | pos | ) | `[virtual]`

Perform a pre-order traversal.

Parameters:

  pos | starting node

virtual void TreeWalker::traverseSubtree | ( | const XalanNode * | pos | ) | `[virtual]`

Perform a pre-order traversal.

Parameters:

  pos | starting node

The documentation for this class was generated from the following file:

- TreeWalker.hpp

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.9 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.