org.apache.xpath.axes

Class WalkingIterator

Implemented Interfaces:
Cloneable, DTMIterator, ExpressionOwner, java.io.Serializable, ExpressionNode, PathComponent, SourceLocator, SubContextList, XPathVisitable
Known Direct Subclasses:
WalkingIteratorSorted

public class WalkingIterator
extends LocPathIterator
implements ExpressionOwner

Location path iterator that uses Walkers.
See Also:
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

WalkingIterator(PrefixResolver nscontext)
Create a WalkingIterator object.

Method Summary

void
callVisitors(ExpressionOwner owner, XPathVisitor visitor)
Object
clone()
Get a cloned WalkingIterator that holds the same position as this iterator.
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.
void
fixupVariables(java.util.Vector vars, int globalsSize)
This function is used to fixup variables from QNames to stack frame indexes at stylesheet build time.
int
getAnalysisBits()
Get the analysis bits for this walker, as defined in the WalkerFactory.
Expression
getExpression()
AxesWalker
getFirstWalker()
Get the head of the walker list.
AxesWalker
getLastUsedWalker()
Get the last used walker.
int
nextNode()
Returns the next node in the set and advances the position of the iterator in the set.
void
reset()
Reset the iterator.
void
setExpression(Expression exp)
void
setFirstWalker(AxesWalker walker)
Set the head of the walker list.
void
setLastUsedWalker(AxesWalker walker)
Set the last used walker.
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

WalkingIterator

public WalkingIterator(PrefixResolver nscontext)
Create a WalkingIterator object.
Parameters:
nscontext - The namespace context for this iterator, should be OK if null.

Method Details

callVisitors

public void callVisitors(ExpressionOwner owner,
                         XPathVisitor visitor)
Specified by:
callVisitors in interface XPathVisitable
Overrides:
callVisitors in interface LocPathIterator

clone

public Object clone()
            throws CloneNotSupportedException
Get a cloned WalkingIterator that holds the same position as this iterator.
Specified by:
clone in interface DTMIterator
Overrides:
clone in interface PredicatedNodeTest
Returns:
A clone of this iterator that holds the same node position.

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

fixupVariables

public void fixupVariables(java.util.Vector vars,
                           int globalsSize)
This function is used to fixup variables from QNames to stack frame indexes at stylesheet build time.
Overrides:
fixupVariables in interface PredicatedNodeTest
Parameters:
vars - List of QNames that correspond to variables. This list should be searched backwards for the first qualified name that corresponds to the variable reference qname. The position of the QName in the vector from the start of the vector will be its position in the stack frame (but variables above the globalsTop value will need to be offset to the current stack frame).

getAnalysisBits

public int getAnalysisBits()
Get the analysis bits for this walker, as defined in the WalkerFactory.
Specified by:
getAnalysisBits in interface PathComponent
Overrides:
getAnalysisBits in interface LocPathIterator
Returns:
One of WalkerFactory#BIT_DESCENDANT, etc.

getExpression

public Expression getExpression()
Specified by:
getExpression in interface ExpressionOwner

getFirstWalker

public final AxesWalker getFirstWalker()
Get the head of the walker list.
Returns:
The head of the walker list, or null if this iterator does not implement walkers.

getLastUsedWalker

public final AxesWalker getLastUsedWalker()
Get the last used walker.
Returns:
The last used walker, or null.

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.

reset

public void reset()
Reset the iterator.
Specified by:
reset in interface DTMIterator
Overrides:
reset in interface LocPathIterator

setExpression

public void setExpression(Expression exp)
Specified by:
setExpression in interface ExpressionOwner

setFirstWalker

public final void setFirstWalker(AxesWalker walker)
Set the head of the walker list.
Parameters:
walker - Should be a valid AxesWalker.

setLastUsedWalker

public final void setLastUsedWalker(AxesWalker walker)
Set the last used walker.
Parameters:
walker - The last used walker, or null.

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:
context - The XPath runtime context for this transformation.

Copyright © 2006 Apache XML Project. All Rights Reserved.