org.apache.xpath.axes
Class WalkingIteratorSorted

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.WalkingIterator
                      extended by org.apache.xpath.axes.WalkingIteratorSorted
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, DTMIterator, PathComponent, SubContextList, ExpressionNode, ExpressionOwner, XPathVisitable

public class WalkingIteratorSorted
extends WalkingIterator

This class iterates over set of nodes that needs to be sorted.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.xpath.axes.PredicatedNodeTest
PredicatedNodeTest.PredOwner
 
Field Summary
protected  boolean m_inNaturalOrderStatic
          True if the nodes will be found in document order, and this can be determined statically.
(package private) static long serialVersionUID
           
 
Fields inherited from class org.apache.xpath.axes.WalkingIterator
m_firstWalker, m_lastUsedWalker
 
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
WalkingIteratorSorted(Compiler compiler, int opPos, int analysis, boolean shouldLoadWalkers)
          Create a WalkingIterator iterator, including creation of step walkers from the opcode list, and call back into the Compiler to create predicate expressions.
WalkingIteratorSorted(PrefixResolver nscontext)
          Create a WalkingIteratorSorted object.
 
Method Summary
(package private)  boolean canBeWalkedInNaturalDocOrderStatic()
          Tell if the nodeset can be walked in doc order, via static analysis.
 void fixupVariables(java.util.Vector vars, int globalsSize)
          This function is used to perform some extra analysis of the iterator.
 boolean isDocOrdered()
          Returns true if all the nodes in the iteration well be returned in document order.
 
Methods inherited from class org.apache.xpath.axes.WalkingIterator
callVisitors, clone, deepEquals, detach, getAnalysisBits, getExpression, getFirstWalker, getLastUsedWalker, nextNode, reset, setExpression, setFirstWalker, setLastUsedWalker, setRoot
 
Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, asNode, bool, cloneWithReset, 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, returnNextNode, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setNextPosition, setShouldCacheNodes, size
 
Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest
acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, 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
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_inNaturalOrderStatic

protected boolean m_inNaturalOrderStatic
True if the nodes will be found in document order, and this can be determined statically.

Constructor Detail

WalkingIteratorSorted

public WalkingIteratorSorted(PrefixResolver nscontext)
Create a WalkingIteratorSorted object.

Parameters:
nscontext - The namespace context for this iterator, should be OK if null.

WalkingIteratorSorted

WalkingIteratorSorted(Compiler compiler,
                      int opPos,
                      int analysis,
                      boolean shouldLoadWalkers)
                throws javax.xml.transform.TransformerException
Create a WalkingIterator iterator, 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.
shouldLoadWalkers - True if walkers should be loaded, or false if this is a derived iterator and it doesn't wish to load child walkers.
Throws:
javax.xml.transform.TransformerException
Method Detail

isDocOrdered

public boolean isDocOrdered()
Returns true if all the nodes in the iteration well be returned in document order.

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

canBeWalkedInNaturalDocOrderStatic

boolean canBeWalkedInNaturalDocOrderStatic()
Tell if the nodeset can be walked in doc order, via static analysis.

Returns:
true if the nodeset can be walked in doc order, without sorting.

fixupVariables

public void fixupVariables(java.util.Vector vars,
                           int globalsSize)
This function is used to perform some extra analysis of the iterator.

Overrides:
fixupVariables in class WalkingIterator
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).