org.apache.xpath.axes

Class DescendantIterator

Implemented Interfaces:
Cloneable, DTMIterator, Serializable, ExpressionNode, PathComponent, Serializable, SourceLocator, SubContextList, XPathVisitable

public class DescendantIterator
extends LocPathIterator

This class implements an optimized iterator for descendant, descendant-or-self, or "//foo" patterns.
See Also:
LocPathIterator, Serialized Form

Field Summary

Fields inherited from class org.apache.xpath.axes.LocPathIterator

m_lastFetched

Fields inherited from class org.apache.xpath.patterns.NodeTest

SCORE_NODETEST, SCORE_NONE, SCORE_NSWILD, SCORE_OTHER, SCORE_QNAME, SHOW_BYFUNCTION, SUPPORTS_PRE_STRIPPING, WILD

Fields inherited from interface org.apache.xml.dtm.DTMIterator

FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP

Constructor Summary

DescendantIterator()
Create a DescendantIterator object.

Method Summary

int
asNode(XPathContext xctxt)
Return the first node out of the nodeset, if this expression is a nodeset expression.
DTMIterator
cloneWithReset()
Get a cloned Iterator that is reset to the beginning of the query.
boolean
deepEquals(Expression expr)
void
detach()
Detaches the iterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
int
getAxis()
Returns the axis being iterated, if it is known.
int
nextNode()
Returns the next node in the set and advances the position of the iterator in the set.
void
setRoot(int context, Object environment)
Initialize the context values for this expression after it is cloned.

Methods inherited from class org.apache.xpath.axes.LocPathIterator

allowDetachToRelease, asIterator, asNode, bool, callVisitors, cloneWithReset, detach, execute, executeCharsToContentHandler, getAnalysisBits, getAxis, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLastPos, getLength, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, incrementCurrentPos, isDocOrdered, isFresh, isMutable, isNodesetExpr, item, nextNode, previousNode, reset, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setRoot, setShouldCacheNodes, size

Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest

acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, clone, deepEquals, fixupVariables, getLastPos, getLocPathIterator, getPredicate, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, initProximityPosition, isReverseAxes, resetProximityPositions, setLocPathIterator, setPredicateCount

Methods inherited from class org.apache.xpath.patterns.NodeTest

callVisitors, debugWhatToShow, deepEquals, execute, execute, execute, fixupVariables, getDefaultScore, getLocalName, getNamespace, getNodeTypeTest, getStaticScore, getWhatToShow, initNodeTest, initNodeTest, setLocalName, setNamespace, setStaticScore, setWhatToShow

Methods inherited from class org.apache.xpath.Expression

asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, deepEquals, error, execute, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, fixupVariables, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isStableNumber, num, warn, xstr

Constructor Details

DescendantIterator

public DescendantIterator()
Create a DescendantIterator object.
Parameters:

Method Details

asNode

public int asNode(XPathContext xctxt)
            throws TransformerException
Return the first node out of the nodeset, if this expression is a nodeset expression. This is the default implementation for nodesets.

WARNING: Do not mutate this class from this function!

Overrides:
asNode in interface LocPathIterator
Parameters:
xctxt - The XPath runtime context.
Returns:
the first node out of the nodeset, or DTM.NULL.

cloneWithReset

public DTMIterator cloneWithReset()
            throws CloneNotSupportedException
Get a cloned Iterator that is reset to the beginning of the query.
Specified by:
cloneWithReset in interface DTMIterator
Overrides:
cloneWithReset in interface LocPathIterator
Returns:
A cloned NodeIterator set of the start of the query.

deepEquals

public boolean deepEquals(Expression expr)
Overrides:
deepEquals in interface PredicatedNodeTest

detach

public void detach()
Detaches the iterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state. Afterdetach has been invoked, calls to nextNode orpreviousNode will raise the exception INVALID_STATE_ERR.
Specified by:
detach in interface DTMIterator
Overrides:
detach in interface LocPathIterator

getAxis

public int getAxis()
Returns the axis being iterated, if it is known.
Specified by:
getAxis in interface DTMIterator
Overrides:
getAxis in interface LocPathIterator
Returns:
Axis.CHILD, etc., or -1 if the axis is not known or is of multiple types.

nextNode

public int nextNode()
Returns the next node in the set and advances the position of the iterator in the set. After a NodeIterator is created, the first call to nextNode() returns the first node in the set.
Specified by:
nextNode in interface DTMIterator
Overrides:
nextNode in interface LocPathIterator
Returns:
The next Node in the set being iterated over, or null if there are no more members in that set.

setRoot

public void setRoot(int context,
                    Object environment)
Initialize the context values for this expression after it is cloned.
Specified by:
setRoot in interface DTMIterator
Overrides:
setRoot in interface LocPathIterator
Parameters:

Copyright B) 2004 Apache XML Project. All Rights Reserved.