Class LookaheadEnumerator

  • All Implemented Interfaces:
    LastPositionFinder, NodeEnumeration

    public class LookaheadEnumerator
    extends Object
    implements NodeEnumeration, LastPositionFinder
    A LookaheadEnumerator passes the nodes from a base enumerator throgh unchanged. The complication is that on request, it must determine the value of the last() position, which requires a lookahead. A LookaheadEnumerator should only be used to wrap a NodeEnumeration that cannot determine the last() position for itself, i.e. one that is not a LastPositionFinder.
    • Constructor Detail

      • LookaheadEnumerator

        public LookaheadEnumerator​(NodeEnumeration base)
        Constructor
        Parameters:
        base - An NodeEnumerator that delivers the nodes, but that cannot determine the last position count.
    • Method Detail

      • hasMoreElements

        public boolean hasMoreElements()
        Determine whether there are any more nodes to hand to the client
        Specified by:
        hasMoreElements in interface NodeEnumeration
        Returns:
        true if there are more nodes
      • isSorted

        public boolean isSorted()
        Determine whether the nodes are guaranteed to be in document order
        Specified by:
        isSorted in interface NodeEnumeration
        Returns:
        true if the nodes are guaranteed to be in document order.
      • isReverseSorted

        public boolean isReverseSorted()
        Description copied from interface: NodeEnumeration
        Determine whether the nodes returned by this enumeration are known to be in reverse document order.
        Specified by:
        isReverseSorted in interface NodeEnumeration
        Returns:
        true if the nodes are guaranteed to be in document order.
      • isPeer

        public boolean isPeer()
        Determine whether the nodes are guaranteed to be peers
        Specified by:
        isPeer in interface NodeEnumeration