com.icl.saxon.tree
Class AncestorEnumeration

java.lang.Object
  extended bycom.icl.saxon.tree.TreeEnumeration
      extended bycom.icl.saxon.tree.AncestorEnumeration
All Implemented Interfaces:
AxisEnumeration, LastPositionFinder, NodeEnumeration

final class AncestorEnumeration
extends TreeEnumeration


Field Summary
protected  int last
           
protected  NodeImpl next
           
protected  NodeTest nodeTest
           
protected  NodeImpl start
           
 
Constructor Summary
AncestorEnumeration(NodeImpl node, NodeTest nodeTest, boolean includeSelf)
           
 
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.
 int getLastPosition()
          Get the last position, that is 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  void step()
          Advance one step along the axis: the resulting node might not meet the required criteria for inclusion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

start

protected NodeImpl start

next

protected NodeImpl next

nodeTest

protected NodeTest nodeTest

last

protected int last
Constructor Detail

AncestorEnumeration

public AncestorEnumeration(NodeImpl node,
                           NodeTest nodeTest,
                           boolean includeSelf)
Method Detail

step

protected void step()
Description copied from class: TreeEnumeration
Advance one step along the axis: the resulting node might not meet the required criteria for inclusion

Specified by:
step in class TreeEnumeration

getLastPosition

public int getLastPosition()
Get the last position, that is the number of nodes in the enumeration


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.


advance

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


hasMoreElements

public final boolean hasMoreElements()
Determine if there are more nodes to be returned

Specified by:
hasMoreElements in interface AxisEnumeration
Returns:
true if there are more nodes

nextElement

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

Specified by:
nextElement in interface AxisEnumeration
Returns:
the next NodeInfo

isSorted

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

Specified by:
isSorted in interface NodeEnumeration
Returns:
true if the nodes are guaranteed to be in document order.

isReverseSorted

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

Specified by:
isReverseSorted in interface NodeEnumeration
Returns:
true if the nodes are guaranteed to be in document order.

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

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.