com.icl.saxon.tree

Class TreeEnumeration

Implemented Interfaces:
AxisEnumeration, LastPositionFinder, NodeEnumeration
Known Direct Subclasses:
AncestorEnumeration, ChildEnumeration, DescendantEnumeration, FollowingEnumeration, FollowingSiblingEnumeration, NamespaceEnumeration, PrecedingEnumeration, PrecedingOrAncestorEnumeration, PrecedingSiblingEnumeration

(package private) abstract class TreeEnumeration
extends Object
implements AxisEnumeration

Field Summary

protected int
last
protected NodeImpl
next
protected NodeTest
nodeTest
protected NodeImpl
start

Constructor Summary

TreeEnumeration(NodeImpl origin, NodeTest nodeTest)
Create an axis enumeration for a given type and name of node, from a given origin node

Method Summary

protected void
advance()
Advance along the axis until a node is found that matches the required criteria
protected boolean
conforms(NodeImpl node)
Test whether a node conforms to the node type and name constraints.
protected int
count()
Count the number of nodes in the enumeration.
boolean
hasMoreElements()
Determine if there are more nodes to be returned
boolean
isPeer()
Determine if the nodes are guaranteed to be peers (i.e.
boolean
isReverseSorted()
Determine if the nodes are guaranteed to be sorted in reverse document order
boolean
isSorted()
Determine if the nodes are guaranteed to be sorted in document order
NodeInfo
nextElement()
Return the next node in the enumeration
protected abstract void
step()
Advance one step along the axis: the resulting node might not meet the required criteria for inclusion

Field Details

last

protected int last

NodeImpl next

nodeTest

protected NodeTest nodeTest

start

protected NodeImpl start

Constructor Details

TreeEnumeration

public TreeEnumeration(NodeImpl origin,
                       NodeTest nodeTest)
Create an axis enumeration for a given type and name of node, from a given origin node

Method Details

advance

protected final void advance()
Advance along the axis until a node is found that matches the required criteria

conforms

protected boolean conforms(NodeImpl node)
Test whether a node conforms to the node type and name constraints. Note that this returns true if the supplied node is null, this is a way of terminating a loop.

count

protected int count()
Count the number of nodes in the enumeration. This is used to support finding the last() position. Note that it must be used on a "clean" enumeration: the enumeration must be positioned at the start, and is left positioned at the end.

hasMoreElements

public final boolean hasMoreElements()
Determine if there are more nodes to be returned
Specified by:
hasMoreElements in interface AxisEnumeration
hasMoreElements in interface NodeEnumeration

isPeer

public boolean isPeer()
Determine if the nodes are guaranteed to be peers (i.e. no node is a descendant of another node)
Specified by:
isPeer in interface NodeEnumeration

isReverseSorted

public boolean isReverseSorted()
Determine if the nodes are guaranteed to be sorted in reverse document order
Specified by:
isReverseSorted in interface NodeEnumeration

isSorted

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

nextElement

public final NodeInfo nextElement()
Return the next node in the enumeration
Specified by:
nextElement in interface AxisEnumeration
nextElement in interface NodeEnumeration

step

protected abstract void step()
Advance one step along the axis: the resulting node might not meet the required criteria for inclusion