org.cdlib.xtf.lazyTree
Class AttributeEnumeration

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

final class AttributeEnumeration
extends AxisIteratorImpl
implements LookaheadIterator

AttributeEnumeration is an enumeration of all the attribute nodes of an Element.


Field Summary
private  ElementImpl 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
AttributeEnumeration(NodeImpl node, 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
 int getProperties()
          Get properties of this iterator, as a bit-significant integer.
 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, 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, position
 

Field Detail

element

private ElementImpl element

nodeTest

private NodeTest nodeTest

next

private NodeInfo next

index

private int index

length

private int length
Constructor Detail

AttributeEnumeration

public AttributeEnumeration(NodeImpl node,
                            NodeTest nodeTest)
Constructor

Parameters:
node - 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

getProperties

public int getProperties()
Get properties of this iterator, as a bit-significant integer.

Specified by:
getProperties in interface SequenceIterator
Overrides:
getProperties in class AxisIteratorImpl
Returns:
the properties of this iterator. This will be some combination of properties such as GROUNDED, LAST_POSITION_FINDER, and LOOKAHEAD. It is always acceptable to return the value zero, indicating that there are no known special properties. It is acceptable for the properties of the iterator to change depending on its state.