com.icl.saxon.expr

Class LookaheadEnumerator

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 Summary
LookaheadEnumerator(NodeEnumeration base)
Constructor
Method Summary
intgetLastPosition()
Do lookahead to find the last position, if required
booleanhasMoreElements()
Determine whether there are any more nodes to hand to the client
booleanisPeer()
Determine whether the nodes are guaranteed to be peers
booleanisReverseSorted()
booleanisSorted()
Determine whether the nodes are guaranteed to be in document order
NodeInfonextElement()
Hand the next node to the client

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

getLastPosition

public int getLastPosition()
Do lookahead to find the last position, if required

hasMoreElements

public boolean hasMoreElements()
Determine whether there are any more nodes to hand to the client

isPeer

public boolean isPeer()
Determine whether the nodes are guaranteed to be peers

isReverseSorted

public boolean isReverseSorted()

isSorted

public boolean isSorted()
Determine whether the nodes are guaranteed to be in document order

nextElement

public NodeInfo nextElement()
Hand the next node to the client