Package org.apache.xpath.axes
Class WalkingIterator
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.WalkingIterator
- All Implemented Interfaces:
Serializable
,Cloneable
,SourceLocator
,DTMIterator
,PathComponent
,SubContextList
,ExpressionNode
,ExpressionOwner
,XPathVisitable
- Direct Known Subclasses:
WalkingIteratorSorted
Location path iterator that uses Walkers.
- See Also:
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
callVisitors
(ExpressionOwner owner, XPathVisitor visitor) This will traverse the heararchy, calling the visitor for each member.clone()
Get a cloned WalkingIterator that holds the same position as this iterator.boolean
deepEquals
(Expression expr) Compare this object with another object and see if they are equal, include the sub heararchy.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
(Vector vars, int globalsSize) This function is used to fixup variables from QNames to stack frame indexes at stylesheet build time.int
Get the analysis bits for this walker, as defined in the WalkerFactory.Get the raw Expression object that this class wraps.final AxesWalker
Get the head of the walker list.final AxesWalker
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) Set the raw expression object for this object.final void
setFirstWalker
(AxesWalker walker) Set the head of the walker list.final void
setLastUsedWalker
(AxesWalker walker) Set the last used walker.void
Initialize the context values for this expression after it is cloned.Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, asNode, bool, cloneWithReset, execute, executeCharsToContentHandler, getAxis, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLastPos, getLength, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, incrementCurrentPos, isDocOrdered, isFresh, isMutable, isNodesetExpr, item, previousNode, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setShouldCacheNodes, size
Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest
acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, 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
-
Constructor Details
-
WalkingIterator
Create a WalkingIterator object.- Parameters:
nscontext
- The namespace context for this iterator, should be OK if null.
-
-
Method Details
-
getAnalysisBits
public int getAnalysisBits()Get the analysis bits for this walker, as defined in the WalkerFactory.- Specified by:
getAnalysisBits
in interfacePathComponent
- Overrides:
getAnalysisBits
in classLocPathIterator
- Returns:
- One of WalkerFactory#BIT_DESCENDANT, etc.
-
clone
Get a cloned WalkingIterator that holds the same position as this iterator.- Specified by:
clone
in interfaceDTMIterator
- Overrides:
clone
in classPredicatedNodeTest
- Returns:
- A clone of this iterator that holds the same node position.
- Throws:
CloneNotSupportedException
-
reset
public void reset()Reset the iterator.- Specified by:
reset
in interfaceDTMIterator
- Overrides:
reset
in classLocPathIterator
-
setRoot
Initialize the context values for this expression after it is cloned.- Specified by:
setRoot
in interfaceDTMIterator
- Overrides:
setRoot
in classLocPathIterator
- Parameters:
context
- The XPath runtime context for this transformation.environment
- The environment object. The environment in which this iterator operates, which should provide:- a node (the context node... same value as "root" defined below)
- a pair of non-zero positive integers (the context position and the context size)
- a set of variable bindings
- a function library
- the set of namespace declarations in scope for the expression.
At this time the exact implementation of this environment is application dependent. Probably a proper interface will be created fairly soon.
-
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 interfaceDTMIterator
- Specified by:
nextNode
in classLocPathIterator
- Returns:
- The next
Node
in the set being iterated over, ornull
if there are no more members in that set.
-
getFirstWalker
Get the head of the walker list.- Returns:
- The head of the walker list, or null if this iterator does not implement walkers.
-
setFirstWalker
Set the head of the walker list.- Parameters:
walker
- Should be a valid AxesWalker.
-
setLastUsedWalker
Set the last used walker.- Parameters:
walker
- The last used walker, or null.
-
getLastUsedWalker
Get the last used walker.- Returns:
- The last used walker, or null.
-
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 tonextNode
orpreviousNode
will raise the exception INVALID_STATE_ERR.- Specified by:
detach
in interfaceDTMIterator
- Overrides:
detach
in classLocPathIterator
-
fixupVariables
This function is used to fixup variables from QNames to stack frame indexes at stylesheet build time.- Overrides:
fixupVariables
in classPredicatedNodeTest
- 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).
-
callVisitors
Description copied from interface:XPathVisitable
This will traverse the heararchy, calling the visitor for each member. If the called visitor method returns false, the subtree should not be called.- Specified by:
callVisitors
in interfaceXPathVisitable
- Overrides:
callVisitors
in classLocPathIterator
- Parameters:
owner
- The owner of the visitor, where that path may be rewritten if needed.visitor
- The visitor whose appropriate method will be called.- See Also:
-
getExpression
Description copied from interface:ExpressionOwner
Get the raw Expression object that this class wraps.- Specified by:
getExpression
in interfaceExpressionOwner
- Returns:
- the raw Expression object, which should not normally be null.
- See Also:
-
setExpression
Description copied from interface:ExpressionOwner
Set the raw expression object for this object.- Specified by:
setExpression
in interfaceExpressionOwner
- Parameters:
exp
- the raw Expression object, which should not normally be null.- See Also:
-
deepEquals
Description copied from class:Expression
Compare this object with another object and see if they are equal, include the sub heararchy.- Overrides:
deepEquals
in classPredicatedNodeTest
- Parameters:
expr
- Another expression object.- Returns:
- true if this objects class and the expr object's class are the same, and the data contained within both objects are considered equal.
- See Also:
-