com.icl.saxon.tree

Class TreeEnumeration

abstract class TreeEnumeration extends Object implements AxisEnumeration

Field Summary
protected intlast
protected NodeImplnext
protected NodeTestnodeTest
protected NodeImplstart
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 voidadvance()
Advance along the axis until a node is found that matches the required criteria
protected booleanconforms(NodeImpl node)
Test whether a node conforms to the node type and name constraints.
protected intcount()
Count the number of nodes in the enumeration.
booleanhasMoreElements()
Determine if there are more nodes to be returned
booleanisPeer()
Determine if the nodes are guaranteed to be peers (i.e. no node is a descendant of another node)
booleanisReverseSorted()
Determine if the nodes are guaranteed to be sorted in reverse document order
booleanisSorted()
Determine if the nodes are guaranteed to be sorted in document order
NodeInfonextElement()
Return the next node in the enumeration
protected abstract voidstep()
Advance one step along the axis: the resulting node might not meet the required criteria for inclusion

Field Detail

last

protected int last

protected NodeImpl next

nodeTest

protected NodeTest nodeTest

start

protected NodeImpl start

Constructor Detail

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 Detail

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

isPeer

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

isReverseSorted

public boolean isReverseSorted()
Determine if the nodes are guaranteed to be sorted in reverse document order

isSorted

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

nextElement

public final NodeInfo nextElement()
Return the next node in the enumeration

step

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