FileDocCategorySizeDatePackage
DTMAxisTraverser.javaAPI DocJava SE 6 API4456Tue Jun 10 00:22:56 BST 2008com.sun.org.apache.xml.internal.dtm

DTMAxisTraverser

public abstract class DTMAxisTraverser extends Object
A class that implements traverses DTMAxisTraverser interface can traverse a set of nodes, usually as defined by an XPath axis. It is different from an iterator, because it does not need to hold state, and, in fact, must not hold any iteration-based state. It is meant to be implemented as an inner class of a DTM, and returned by the getAxisTraverser(final int axis) function.

A DTMAxisTraverser can probably not traverse a reverse axis in document order.

Typical usage:


for(int nodeHandle=myTraverser.first(myContext);
nodeHandle!=DTM.NULL;
nodeHandle=myTraverser.next(myContext,nodeHandle))
{ ... processing for node indicated by nodeHandle goes here ... }
author
Scott Boag

Fields Summary
Constructors Summary
Methods Summary
public intfirst(int context)
By the nature of the stateless traversal, the context node can not be returned or the iteration will go into an infinate loop. So to traverse an axis, the first function must be used to get the first node.

This method needs to be overloaded only by those axis that process the self node. <\p>

param
context The context node of this traversal. This is the point that the traversal starts from.
return
the first node in the traversal.

    return next(context, context);
  
public intfirst(int context, int extendedTypeID)
By the nature of the stateless traversal, the context node can not be returned or the iteration will go into an infinate loop. So to traverse an axis, the first function must be used to get the first node.

This method needs to be overloaded only by those axis that process the self node. <\p>

param
context The context node of this traversal. This is the point of origin for the traversal -- its "root node" or starting point.
param
extendedTypeID The extended type ID that must match.
return
the first node in the traversal.

    return next(context, context, extendedTypeID);
  
public abstract intnext(int context, int current)
Traverse to the next node after the current node.

param
context The context node of this traversal. This is the point of origin for the traversal -- its "root node" or starting point.
param
current The current node of the traversal. This is the last known location in the traversal, typically the node-handle returned by the previous traversal step. For the first traversal step, context should be set equal to current. Note that in order to test whether context is in the set, you must use the first() method instead.
return
the next node in the iteration, or DTM.NULL.
see
#first(int)

public abstract intnext(int context, int current, int extendedTypeID)
Traverse to the next node after the current node that is matched by the extended type ID.

param
context The context node of this traversal. This is the point of origin for the traversal -- its "root node" or starting point.
param
current The current node of the traversal. This is the last known location in the traversal, typically the node-handle returned by the previous traversal step. For the first traversal step, context should be set equal to current. Note that in order to test whether context is in the set, you must use the first() method instead.
param
extendedTypeID The extended type ID that must match.
return
the next node in the iteration, or DTM.NULL.
see
#first(int,int)