Only one Node may be stored per name; attempting to store another will replace the previous value.
Note
The "primary" storage key is taken from the NodeName attribute of the node. The "secondary" storage key is the namespaceURI and localName, when accessed by DOM level 2 nodes. All nodes, even DOM Level 2 nodes are stored in a single ArrayList sorted by the primary "nodename" key.
Note
item()'s integer index does _not_ imply that the named nodes must be stored in an array; that's only an access method. Note too that these indices are "live"; if someone changes the map's contents, the indices associated with nodes may change.
| Modifier and Type | Field and Description |
|---|---|
| protected static final short | |
| protected short | |
| protected static final short | |
| protected List | nodes
Nodes. |
| protected NodeImpl | |
| protected static final short | |
| pack-priv static final long | serialVersionUID
Serialization version. |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| protected int | |
| pack-priv final boolean | |
| pack-priv final void | |
| protected void | |
| public NamedNodeMapImpl | |
| protected ArrayList | |
| protected int | Returns: If positive or zero, the index of the found item. If negative, index of the appropriate point at which to insert the item, encoded as -1-index and hence reconvertable by subtracting it from -1. (Encoding because I don't want to recompare the strings but don't want to burn bytes on a datatype to hold a flagged value.)Name of a node to look up. name, int start)Subroutine: Locate the named item, or the point at which said item should be added. |
| protected int | |
| protected Object | |
| public int | getLength()
Implements org. |
| public Node | Returns: the Node (of unspecified sub-class) stored with that name, or null if no value has been assigned to that name.Name of a node to look up. name)Implements org. |
| protected int | |
| public Node | Returns: Node A Node (of any type) with the specified name, or null if the specified name did not identify any node in the map.The namespace URI of the node to retrieve.
When it is null or an empty string, this
method behaves like getNamedItem. namespaceURI, String The local name of the node to retrieve. localName)Implements org. |
| pack-priv boolean | |
| pack-priv final boolean | |
| pack-priv final void | |
| pack-priv final boolean | |
| pack-priv final void | |
| public Node | Returns: the node which currenly has the specified index, or null if index is greater than or equal to getLength().Which item to retrieve. Note that indices are just an
enumeration of the current contents; they aren't guaranteed to be
stable, nor do they imply any promises about the order of the
NamedNodeMap's contents. In other words, DO NOT assume either that
index(i) will always refer to the same entry, or that there is any
stable ordering of entries... and be prepared for double-reporting
or skips as insertion and deletion occur. index)Implements org. |
| protected boolean | |
| private void | |
| public void | |
| protected void | |
| public Node | removeNamedItem(String
The name)nodeName of the node to remove.Implements org. |
| public Node | Returns: Node The node removed from the map if a node with such a local name and namespace URI exists.The namespace URI of the node to remove.
When it is null or an empty string, this
method behaves like removeNamedItem. namespaceURI, String The local name of the node to remove. name)Implements org. |
| public Node | Returns: If the new Node replaces an existing node the replaced Node is returned, otherwise null is returned.A node to store in a named node map. The node will later be
accessible using the value of the namespaceURI and localName
attribute of the node. If a node with those namespace URI and
local name is already present in the map, it is replaced by the new
one. arg)Implements org. |
| public Node | Returns: If the new Node replaces an existing node the replaced Node is returned, otherwise null is returned.A node to store in a named node map. The node will later be
accessible using the value of the namespaceURI and localName
attribute of the node. If a node with those namespace URI and
local name is already present in the map, it is replaced by the new
one. arg)Implements org. |
| protected void | setOwnerDocument(CoreDocumentImpl doc)
NON-DOM set the ownerDocument of this node, and the attributes it contains |
| pack-priv void | setReadOnly(boolean
boolean true to make read-only, false to permit editing. readOnly, boolean boolean true to pass this request along to the contained
nodes, false to only toggle the NamedNodeMap itself. I expect that
the shallow version of this operation will never be used, but I want
to design it in now, while I'm thinking about it. deep)Internal subroutine to allow read-only Nodes to make their contained NamedNodeMaps readonly too. |
| private void |
| CHANGED | back to summary |
|---|---|
| protected static final short CHANGED | |
| flags | back to summary |
|---|---|
| protected short flags | |
| HASDEFAULTS | back to summary |
|---|---|
| protected static final short HASDEFAULTS | |
| nodes | back to summary |
|---|---|
| protected List<E> nodes Nodes. | |
| ownerNode | back to summary |
|---|---|
| protected NodeImpl ownerNode | |
| READONLY | back to summary |
|---|---|
| protected static final short READONLY | |
| serialVersionUID | back to summary |
|---|---|
| pack-priv static final long serialVersionUID Serialization version. | |
| NamedNodeMapImpl | back to summary |
|---|---|
| protected NamedNodeMapImpl(NodeImpl ownerNode) Constructs a named node map. | |
| addItem | back to summary |
|---|---|
| protected int addItem(Node arg) | |
| changed | back to summary |
|---|---|
| pack-priv final boolean changed() | |
| changed | back to summary |
|---|---|
| pack-priv final void changed(boolean value) | |
| cloneContent | back to summary |
|---|---|
| protected void cloneContent(NamedNodeMapImpl srcmap) | |
| cloneMap | back to summary |
|---|---|
| public NamedNodeMapImpl cloneMap(NodeImpl ownerNode) Cloning a NamedNodeMap is a DEEP OPERATION; it always clones all the nodes contained in the map. | |
| cloneMap | back to summary |
|---|---|
| protected ArrayList NON-DOM: copy content of this map into the specified ArrayList | |
| findNamePoint | back to summary |
|---|---|
| protected int findNamePoint(String name, int start) Subroutine: Locate the named item, or the point at which said item should be added.
| |
| findNamePoint | back to summary |
|---|---|
| protected int findNamePoint(String namespaceURI, String name) This findNamePoint is for DOM Level 2 Namespaces. | |
| getItem | back to summary |
|---|---|
| protected Object getItem(int index) | |
| getLength | back to summary |
|---|---|
| public int getLength() Implements org. Report how many nodes are currently stored in this NamedNodeMap. Caveat: This is a count rather than an index, so the highest-numbered node at any time can be accessed via item(getLength()-1). | |
| getNamedItem | back to summary |
|---|---|
| public Node getNamedItem(String name) Implements org. Retrieve a node by name. | |
| getNamedItemIndex | back to summary |
|---|---|
| protected int getNamedItemIndex(String namespaceURI, String localName) | |
| getNamedItemNS | back to summary |
|---|---|
| public Node getNamedItemNS(String namespaceURI, String localName) Implements org. Introduced in DOM Level 2. Retrieves a node specified by local name and namespace URI.
| |
| getReadOnly | back to summary |
|---|---|
| pack-priv boolean getReadOnly() Internal subroutine returns this NodeNameMap's (shallow) readOnly value. | |
| hasDefaults | back to summary |
|---|---|
| pack-priv final boolean hasDefaults() | |
| hasDefaults | back to summary |
|---|---|
| pack-priv final void hasDefaults(boolean value) | |
| isReadOnly | back to summary |
|---|---|
| pack-priv final boolean isReadOnly() | |
| isReadOnly | back to summary |
|---|---|
| pack-priv final void isReadOnly(boolean value) | |
| item | back to summary |
|---|---|
| public Node item(int index) Implements org. Retrieve an item from the map by 0-based index.
| |
| precedes | back to summary |
|---|---|
| protected boolean precedes(Node a, Node b) | |
| readObject | back to summary |
|---|---|
| private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException | |
| removeAll | back to summary |
|---|---|
| public void removeAll() NON-DOM remove all elements from this map | |
| removeItem | back to summary |
|---|---|
| protected void removeItem(int index) NON-DOM: Remove attribute at specified index | |
| removeNamedItem | back to summary |
|---|---|
| public Node removeNamedItem(String name) throws DOMException Implements org. Doc from org. Removes a node specified by name. When this map contains the attributes attached to an element, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
| |
| removeNamedItemNS | back to summary |
|---|---|
| public Node removeNamedItemNS(String namespaceURI, String name) throws DOMException Implements org. Introduced in DOM Level 2. Removes a node specified by local name and namespace URI.
| |
| setNamedItem | back to summary |
|---|---|
| public Node setNamedItem(Node arg) throws DOMException Implements org. Adds a node using its nodeName attribute. As the nodeName attribute is used to derive the name which the node must be stored under, multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash. This is seen as preferable to allowing nodes to be aliased.
| |
| setNamedItemNS | back to summary |
|---|---|
| public Node setNamedItemNS(Node arg) throws DOMException Implements org. Adds a node using its namespaceURI and localName.
| |
| setOwnerDocument | back to summary |
|---|---|
| protected void setOwnerDocument(CoreDocumentImpl doc) NON-DOM set the ownerDocument of this node, and the attributes it contains | |
| setReadOnly | back to summary |
|---|---|
| pack-priv void setReadOnly(boolean readOnly, boolean deep) Internal subroutine to allow read-only Nodes to make their contained NamedNodeMaps readonly too. I expect that in fact the shallow version of this operation will never be
| |
| writeObject | back to summary |
|---|---|
| private void writeObject(ObjectOutputStream out) throws IOException | |