Package net.sf.saxon.tree.linked
Class AttributeMapWithIdentity
java.lang.Object
net.sf.saxon.tree.linked.AttributeMapWithIdentity
- All Implemented Interfaces:
Iterable<AttributeInfo>,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 Summary
Modifier and TypeMethodDescriptionadd(AttributeInfo info) asList()Get the contents of the AttributeMap as a list ofAttributeInfoobjects.get(NamespaceUri uri, String local) Get the attribute with a given name, if it existsGet the attribute with a given name, if it existsgetByFingerprint(int fingerprint, NamePool namePool) itemAt(int index) Get the AttributeInfo with a given index.iterateAttributes(ElementImpl owner) iterator()remove(int index) Remove an existing attribute, to create a new AttributeMapset(int index, AttributeInfo info) intsize()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, waitMethods inherited from interface net.sf.saxon.om.AttributeMap
apply, getValue, getValue, put, remove, verifyMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
size
public int size()Return the number of attributes in the map.- Specified by:
sizein interfaceAttributeMap- Returns:
- The number of attributes in the map.
-
iterateAttributes
-
get
Description copied from interface:AttributeMapGet the attribute with a given name, if it exists- Specified by:
getin interfaceAttributeMap- Parameters:
name- the name of the required attribute- Returns:
- the required attribute if it exists
-
get
Description copied from interface:AttributeMapGet the attribute with a given name, if it exists- Specified by:
getin interfaceAttributeMap- Parameters:
uri- the namespace part of the name of the required attributelocal- the local part of the name of the required attribute- Returns:
- the required attribute if it exists
-
set
-
add
-
remove
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
- Specified by:
getByFingerprintin interfaceAttributeMap
-
iterator
- Specified by:
iteratorin interfaceIterable<AttributeInfo>
-
asList
Description copied from interface:AttributeMapGet the contents of the AttributeMap as a list ofAttributeInfoobjects.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
AttributeInfoobjects; 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:
asListin interfaceAttributeMap- Returns:
- a list of attributes in the AttributeMap
-
itemAt
Description copied from interface:AttributeMapGet the AttributeInfo with a given index.- Specified by:
itemAtin interfaceAttributeMap- 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.
-