| java.lang.Object org.apache.xml.dtm.ref.DTMAxisIteratorBase
All known Subclasses: org.apache.xalan.xsltc.dom.UnionIterator, org.apache.xalan.xsltc.dom.CurrentNodeListIterator, org.apache.xalan.xsltc.dom.ClonedNodeListIterator, org.apache.xalan.xsltc.dom.SingletonIterator, org.apache.xalan.xsltc.dom.DupFilterIterator, org.apache.xalan.xsltc.dom.FilterIterator, org.apache.xalan.xsltc.dom.ForwardPositionIterator, org.apache.xalan.xsltc.dom.KeyIndex, org.apache.xalan.xsltc.dom.CachedNodeListIterator, org.apache.xalan.xsltc.dom.StepIterator, org.apache.xalan.xsltc.dom.AbsoluteIterator, org.apache.xalan.xsltc.dom.SortingIterator, org.apache.xalan.xsltc.dom.MatchingIterator, org.apache.xalan.xsltc.dom.NthIterator,
DTMAxisIteratorBase | abstract public class DTMAxisIteratorBase implements DTMAxisIterator(Code) | | This class serves as a default base for implementations of mutable
DTMAxisIterators.
|
Field Summary | |
protected boolean | _includeSelf True if the start node should be considered part of the iteration. | protected boolean | _isRestartable True if this iteration can be restarted. | protected int | _last The position of the last node within the iteration, as defined by XPath.
Note that this is _not_ the node's handle within the DTM. | protected int | _markedNode The position of the marked node within the iteration;
a saved itaration state that we may want to come back to. | protected int | _position The position of the current node within the iteration, as defined by XPath. | protected int | _startNode The handle to the start, or root, of the iteration. |
Method Summary | |
public DTMAxisIterator | cloneIterator() Returns a deep copy of this iterator. | public int | getAxis() Returns the axis being iterated, if it is known. | public int | getLast() Returns the position of the last node within the iteration, as
defined by XPath. | public int | getNodeByPosition(int position) Return the node at the given position. | public int | getPosition() The position of the current node within the set, as defined byXPath. | public int | getStartNode() Get start to END should 'close' the iterator,
i.e. | public DTMAxisIterator | includeSelf() Set the flag to include the start node in the iteration. | public boolean | isDocOrdered() Returns true if all the nodes in the iteration well be returned in document
order. | public boolean | isReverse() | public DTMAxisIterator | reset() | final protected DTMAxisIterator | resetPosition() Reset the position to zero. | final protected int | returnNode(int node) Do any final cleanup that is required before returning the node that was
passed in, and then return it. | public void | setRestartable(boolean isRestartable) |
_includeSelf | protected boolean _includeSelf(Code) | | True if the start node should be considered part of the iteration.
False will cause it to be skipped.
|
_isRestartable | protected boolean _isRestartable(Code) | | True if this iteration can be restarted. False otherwise (eg, if
we are iterating over a stream that can not be re-scanned, or if
the iterator was produced by cloning another iterator.)
|
_last | protected int _last(Code) | | The position of the last node within the iteration, as defined by XPath.
Note that this is _not_ the node's handle within the DTM. Also, don't
confuse it with the current (most recently returned) position.
|
_markedNode | protected int _markedNode(Code) | | The position of the marked node within the iteration;
a saved itaration state that we may want to come back to.
Note that only one mark is maintained; there is no stack.
|
_position | protected int _position(Code) | | The position of the current node within the iteration, as defined by XPath.
Note that this is _not_ the node's handle within the DTM!
|
_startNode | protected int _startNode(Code) | | The handle to the start, or root, of the iteration.
Set this to END to construct an empty iterator.
|
cloneIterator | public DTMAxisIterator cloneIterator()(Code) | | Returns a deep copy of this iterator. Cloned iterators may not be
restartable. The iterator being cloned may or may not become
non-restartable as a side effect of this operation.
a deep copy of this iterator. |
getAxis | public int getAxis()(Code) | | Returns the axis being iterated, if it is known.
Axis.CHILD, etc., or -1 if the axis is not known or is of multiple types. |
getLast | public int getLast()(Code) | | Returns the position of the last node within the iteration, as
defined by XPath. In a forward iterator, I believe this equals the number of nodes which this
iterator will yield. In a reverse iterator, I believe it should return
1 (since the "last" is the first produced.)
This may be an expensive operation when called the first time, since
it may have to iterate through a large part of the document to produce
its answer.
The number of nodes in this iterator (forward) or 1 (reverse). |
getNodeByPosition | public int getNodeByPosition(int position)(Code) | | Return the node at the given position.
Parameters: position - The position The node at the given position. |
getPosition | public int getPosition()(Code) | | The position of the current node within the set, as defined byXPath. Note that this is one-based, not zero-based. |
getStartNode | public int getStartNode()(Code) | | Get start to END should 'close' the iterator,
i.e. subsequent call to next() should return END.
The root node of the iteration. |
includeSelf | public DTMAxisIterator includeSelf()(Code) | | Set the flag to include the start node in the iteration.
This default method returns just returns this DTMAxisIterator,after setting the flag.(Returning "this" permits C++-style chaining ofmethod calls into a single expression.) |
isDocOrdered | public boolean isDocOrdered()(Code) | | Returns true if all the nodes in the iteration well be returned in document
order.
true as a default. |
isReverse | public boolean isReverse()(Code) | | true if this iterator has a reversed axis, else false |
reset | public DTMAxisIterator reset()(Code) | | A DTMAxisIterator which has been reset to the start node,which may or may not be the same as this iterator. |
resetPosition | final protected DTMAxisIterator resetPosition()(Code) | | Reset the position to zero. NOTE that this does not change the iteration
state, only the position number associated with that state.
%REVIEW% Document when this would be used?
This instance. |
returnNode | final protected int returnNode(int node)(Code) | | Do any final cleanup that is required before returning the node that was
passed in, and then return it. The intended use is
return returnNode(node);
%REVIEW% If we're calling it purely for side effects, should we really
be bothering with a return value? Something like
accept(node); return node;
would probably optimize just about as well and avoid questions
about whether what's returned could ever be different from what's
passed in.
Parameters: node - Node handle which iteration is about to yield. The node handle passed in. |
setRestartable | public void setRestartable(boolean isRestartable)(Code) | | |
|
|