org.apache.xpath.axes
Class MatchPatternIterator
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.MatchPatternIterator
- All Implemented Interfaces:
- Cloneable, DTMIterator, ExpressionNode, PathComponent, Serializable, javax.xml.transform.SourceLocator, SubContextList, XPathVisitable
- public class MatchPatternIterator
- extends LocPathIterator
This class treats a
LocationPath as a
filtered iteration over the tree, evaluating each node in a super axis
traversal against the LocationPath interpreted as a match pattern. This
class is useful to find nodes in document order that are complex paths
whose steps probably criss-cross each other.
- See Also:
- Serialized Form
Field Summary |
private static boolean |
DEBUG
DEBUG flag for diagnostic dumps. |
protected StepPattern |
m_pattern
This is the select pattern, translated into a match pattern. |
protected int |
m_superAxis
The traversal axis from where the nodes will be filtered. |
protected DTMAxisTraverser |
m_traverser
The DTM inner traversal class, that corresponds to the super axis. |
Fields inherited from class org.apache.xpath.Expression |
|
Constructor Summary |
(package private) |
MatchPatternIterator(Compiler compiler,
int opPos,
int analysis)
Create a LocPathIterator object, including creation
of step walkers from the opcode list, and call back
into the Compiler to create predicate expressions. |
Method Summary |
short |
acceptNode(int n,
XPathContext xctxt)
Test whether a specified node is visible in the logical view of a
TreeWalker or NodeIterator. |
protected int |
getNextNode()
Get the next node via getNextXXX. |
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, previousNode, reset, returnNextNode, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setNextPosition, setShouldCacheNodes, size |
Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest |
acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, clone, countProximityPosition, deepEquals, executePredicates, fixupVariables, getLocPathIterator, getPredicate, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, getProximityPosition, initPredicateInfo, initProximityPosition, isReverseAxes, nodeToString, resetProximityPositions, setLocPathIterator, setPredicateCount |
Methods inherited from class org.apache.xpath.patterns.NodeTest |
calcScore, 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, isSameClass, isStableNumber, num, warn, xstr |
m_pattern
protected StepPattern m_pattern
- This is the select pattern, translated into a match pattern.
m_superAxis
protected int m_superAxis
- The traversal axis from where the nodes will be filtered.
m_traverser
protected DTMAxisTraverser m_traverser
- The DTM inner traversal class, that corresponds to the super axis.
DEBUG
private static final boolean DEBUG
- DEBUG flag for diagnostic dumps.
- See Also:
- Constant Field Values
MatchPatternIterator
MatchPatternIterator(Compiler compiler,
int opPos,
int analysis)
throws javax.xml.transform.TransformerException
- Create a LocPathIterator object, including creation
of step walkers from the opcode list, and call back
into the Compiler to create predicate expressions.
- Parameters:
compiler
- The Compiler which is creating
this expression.opPos
- The position of this iterator in the
opcode list from the compiler.analysis
- Analysis bits that give general information about the
LocationPath.
- Throws:
javax.xml.transform.TransformerException
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 class LocPathIterator
getNextNode
protected int getNextNode()
- Get the next node via getNextXXX. Bottlenecked for derived class override.
- Returns:
- The next node on the axis, or DTM.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
- Specified by:
nextNode
in class LocPathIterator
- Returns:
- The next
Node
in the set being iterated over, or
null
if there are no more members in that set.
acceptNode
public short acceptNode(int n,
XPathContext xctxt)
- Test whether a specified node is visible in the logical view of a
TreeWalker or NodeIterator. This function will be called by the
implementation of TreeWalker and NodeIterator; it is not intended to
be called directly from user code.
- Parameters:
n
- The node to check to see if it passes the filter or not.
- Returns:
- a constant to determine whether the node is accepted,
rejected, or skipped, as defined above .