Package com.saxonica.ee.stream.om

## Class AttributeIterator

- java.lang.Object
- - com.saxonica.ee.stream.om.AttributeIterator

- All Implemented Interfaces:
    `java.io.Closeable`, `java.lang.AutoCloseable`, `SequenceIterator`, `AxisIterator`, `LookaheadIterator`, `UnfailingIterator`

      public final class AttributeIterator
      extends java.lang.Object
      implements AxisIterator, LookaheadIterator

  AttributeIterator is an enumeration of all the attribute nodes of an Element. This class is used only in conjunction with a FleetingElementNode, that is an element node in a streamed document.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface net.sf.saxon.om.SequenceIterator

      `SequenceIterator.Property`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AttributeIterator​(NodeInfo element, AttributeMap attributes, java.util.function.BiFunction<NodeInfo,​AttributeInfo,​NodeInfo> attributeMaker)` | Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.EnumSet<SequenceIterator.Property>` | `getProperties()` | Get properties of this iterator, as a bit-significant integer.
    `boolean` | `hasNext()` | Test if there are mode nodes still to come.
    `NodeInfo` | `next()` | Get the next node in the iteration, or null if there are no more.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.tree.iter.AxisIterator

      `asIterator, forEachNode`

    - ### Methods inherited from interface net.sf.saxon.om.SequenceIterator

      `close, forEachOrFail, materialize`

    - ### Methods inherited from interface net.sf.saxon.tree.iter.UnfailingIterator

      `forEach, toList`

- - ### Constructor Detail

    - #### AttributeIterator

          public AttributeIterator​(NodeInfo element,
                                   AttributeMap attributes,
                                   java.util.function.BiFunction<NodeInfo,​AttributeInfo,​NodeInfo> attributeMaker)

      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

  - ### 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`
      Returns:
        true if there are more items in the sequence

    - #### next

          public NodeInfo next()

      Get the next node in the iteration, or null if there are no more.
      Specified by:
        `next` in interface `AxisIterator`
      Specified by:
        `next` in interface `SequenceIterator`
      Specified by:
        `next` in interface `UnfailingIterator`
      Returns:
        the next Item. If there are no more items, return null.

    - #### getProperties

          public java.util.EnumSet<SequenceIterator.Property> getProperties()

      Get properties of this iterator, as a bit-significant integer.
      Specified by:
        `getProperties` in interface `SequenceIterator`
      Returns:
        the properties of this iterator. This will be some combination of properties such as `SequenceIterator.Property.GROUNDED`, `SequenceIterator.Property.LAST_POSITION_FINDER`, and `SequenceIterator.Property.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.