Class NodeIteratorBase

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

    public abstract class NodeIteratorBase
    extends java.lang.Object
    implements NodeIterator
    Author:
    Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen
    • Constructor Detail

      • NodeIteratorBase

        public NodeIteratorBase()
    • Method Detail

      • setRestartable

        public void setRestartable​(boolean isRestartable)
        Setter for _isRestartable flag.
        Specified by:
        setRestartable in interface NodeIterator
      • setStartNode

        public abstract NodeIterator setStartNode​(int node)
        Initialize iterator using a node. If iterator is not restartable, then do nothing. If node is equal to END then subsequent calls to next() must return END.
        Specified by:
        setStartNode in interface NodeIterator
      • reset

        public NodeIterator reset()
        Reset this iterator using state from last call to setStartNode().
        Specified by:
        reset in interface NodeIterator
      • includeSelf

        public NodeIterator includeSelf()
        Setter for _includeSelf flag.
      • getLast

        public int getLast()
        Default implementation of getLast(). Stores current position and current node, resets the iterator, counts all nodes and restores iterator to original state.
        Specified by:
        getLast in interface NodeIterator
      • getPosition

        public int getPosition()
        Returns the position() in this iterator.
        Specified by:
        getPosition in interface NodeIterator
      • isReverse

        public boolean isReverse()
        Indicates if position in this iterator is computed in reverse document order. Note that nodes are always returned in document order.
        Specified by:
        isReverse in interface NodeIterator
      • cloneIterator

        public NodeIterator cloneIterator()
        Clones and resets this iterator. Note that the cloned iterator is not restartable. This is because cloning is needed for variable references, and the context node of the original variable declaration must be preserved.
        Specified by:
        cloneIterator in interface NodeIterator