: Class LookaheadEnumerator

com.icl.saxon.expr
Class LookaheadEnumerator


java.lang.Object

  |

  +--com.icl.saxon.expr.LookaheadEnumerator

All 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.


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()
          Determine whether the nodes returned by this enumeration are known to be in reverse document order.
 boolean isSorted()
          Determine whether the nodes are guaranteed to be in document order
 NodeInfo nextElement()
          Hand the next node to the client
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
Following copied from interface: com.icl.saxon.om.NodeEnumeration
Returns:
true if there are more nodes

nextElement


public NodeInfo nextElement()
                     throws XPathException
Hand the next node to the client
Specified by:
nextElement in interface NodeEnumeration
Following copied from interface: com.icl.saxon.om.NodeEnumeration
Returns:
the next NodeInfo

getLastPosition


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

isSorted


public boolean isSorted()
Determine whether the nodes are guaranteed to be in document order
Specified by:
isSorted in interface NodeEnumeration
Following copied from interface: com.icl.saxon.om.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
Following copied from interface: com.icl.saxon.om.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