org.cdlib.xtf.lazyTree
Class ProxyAttributeEnumeration

Object
  extended by AxisIteratorImpl
      extended by ProxyAttributeEnumeration
All Implemented Interfaces:
AxisIterator, LookaheadIterator, SequenceIterator, UnfailingIterator

final class ProxyAttributeEnumeration
extends AxisIteratorImpl
implements LookaheadIterator

Saxon: ProxyAttributeEnumeration is an enumeration of all the attribute nodes of an Element. It is used by ProxyElement to implement lazy attribute loading.


Field Summary
private  ProxyElement element
           
private  int index
           
private  int length
           
private  NodeInfo next
           
private  NodeTest nodeTest
           
 
Fields inherited from class AxisIteratorImpl
current, position
 
Fields inherited from interface SequenceIterator
GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
 
Constructor Summary
ProxyAttributeEnumeration(ProxyElement element, NodeTest nodeTest)
          Constructor
 
Method Summary
private  void advance()
          Move to the next node in the enumeration.
 SequenceIterator getAnother()
          Get another enumeration of the same nodes
 boolean hasNext()
          Test if there are mode nodes still to come.
 Item next()
          Get the next node in the iteration, or null if there are no more.
 
Methods inherited from class AxisIteratorImpl
atomize, current, getProperties, getStringValue, iterateAxis, moveNext, position
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface SequenceIterator
current, getProperties, position
 

Field Detail

element

private ProxyElement element

nodeTest

private NodeTest nodeTest

next

private NodeInfo next

index

private int index

length

private int length
Constructor Detail

ProxyAttributeEnumeration

public ProxyAttributeEnumeration(ProxyElement element,
                                 NodeTest nodeTest)
Constructor

Parameters:
element - the element whose attributes are required. This may be any type of node, but if it is not an element the enumeration will be empty
nodeTest - condition to be applied to the names of the attributes selected
Method Detail

hasNext

public boolean hasNext()
Test if there are mode nodes still to come. ("elements" is used here in the sense of the Java enumeration class, not in the XML sense)

Specified by:
hasNext in interface LookaheadIterator

next

public Item next()
Get the next node in the iteration, or null if there are no more.

Specified by:
next in interface SequenceIterator
Specified by:
next in interface UnfailingIterator

advance

private void advance()
Move to the next node in the enumeration.


getAnother

public SequenceIterator getAnother()
Get another enumeration of the same nodes

Specified by:
getAnother in interface SequenceIterator
Specified by:
getAnother in interface UnfailingIterator