org.apache.xpath.axes
Class FilterExprIterator

java.lang.Object
  extended by org.apache.xpath.Expression
      extended by org.apache.xpath.patterns.NodeTest
          extended by org.apache.xpath.axes.PredicatedNodeTest
              extended by org.apache.xpath.axes.LocPathIterator
                  extended by org.apache.xpath.axes.BasicTestIterator
                      extended by org.apache.xpath.axes.FilterExprIterator
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, DTMIterator, PathComponent, SubContextList, ExpressionNode, XPathVisitable

public class FilterExprIterator
extends BasicTestIterator

See Also:
Serialized Form

Nested Class Summary
(package private)  class FilterExprIterator.filterExprOwner
           
 
Nested classes/interfaces inherited from class org.apache.xpath.axes.PredicatedNodeTest
PredicatedNodeTest.PredOwner
 
Field Summary
private  boolean m_canDetachNodeset
           
private  Expression m_expr
          The contained expression.
private  XNodeSet m_exprObj
          The result of executing m_expr.
private  boolean m_mustHardReset
           
(package private) static long serialVersionUID
           
 
Fields inherited from class org.apache.xpath.axes.LocPathIterator
m_allowDetach, m_cdtm, m_clones, m_context, m_currentContextNode, m_execContext, m_lastFetched, m_length, m_pos, m_stackFrame
 
Fields inherited from class org.apache.xpath.axes.PredicatedNodeTest
DEBUG_PREDICATECOUNTING, m_foundLast, m_lpi, m_predCount, m_predicateIndex, m_proximityPositions
 
Fields 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
 
Fields inherited from interface org.apache.xml.dtm.DTMIterator
FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP
 
Constructor Summary
FilterExprIterator()
          Create a FilterExprIterator object.
FilterExprIterator(Expression expr)
          Create a FilterExprIterator object.
 
Method Summary
 void callPredicateVisitors(XPathVisitor visitor)
          This will traverse the heararchy, calling the visitor for each member.
 boolean deepEquals(Expression expr)
          Compare this object with another object and see if they are equal, include the sub heararchy.
 void detach()
          Detaches the walker 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 getInnerExpression()
          Get the inner contained expression of this filter.
protected  int getNextNode()
          Get the next node via getNextXXX.
 boolean isDocOrdered()
          Returns true if all the nodes in the iteration well be returned in document order.
 void setInnerExpression(Expression expr)
          Set the inner contained expression of this filter.
 void setRoot(int context, java.lang.Object environment)
          Initialize the context values for this expression after it is cloned.
 
Methods inherited from class org.apache.xpath.axes.BasicTestIterator
cloneWithReset, nextNode
 
Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, asNode, bool, callVisitors, execute, executeCharsToContentHandler, getAxis, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLastPos, getLength, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, incrementCurrentPos, 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, canTraverseOutsideSubtree, clone, countProximityPosition, executePredicates, 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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.xml.dtm.DTMIterator
clone
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_expr

private Expression m_expr
The contained expression. Should be non-null.


m_exprObj

private transient XNodeSet m_exprObj
The result of executing m_expr. Needs to be deep cloned on clone op.


m_mustHardReset

private boolean m_mustHardReset

m_canDetachNodeset

private boolean m_canDetachNodeset
Constructor Detail

FilterExprIterator

public FilterExprIterator()
Create a FilterExprIterator object.


FilterExprIterator

public FilterExprIterator(Expression expr)
Create a FilterExprIterator object.

Method Detail

setRoot

public void setRoot(int context,
                    java.lang.Object environment)
Initialize the context values for this expression after it is cloned.

Specified by:
setRoot in interface DTMIterator
Overrides:
setRoot in class LocPathIterator
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.


getNextNode

protected int getNextNode()
Get the next node via getNextXXX. Bottlenecked for derived class override.

Specified by:
getNextNode in class BasicTestIterator
Returns:
The next node on the axis, or DTM.NULL.

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.

Specified by:
detach in interface DTMIterator
Overrides:
detach in class 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 class 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).

getInnerExpression

public Expression getInnerExpression()
Get the inner contained expression of this filter.


setInnerExpression

public void setInnerExpression(Expression expr)
Set the inner contained expression of this filter.


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 class LocPathIterator
Returns:
One of WalkerFactory#BIT_DESCENDANT, etc.

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!

Specified by:
isDocOrdered in interface DTMIterator
Overrides:
isDocOrdered in class LocPathIterator
Returns:
true as a default.

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.

Overrides:
callPredicateVisitors in class PredicatedNodeTest
Parameters:
visitor - The visitor whose appropriate method will be called.

deepEquals

public boolean deepEquals(Expression expr)
Description copied from class: Expression
Compare this object with another object and see if they are equal, include the sub heararchy.

Overrides:
deepEquals in class PredicatedNodeTest
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:
Expression.deepEquals(Expression)