com.icl.saxon.expr

Class LookaheadEnumerator

Implemented Interfaces:
LastPositionFinder, NodeEnumeration

public class LookaheadEnumerator
extends java.lang.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.

Nested Class Summary

Constructor Summary

LookaheadEnumerator(NodeEnumeration base)
Constructor

Method Summary

int
getLastPosition()
Do lookahead to find the last position, if required
boolean
hasMoreElements()
Determine whether there are any more nodes to hand to the client
boolean
isPeer()
Determine whether the nodes are guaranteed to be peers
boolean
isReverseSorted()
boolean
isSorted()
Determine whether the nodes are guaranteed to be in document order
NodeInfo
nextElement()
Hand the next node to the client

Constructor Details

LookaheadEnumerator

public LookaheadEnumerator(NodeEnumeration base)
Constructor

Parameters:
base - An NodeEnumerator that delivers the nodes, but that cannot determine the last position count.

Method Details

getLastPosition

public int getLastPosition()
            throws XPathException
Do lookahead to find the last position, if required
Specified by:
getLastPosition in interface LastPositionFinder


hasMoreElements

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


isPeer

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


isReverseSorted

public boolean isReverseSorted()
Specified by:
isReverseSorted in interface NodeEnumeration


isSorted

public boolean isSorted()
Determine whether the nodes are guaranteed to be in document order
Specified by:
isSorted in interface NodeEnumeration


nextElement

public NodeInfo nextElement()
            throws XPathException
Hand the next node to the client
Specified by:
nextElement in interface NodeEnumeration