Package net.sf.saxon.om

## Class SmallAttributeMap

- java.lang.Object
- - net.sf.saxon.om.SmallAttributeMap

- All Implemented Interfaces:
    `java.lang.Iterable<AttributeInfo>`, `AttributeMap`

      public class SmallAttributeMap
      extends java.lang.Object
      implements AttributeMap

  An implementation of AttributeMap suitable for small collections of attributes (typically, up to five). Searching for a particular attribute involves a sequential search, and adding a new attribute constructs a full copy.

  A `SmallAttributeMap` retains attribute order, so there may be situations in which it is appropriate to use this structure even for larger attribute sets.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SmallAttributeMap​(java.util.List<AttributeInfo> attributes)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.List<AttributeInfo>` | `asList()` | Get the contents of the AttributeMap as a list of `AttributeInfo` objects.
    `AttributeInfo` | `get​(java.lang.String uri, java.lang.String local)` | Get the attribute with a given name, if it exists
    `AttributeInfo` | `get​(NodeName name)` | Get the attribute with a given name, if it exists
    `AttributeInfo` | `getByFingerprint​(int fingerprint, NamePool namePool)` |
    `AttributeInfo` | `itemAt​(int index)` | Get the AttributeInfo with a given index.
    `java.util.Iterator<AttributeInfo>` | `iterator()` |
    `int` | `size()` | Return the number of attributes in the map.

    - ### 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.om.AttributeMap

      `apply, getValue, put, remove, verify`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### SmallAttributeMap

          public SmallAttributeMap​(java.util.List<AttributeInfo> attributes)

  - ### Method Detail

    - #### size

          public int size()

      Return the number of attributes in the map.
      Specified by:
        `size` in interface `AttributeMap`
      Returns:
        The number of attributes in the map.

    - #### get

          public AttributeInfo get​(NodeName name)

      Description copied from interface: `AttributeMap`
      Get the attribute with a given name, if it exists
      Specified by:
        `get` in interface `AttributeMap`
      Parameters:
        `name` - the name of the required attribute
      Returns:
        the required attribute if it exists

    - #### get

          public AttributeInfo get​(java.lang.String uri,
                                   java.lang.String local)

      Description copied from interface: `AttributeMap`
      Get the attribute with a given name, if it exists
      Specified by:
        `get` in interface `AttributeMap`
      Parameters:
        `uri` - the namespace part of the name of the required attribute
        `local` - the local part of the name of the required attribute
      Returns:
        the required attribute if it exists

    - #### getByFingerprint

          public AttributeInfo getByFingerprint​(int fingerprint,
                                                NamePool namePool)

      Specified by:
        `getByFingerprint` in interface `AttributeMap`

    - #### iterator

          public java.util.Iterator<AttributeInfo> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<AttributeInfo>`

    - #### asList

          public java.util.List<AttributeInfo> asList()

      Description copied from interface: `AttributeMap`
      Get the contents of the AttributeMap as a list of `AttributeInfo` objects.

      The order of the returned list must be consistent with document order, with the order of the attribute axis, and with position-based retrieval of individual `AttributeInfo` objects; multiple calls are not required to return the same list, but they must be consistent in their ordering.

      Modifying the returned list has no effect on the AttributeMap

      Specified by:
        `asList` in interface `AttributeMap`
      Returns:
        a list of attributes in the AttributeMap

    - #### itemAt

          public AttributeInfo itemAt​(int index)

      Description copied from interface: `AttributeMap`
      Get the AttributeInfo with a given index.
      Specified by:
        `itemAt` in interface `AttributeMap`
      Parameters:
        `index` - the index position, zero-based. The order of index positions of attributes in an attribute map reflects document order.
      Returns:
        the AttributeInfo at the given position. In an immutable tree the result will always be equivalent to calling `asList().get(index)`. However, if the tree has been modified, then the index values of the attributes may not be contiguous.