org.apache.xpath.axes

Class PredicatedNodeTest

Implemented Interfaces:
java.io.Serializable, ExpressionNode, SourceLocator, SubContextList, XPathVisitable
Known Direct Subclasses:
AxesWalker, LocPathIterator

public abstract class PredicatedNodeTest
extends NodeTest
implements SubContextList

See Also:
Serialized Form

Nested Class Summary

Field Summary

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

Method Summary

short
acceptNode(int n)
Test whether a specified node is visible in the logical view of a TreeWalker or NodeIterator.
void
callPredicateVisitors(XPathVisitor visitor)
This will traverse the heararchy, calling the visitor for each member.
boolean
canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.
Object
clone()
Get a cloned PrdicatedNodeTest.
boolean
deepEquals(Expression expr)
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
getLastPos(XPathContext xctxt)
Get the index of the last node that can be itterated to.
LocPathIterator
getLocPathIterator()
Get the owning location path iterator.
Expression
getPredicate(int index)
Get a predicate expression at the given index.
int
getPredicateCount()
Get the number of predicates that this walker has.
int
getPredicateIndex()
Get which predicate is executing.
int
getProximityPosition()
Get the current sub-context position.
int
getProximityPosition(XPathContext xctxt)
Get the current sub-context position.
void
initProximityPosition(int i)
Init the proximity position to zero for a forward axes.
boolean
isReverseAxes()
Tells if this is a reverse axes.
void
resetProximityPositions()
Reset the proximity positions counts.
void
setLocPathIterator(LocPathIterator li)
Set the location path iterator owner for this walker.
void
setPredicateCount(int count)
Set the number of predicates that this walker has.

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

Method Details

acceptNode

public short acceptNode(int n)
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 .


callPredicateVisitors

public void callPredicateVisitors(XPathVisitor visitor)
This will traverse the heararchy, calling the visitor for each member. If the called visitor method returns false, the subtree should not be called.

Parameters:
visitor - The visitor whose appropriate method will be called.


canTraverseOutsideSubtree

public boolean canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.
Overrides:
canTraverseOutsideSubtree in interface Expression

Returns:
true if traversal outside the context node's subtree can occur.


clone

public Object clone()
            throws CloneNotSupportedException
Get a cloned PrdicatedNodeTest.

Returns:
A new PredicatedNodeTest that can be used without mutating this one.


deepEquals

public boolean deepEquals(Expression expr)
Overrides:
deepEquals in interface NodeTest

See Also:
Expression.deepEquals(Expression)


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 NodeTest

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).


getLastPos

public int getLastPos(XPathContext xctxt)
Get the index of the last node that can be itterated to.
Specified by:
getLastPos in interface SubContextList

Parameters:
xctxt - XPath runtime context.

Returns:
the index of the last node that can be itterated to.


getLocPathIterator

public LocPathIterator getLocPathIterator()
Get the owning location path iterator.

Returns:
the owning location path iterator, which should not be null.


getPredicate

public Expression getPredicate(int index)
Get a predicate expression at the given index.

Parameters:
index - Index of the predicate.

Returns:
A predicate expression.


getPredicateCount

public int getPredicateCount()
Get the number of predicates that this walker has.

Returns:
the number of predicates that this walker has.


getPredicateIndex

public int getPredicateIndex()
Get which predicate is executing.

Returns:
The current predicate index, or -1 if no predicate is executing.


getProximityPosition

public int getProximityPosition()
Get the current sub-context position.

Returns:
The node position of this walker in the sub-context node list.


getProximityPosition

public int getProximityPosition(XPathContext xctxt)
Get the current sub-context position.
Specified by:
getProximityPosition in interface SubContextList

Parameters:
xctxt - The XPath runtime context.

Returns:
The node position of this walker in the sub-context node list.


initProximityPosition

public void initProximityPosition(int i)
            throws TransformerException
Init the proximity position to zero for a forward axes.

Parameters:
i - The index into the m_proximityPositions array.

Throws:
TransformerException -


isReverseAxes

public boolean isReverseAxes()
Tells if this is a reverse axes.

Returns:
false, unless a derived class overrides.


resetProximityPositions

public void resetProximityPositions()
Reset the proximity positions counts.


setLocPathIterator

public void setLocPathIterator(LocPathIterator li)
Set the location path iterator owner for this walker. Besides initialization, this function is called during cloning operations.

Parameters:
li - non-null reference to the owning location path iterator.


setPredicateCount

public void setPredicateCount(int count)
Set the number of predicates that this walker has. This does more that one would think, as it creates a new predicate array of the size of the count argument, and copies count predicates into the new one from the old, and then reassigns the predicates value. All this to keep from having to have a predicate count value.

Parameters:
count - The number of predicates, which must be equal or less than the existing count.


Copyright B) 2004 Apache XML Project. All Rights Reserved.