com.icl.saxon.tinytree
Class PrecedingEnumeration

java.lang.Object
  extended bycom.icl.saxon.tinytree.PrecedingEnumeration
All Implemented Interfaces:
AxisEnumeration, LastPositionFinder, NodeEnumeration

final class PrecedingEnumeration
extends Object
implements AxisEnumeration

Enumerate all the nodes on the preceding axis from a given start node. The calling code ensures that the start node is not a root, attribute, or namespace node. As well as the standard XPath preceding axis, this class also implements a Saxon-specific "preceding-or-ancestor" axis which returns ancestor nodes as well as preceding nodes. This is used when performing xsl:number level="any".


Field Summary
(package private)  TinyDocumentImpl document
           
(package private)  boolean includeAncestors
           
(package private)  int last
           
(package private)  int nextAncestorDepth
           
(package private)  int nextNodeNr
           
(package private)  TinyNodeImpl startNode
           
(package private)  NodeTest test
           
 
Constructor Summary
PrecedingEnumeration(TinyDocumentImpl doc, TinyNodeImpl node, NodeTest nodeTest, boolean includeAncestors)
           
 
Method Summary
 int getLastPosition()
          Get the last position, that is the number of nodes in the enumeration
 boolean hasMoreElements()
          Determine whether there are more nodes to come.
 boolean isPeer()
          Determine whether the nodes returned by this enumeration are known to be peers, that is, no node is a descendant or ancestor of another node.
 boolean isReverseSorted()
          Determine whether the nodes returned by this enumeration are known to be in reverse document order.
 boolean isSorted()
          Determine whether the nodes returned by this enumeration are known to be in document order
 NodeInfo nextElement()
          Get the next node in sequence.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

document

TinyDocumentImpl document

startNode

TinyNodeImpl startNode

test

NodeTest test

nextNodeNr

int nextNodeNr

nextAncestorDepth

int nextAncestorDepth

includeAncestors

boolean includeAncestors

last

int last
Constructor Detail

PrecedingEnumeration

public PrecedingEnumeration(TinyDocumentImpl doc,
                            TinyNodeImpl node,
                            NodeTest nodeTest,
                            boolean includeAncestors)
Method Detail

hasMoreElements

public boolean hasMoreElements()
Description copied from interface: AxisEnumeration
Determine whether there are more nodes to come.
(Note the term "Element" is used here in the sense of the standard Java Enumeration class, it has nothing to do with XML elements).

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

nextElement

public NodeInfo nextElement()
Description copied from interface: AxisEnumeration
Get the next node in sequence.
(Note the term "Element" is used here in the sense of the standard Java Enumeration class, it has nothing to do with XML elements).

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

isSorted

public boolean isSorted()
Description copied from interface: NodeEnumeration
Determine whether the nodes returned by this enumeration are known to be 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()
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
Returns:
true if the nodes are guaranteed to be in document order.

isPeer

public boolean isPeer()
Description copied from interface: NodeEnumeration
Determine whether the nodes returned by this enumeration are known to be peers, that is, no node is a descendant or ancestor of another node. This significance of this property is that if a peer enumeration is applied to each node in a set derived from another peer enumeration, and if both enumerations are sorted, then the result is also sorted.

Specified by:
isPeer in interface NodeEnumeration

getLastPosition

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

Specified by:
getLastPosition in interface AxisEnumeration