Class AttributeMapWithIdentity

java.lang.Object
net.sf.saxon.tree.linked.AttributeMapWithIdentity
All Implemented Interfaces:
Iterable<AttributeInfo>, AttributeMap

public class AttributeMapWithIdentity extends Object implements AttributeMap
An implementation of AttributeMap suitable for representing attributes on a mutable tree. Unlike an ordinary AttributeMap, each AttributeInfo has a persistent index value, which remains unchanged when attributes are added or removed or renamed. New attributes are allocated an index value greater than any previously-allocated index value.

However, an AttributeMapWithIdentity, like any other AttributeMap, is an immutable object.

  • Method Details

    • 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.
    • iterateAttributes

      public AxisIterator iterateAttributes(ElementImpl owner)
    • 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(NamespaceUri uri, 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
    • set

      public AttributeMapWithIdentity set(int index, AttributeInfo info)
    • add

    • remove

      public AttributeMapWithIdentity remove(int index)
      Remove an existing attribute, to create a new AttributeMap
      Parameters:
      index - the index of the attribute to be removed (if it exists)
      Returns:
      a new attribute map in which the specified attribute is marked as deleted.
    • getByFingerprint

      public AttributeInfo getByFingerprint(int fingerprint, NamePool namePool)
      Specified by:
      getByFingerprint in interface AttributeMap
    • iterator

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

      public 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.