org.apache.xpath.axes
Class DescendantIterator

java.lang.Object
  |
  +--org.apache.xpath.Expression
        |
        +--org.apache.xpath.patterns.NodeTest
              |
              +--org.apache.xpath.axes.PredicatedNodeTest
                    |
                    +--org.apache.xpath.axes.LocPathIterator
                          |
                          +--org.apache.xpath.axes.DescendantIterator

public class DescendantIterator
extends LocPathIterator

**For advanced use only** This class implements an optimized iterator for descendant, descendant-or-self, or "//foo" patterns.

See Also:
org.apache.xpath.axes.WalkerFactory#newLocPathIterator, Serialized Form

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
 
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, java.lang.Object environment)
          Initialize the context values for this expression after it is cloned.
 
Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, bool, callVisitors, execute, executeCharsToContentHandler, getAnalysisBits, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLastPos, getLength, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, incrementCurrentPos, isDocOrdered, isFresh, isMutable, isNodesetExpr, item, previousNode, reset, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setShouldCacheNodes, size
 
Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest
acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, clone, fixupVariables, getLocPathIterator, getPredicate, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, initProximityPosition, isReverseAxes, resetProximityPositions, setLocPathIterator, setPredicateCount
 
Methods inherited from class org.apache.xpath.patterns.NodeTest
debugWhatToShow, execute, execute, getDefaultScore, getLocalName, getNamespace, getNodeTypeTest, getStaticScore, initNodeTest, initNodeTest, setLocalName, setNamespace, setStaticScore, setWhatToShow
 
Methods inherited from class org.apache.xpath.Expression
asIteratorRaw, assertion, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DescendantIterator

public DescendantIterator()
Create a DescendantIterator object.
Parameters:
compiler - A reference to the Compiler that contains the op map.
opPos - The position within the op map, which contains the location path expression for this itterator.
Throws:
TransformerException -  
Method Detail

cloneWithReset

public DTMIterator cloneWithReset()
                           throws java.lang.CloneNotSupportedException
Get a cloned Iterator that is reset to the beginning of the query.
Returns:
A cloned NodeIterator set of the start of the query.
Throws:
java.lang.CloneNotSupportedException -  
Overrides:
cloneWithReset in class LocPathIterator

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.
Returns:
The next Node in the set being iterated over, or null if there are no more members in that set.
Throws:
DOMException - INVALID_STATE_ERR: Raised if this method is called after the detach method was invoked.
Overrides:
nextNode in class LocPathIterator

setRoot

public void setRoot(int context,
                    java.lang.Object environment)
Initialize the context values for this expression after it is cloned.
Parameters:
execContext - The XPath runtime context for this transformation.
Overrides:
setRoot in class LocPathIterator

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!

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

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.
Overrides:
detach in class LocPathIterator

getAxis

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

deepEquals

public boolean deepEquals(Expression expr)
Overrides:
deepEquals in class PredicatedNodeTest
See Also:
Expression.deepEquals(Expression)


Copyright © 2003 Apache XML Project. All Rights Reserved.