Package org.apache.xpath.axes
Class ReverseAxesWalker
java.lang.Object
org.apache.xpath.Expression
org.apache.xpath.patterns.NodeTest
org.apache.xpath.axes.PredicatedNodeTest
org.apache.xpath.axes.AxesWalker
org.apache.xpath.axes.ReverseAxesWalker
- All Implemented Interfaces:
Serializable,Cloneable,SourceLocator,PathComponent,SubContextList,ExpressionNode,ExpressionOwner,XPathVisitable
public class ReverseAxesWalker extends AxesWalker
Walker for a reverse axes.
- See Also:
- XPath 2.4 Predicates, Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected DTMAxisIteratorm_iteratorThe DTM inner traversal class, that corresponds to the super axis.Fields inherited from class org.apache.xpath.axes.AxesWalker
m_axis, m_nextWalker, m_traverserFields inherited from class org.apache.xpath.axes.PredicatedNodeTest
m_foundLast, m_lpi, m_predCount, m_proximityPositionsFields inherited from class org.apache.xpath.patterns.NodeTest
m_name, m_whatToShow, SCORE_NODETEST, SCORE_NONE, SCORE_NSWILD, SCORE_OTHER, SCORE_QNAME, SHOW_BYFUNCTION, SUPPORTS_PRE_STRIPPING, WILD -
Method Summary
Modifier and Type Method Description protected voidcountProximityPosition(int i)Count backwards one proximity position.voiddetach()Detaches the walker from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.intgetLastPos(XPathContext xctxt)Get the number of nodes in this node list.protected intgetNextNode()Get the next node in document order on the axes.protected intgetProximityPosition(int predicateIndex)Get the current sub-context position.booleanisDocOrdered()Returns true if all the nodes in the iteration well be returned in document order.booleanisReverseAxes()Tells if this is a reverse axes.voidsetRoot(int root)Set the root node of the TreeWalker.Methods inherited from class org.apache.xpath.axes.AxesWalker
callVisitors, clone, deepEquals, getAnalysisBits, getAxis, getCurrentNode, getDTM, getExpression, getNextWalker, getPrevWalker, getRoot, init, nextNode, setDefaultDTM, setExpression, setNextWalker, setPrevWalker, wiMethods inherited from class org.apache.xpath.axes.PredicatedNodeTest
acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, fixupVariables, getLocPathIterator, getPredicate, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, initPredicateInfo, initProximityPosition, nodeToString, resetProximityPositions, setLocPathIterator, setPredicateCountMethods inherited from class org.apache.xpath.patterns.NodeTest
calcScore, debugWhatToShow, execute, execute, execute, getDefaultScore, getLocalName, getNamespace, getNodeTypeTest, getStaticScore, getWhatToShow, initNodeTest, initNodeTest, setLocalName, setNamespace, setStaticScore, setWhatToShowMethods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, error, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isSameClass, isStableNumber, num, warn, xstr
-
Field Details
-
m_iterator
The DTM inner traversal class, that corresponds to the super axis.
-
-
Method Details
-
setRoot
public void setRoot(int root)Set the root node of the TreeWalker. (Not part of the DOM2 TreeWalker interface).- Overrides:
setRootin classAxesWalker- Parameters:
root- The context node of this step.
-
detach
public void detach()Detaches the walker from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.- Overrides:
detachin classAxesWalker
-
getNextNode
protected int getNextNode()Get the next node in document order on the axes.- Overrides:
getNextNodein classAxesWalker- Returns:
- the next node in document order on the axes, or null.
-
isReverseAxes
public boolean isReverseAxes()Tells if this is a reverse axes. Overrides AxesWalker#isReverseAxes.- Overrides:
isReverseAxesin classPredicatedNodeTest- Returns:
- true for this class.
-
getProximityPosition
protected int getProximityPosition(int predicateIndex)Get the current sub-context position. In order to do the reverse axes count, for the moment this re-searches the axes up to the predicate. An optimization on this is to cache the nodes searched, but, for the moment, this case is probably rare enough that the added complexity isn't worth it.- Overrides:
getProximityPositionin classPredicatedNodeTest- Parameters:
predicateIndex- The predicate index of the proximity position.- Returns:
- The pridicate index, or -1.
-
countProximityPosition
protected void countProximityPosition(int i)Count backwards one proximity position.- Overrides:
countProximityPositionin classPredicatedNodeTest- Parameters:
i- The predicate index.
-
getLastPos
Get the number of nodes in this node list. The function is probably ill named?- Specified by:
getLastPosin interfaceSubContextList- Overrides:
getLastPosin classAxesWalker- Parameters:
xctxt- The XPath runtime context.- Returns:
- the number of nodes in this node list.
-
isDocOrdered
public boolean isDocOrdered()Returns true if all the nodes in the iteration well be returned in document order. Warning: This can only be called after setRoot has been called!- Overrides:
isDocOrderedin classAxesWalker- Returns:
- false.
-