Class CurrentNodeListIterator

  • All Implemented Interfaces:
    java.lang.Cloneable, DTMAxisIterator

    public final class CurrentNodeListIterator
    extends DTMAxisIteratorBase
    Iterators of this kind use a CurrentNodeListFilter to filter a subset of nodes from a source iterator. For each node from the source, the boolean method CurrentNodeListFilter.test() is called. All nodes from the source are read into an array upon calling setStartNode() (this is needed to determine the value of last, a parameter to CurrentNodeListFilter.test()). The method getLast() returns the last element after applying the filter.
    Author:
    Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen
    • Method Detail

      • next

        public int next()
        Description copied from interface: DTMAxisIterator
        Get the next node in the iteration.
        Returns:
        The next node handle in the iteration, or END.
      • setStartNode

        public DTMAxisIterator setStartNode​(int node)
        Description copied from interface: DTMAxisIterator
        Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
        Parameters:
        node - Sets the root of the iteration.
        Returns:
        A DTMAxisIterator set to the start of the iteration.
      • getLast

        public int getLast()
        Description copied from class: DTMAxisIteratorBase
        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.
        Specified by:
        getLast in interface DTMAxisIterator
        Overrides:
        getLast in class DTMAxisIteratorBase
        Returns:
        The number of nodes in this iterator (forward) or 1 (reverse).
      • setMark

        public void setMark()
        Description copied from interface: DTMAxisIterator
        Remembers the current node for the next call to gotoMark().
      • gotoMark

        public void gotoMark()
        Description copied from interface: DTMAxisIterator
        Restores the current node remembered by setMark().