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.
-
-
Field Summary
Fields Modifier and Type Field Description static int
LIMIT
-
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.ArrayList<AttributeInfo>
asList()
Get the contents of the AttributeMap as a list ofAttributeInfo
objects.AttributeInfo
get(java.lang.String uri, java.lang.String local)
Get the attribute with a given name, if it existsAttributeInfo
get(NodeName name)
Get the attribute with a given name, if it existsAttributeInfo
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
-
-
-
-
Field Detail
-
LIMIT
public static final int LIMIT
- See Also:
- Constant Field Values
-
-
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 interfaceAttributeMap
- 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 interfaceAttributeMap
- 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 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
-
getByFingerprint
public AttributeInfo getByFingerprint(int fingerprint, NamePool namePool)
- Specified by:
getByFingerprint
in interfaceAttributeMap
-
iterator
public java.util.Iterator<AttributeInfo> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<AttributeInfo>
-
asList
public java.util.ArrayList<AttributeInfo> asList()
Description copied from interface:AttributeMap
Get the contents of the AttributeMap as a list ofAttributeInfo
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 interfaceAttributeMap
- 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 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.
-
-