org.apache.xpath.axes
Class FilterExprIterator

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

public class FilterExprIterator
extends BasicTestIterator

See Also:
Serialized Form

Nested Class Summary
(package private)  class FilterExprIterator.filterExprOwner
           
 
Nested classes 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
           
 
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 class org.apache.xpath.Expression
 
Fields inherited from interface org.apache.xml.dtm.DTMIterator
FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP
 
Constructor Summary
FilterExprIterator()
          Create a ChildTestIterator object.
FilterExprIterator(Expression expr)
          Create a ChildTestIterator 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(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, 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

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 ChildTestIterator object.

Throws:
javax.xml.transform.TransformerException

FilterExprIterator

public FilterExprIterator(Expression expr)
Create a ChildTestIterator object.

Throws:
javax.xml.transform.TransformerException
Method Detail

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.

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(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
See Also:
Expression.deepEquals(Expression)