org.apache.xpath.axes
Class UnionChildIterator

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.ChildTestIterator
                          extended byorg.apache.xpath.axes.UnionChildIterator
All Implemented Interfaces:
Cloneable, DTMIterator, ExpressionNode, PathComponent, Serializable, javax.xml.transform.SourceLocator, SubContextList, XPathVisitable

public class UnionChildIterator
extends ChildTestIterator

This class defines a simplified type of union iterator that only tests along the child axes. If the conditions are right, it is much faster than using a UnionPathIterator.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.apache.xpath.axes.PredicatedNodeTest
PredicatedNodeTest.PredOwner
 
Field Summary
private  PredicatedNodeTest[] m_nodeTests
          Even though these may hold full LocPathIterators, this array does not have to be cloned, since only the node test and predicate portion are used, and these only need static information.
 
Fields inherited from class org.apache.xpath.axes.ChildTestIterator
m_traverser
 
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
UnionChildIterator()
          Constructor for UnionChildIterator
 
Method Summary
 short acceptNode(int n)
          Test whether a specified node is visible in the logical view of a TreeWalker or NodeIterator.
 void addNodeTest(PredicatedNodeTest test)
          Add a node test to the union list.
 
Methods inherited from class org.apache.xpath.axes.ChildTestIterator
cloneWithReset, getAxis, getNextNode, setRoot
 
Methods inherited from class org.apache.xpath.axes.BasicTestIterator
nextNode
 
Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, asNode, bool, callVisitors, detach, execute, executeCharsToContentHandler, getAnalysisBits, 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
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
 
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_nodeTests

private PredicatedNodeTest[] m_nodeTests
Even though these may hold full LocPathIterators, this array does not have to be cloned, since only the node test and predicate portion are used, and these only need static information. However, also note that index predicates can not be used!

Constructor Detail

UnionChildIterator

public UnionChildIterator()
Constructor for UnionChildIterator

Method Detail

addNodeTest

public void addNodeTest(PredicatedNodeTest test)
Add a node test to the union list.

Parameters:
test - reference to a NodeTest, which will be added directly to the list of node tests (in other words, it will not be cloned). The parent of this test will be set to this object.

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.

Overrides:
acceptNode in class PredicatedNodeTest
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 .