org.apache.xalan.transformer
Class KeyRefIterator

java.lang.Object
  |
  +--org.apache.xpath.Expression
        |
        +--org.apache.xpath.patterns.NodeTest
              |
              +--org.apache.xpath.axes.PredicatedNodeTest
                    |
                    +--org.apache.xpath.axes.LocPathIterator
                          |
                          +--org.apache.xalan.transformer.KeyRefIterator

public class KeyRefIterator
extends LocPathIterator

**For internal use only** This class implements an optimized iterator for "key()" patterns. It uses a KeyIterator to walk the source tree and incrementally build a list of nodes that match a given key name, match pattern and value.

See Also:
Serialized Form

Fields inherited from class org.apache.xpath.axes.LocPathIterator
m_lastFetched
 
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
 
Constructor Summary
KeyRefIterator(XMLString ref, KeyIterator ki)
          Constructor KeyRefIterator
 
Method Summary
 void addNode(int node)
          Add a node matching this ref to the cached nodes for this iterator
 java.lang.Object clone()
          Get a cloned LocPathIterator that holds the same position as this iterator.
 void detach()
          Detaches the iterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
 QName getName()
          Get key name
 int nextNode()
          Returns the next node in the set and advances the position of the iterator in the set.
 void reset()
          Reset the iterator.
 
Methods inherited from class org.apache.xpath.axes.LocPathIterator
allowDetachToRelease, asIterator, asNode, bool, cloneWithReset, execute, findLastPos, getAxis, getCachedNodes, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLast, getLastPos, getLength, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, isDocOrdered, isFresh, isMutable, isNodesetExpr, item, previousNode, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setLast, setRoot, setShouldCacheNodes, size
 
Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest
acceptNode, canTraverseOutsideSubtree, fixupVariables, getLocPathIterator, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, initProximityPosition, isReverseAxes, resetProximityPositions, setLocPathIterator, setPredicateCount
 
Methods inherited from class org.apache.xpath.patterns.NodeTest
debugWhatToShow, execute, execute, getDefaultScore, getLocalName, getNamespace, getNodeTypeTest, getStaticScore, initNodeTest, initNodeTest, setLocalName, setNamespace, setStaticScore, setWhatToShow
 
Methods inherited from class org.apache.xpath.Expression
assertion, error, executeCharsToContentHandler, isStableNumber, num, setSourceLocator, warn, xstr
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyRefIterator

public KeyRefIterator(XMLString ref,
                      KeyIterator ki)
Constructor KeyRefIterator
Parameters:
ref - Key value to match
ki - The main key iterator used to walk the source tree
Method Detail

getName

public QName getName()
Get key name
Returns:
Key name

nextNode

public int nextNode()
Returns the next node in the set and advances the position of the iterator in the set. After a NodeIterator is created, the first call to nextNode() returns the first node in the set.
Returns:
The next Node in the set being iterated over, or null if there are no more members in that set.
Overrides:
nextNode in class LocPathIterator

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Get a cloned LocPathIterator that holds the same position as this iterator.
Returns:
A clone of this iterator that holds the same node position.
Throws:
java.lang.CloneNotSupportedException -  
Overrides:
clone in class PredicatedNodeTest

reset

public void reset()
Reset the iterator.
Overrides:
reset in class LocPathIterator

detach

public void detach()
Detaches the iterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state. Afterdetach has been invoked, calls to nextNode orpreviousNode will raise the exception INVALID_STATE_ERR.
Overrides:
detach in class LocPathIterator

addNode

public void addNode(int node)
Add a node matching this ref to the cached nodes for this iterator
Parameters:
node - Node to add to cached nodes


Copyright © 2001 Apache XML Project. All Rights Reserved.