Package com.icl.saxon.expr
Class LookaheadEnumerator
java.lang.Object
com.icl.saxon.expr.LookaheadEnumerator
- All Implemented Interfaces:
LastPositionFinder
,NodeEnumeration
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
Do lookahead to find the last position, if requiredboolean
Determine whether there are any more nodes to hand to the clientboolean
isPeer()
Determine whether the nodes are guaranteed to be peersboolean
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 orderHand the next node to the client
-
Constructor Details
-
LookaheadEnumerator
Constructor- Parameters:
base
- An NodeEnumerator that delivers the nodes, but that cannot determine the last position count.
-
-
Method Details
-
hasMoreElements
public boolean hasMoreElements()Determine whether there are any more nodes to hand to the client- Specified by:
hasMoreElements
in interfaceNodeEnumeration
- Returns:
- true if there are more nodes
-
nextElement
Hand the next node to the client- Specified by:
nextElement
in interfaceNodeEnumeration
- Returns:
- the next NodeInfo
- Throws:
XPathException
-
getLastPosition
Do lookahead to find the last position, if required- Specified by:
getLastPosition
in interfaceLastPositionFinder
- Throws:
XPathException
-
isSorted
public boolean isSorted()Determine whether the nodes are guaranteed to be in document order- Specified by:
isSorted
in interfaceNodeEnumeration
- 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 interfaceNodeEnumeration
- 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 interfaceNodeEnumeration
-