Class 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 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
      • iterator

        public java.util.Iterator<AttributeInfo> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<AttributeInfo>
      • asList

        public java.util.ArrayList<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.