| /* | |
| * Copyright (c) 2000 World Wide Web Consortium, | |
| * (Massachusetts Institute of Technology, Institut National de | |
| * Recherche en Informatique et en Automatique, Keio University). All | |
| * Rights Reserved. This program is distributed under the W3C's Software | |
| * Intellectual Property License. This program is distributed in the | |
| * hope that it will be useful, but WITHOUT ANY WARRANTY; without even | |
| * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
| * PURPOSE. | |
| * See W3C License http://www.w3.org/Consortium/Legal/ for more details. | |
| */ | |
| package org.w3c.dom; | |
| /** | |
| * Objects implementing the <code>NamedNodeMap</code> interface are used to | |
| * represent collections of nodes that can be accessed by name. Note that | |
| * <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>; | |
| * <code>NamedNodeMaps</code> are not maintained in any particular order. | |
| * Objects contained in an object implementing <code>NamedNodeMap</code> may | |
| * also be accessed by an ordinal index, but this is simply to allow | |
| * convenient enumeration of the contents of a <code>NamedNodeMap</code>, | |
| * and does not imply that the DOM specifies an order to these Nodes. | |
| * <p><code>NamedNodeMap</code> objects in the DOM are live. | |
| * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. | |
| */ | |
| public interface NamedNodeMap { | |
| /** | |
| * Retrieves a node specified by name. | |
| * @param nameThe <code>nodeName</code> of a node to retrieve. | |
| * @return A <code>Node</code> (of any type) with the specified | |
| * <code>nodeName</code>, or <code>null</code> if it does not identify | |
| * any node in this map. | |
| */ | |
| public Node getNamedItem(String name); | |
| /** | |
| * Adds a node using its <code>nodeName</code> attribute. If a node with | |
| * that name is already present in this map, it is replaced by the new | |
| * one. | |
| * <br>As the <code>nodeName</code> 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. | |
| * @param argA node to store in this map. The node will later be | |
| * accessible using the value of its <code>nodeName</code> attribute. | |
| * @return If the new <code>Node</code> replaces an existing node the | |
| * replaced <code>Node</code> is returned, otherwise <code>null</code> | |
| * is returned. | |
| * @exception DOMException | |
| * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a | |
| * different document than the one that created this map. | |
| * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. | |
| * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an | |
| * <code>Attr</code> that is already an attribute of another | |
| * <code>Element</code> object. The DOM user must explicitly clone | |
| * <code>Attr</code> nodes to re-use them in other elements. | |
| */ | |
| public Node setNamedItem(Node arg) | |
| throws DOMException; | |
| /** | |
| * 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. | |
| * @param nameThe <code>nodeName</code> of the node to remove. | |
| * @return The node removed from this map if a node with such a name | |
| * exists. | |
| * @exception DOMException | |
| * NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in | |
| * this map. | |
| * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. | |
| */ | |
| public Node removeNamedItem(String name) | |
| throws DOMException; | |
| /** | |
| * Returns the <code>index</code>th item in the map. If <code>index</code> | |
| * is greater than or equal to the number of nodes in this map, this | |
| * returns <code>null</code>. | |
| * @param indexIndex into this map. | |
| * @return The node at the <code>index</code>th position in the map, or | |
| * <code>null</code> if that is not a valid index. | |
| */ | |
| public Node item(int index); | |
| /** | |
| * The number of nodes in this map. The range of valid child node indices | |
| * is <code>0</code> to <code>length-1</code> inclusive. | |
| */ | |
| public int getLength(); | |
| /** | |
| * Retrieves a node specified by local name and namespace URI. HTML-only | |
| * DOM implementations do not need to implement this method. | |
| * @param namespaceURIThe namespace URI of the node to retrieve. | |
| * @param localNameThe local name of the node to retrieve. | |
| * @return A <code>Node</code> (of any type) with the specified local | |
| * name and namespace URI, or <code>null</code> if they do not | |
| * identify any node in this map. | |
| * @since DOM Level 2 | |
| */ | |
| public Node getNamedItemNS(String namespaceURI, | |
| String localName); | |
| /** | |
| * Adds a node using its <code>namespaceURI</code> and | |
| * <code>localName</code>. If a node with that namespace URI and that | |
| * local name is already present in this map, it is replaced by the new | |
| * one. | |
| * <br>HTML-only DOM implementations do not need to implement this method. | |
| * @param argA node to store in this map. The node will later be | |
| * accessible using the value of its <code>namespaceURI</code> and | |
| * <code>localName</code> attributes. | |
| * @return If the new <code>Node</code> replaces an existing node the | |
| * replaced <code>Node</code> is returned, otherwise <code>null</code> | |
| * is returned. | |
| * @exception DOMException | |
| * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a | |
| * different document than the one that created this map. | |
| * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. | |
| * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an | |
| * <code>Attr</code> that is already an attribute of another | |
| * <code>Element</code> object. The DOM user must explicitly clone | |
| * <code>Attr</code> nodes to re-use them in other elements. | |
| * @since DOM Level 2 | |
| */ | |
| public Node setNamedItemNS(Node arg) | |
| throws DOMException; | |
| /** | |
| * Removes a node specified by local name and namespace URI. A removed | |
| * attribute may be known to have a default value when this map contains | |
| * the attributes attached to an element, as returned by the attributes | |
| * attribute of the <code>Node</code> interface. If so, an attribute | |
| * immediately appears containing the default value as well as the | |
| * corresponding namespace URI, local name, and prefix when applicable. | |
| * <br>HTML-only DOM implementations do not need to implement this method. | |
| * @param namespaceURIThe namespace URI of the node to remove. | |
| * @param localNameThe local name of the node to remove. | |
| * @return The node removed from this map if a node with such a local | |
| * name and namespace URI exists. | |
| * @exception DOMException | |
| * NOT_FOUND_ERR: Raised if there is no node with the specified | |
| * <code>namespaceURI</code> and <code>localName</code> in this map. | |
| * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. | |
| * @since DOM Level 2 | |
| */ | |
| public Node removeNamedItemNS(String namespaceURI, | |
| String localName) | |
| throws DOMException; | |
| } |