Enhydra 3.1 API

org.apache.xalan.xpath.dtm
Class DTMProxyMap

java.lang.Object
  |
  +--org.apache.xalan.xpath.dtm.DTMProxyMap

public class DTMProxyMap
extends java.lang.Object
implements NamedNodeMap

DTMProxyMap is a quickie (as opposed to quick) implementation of the DOM's NamedNodeMap interface, intended to support DTMProxy's getAttributes() call.

***** Note: this does _not_ current attempt to cache any of the data; if you ask for attribute 27 and then 28, you'll have to rescan the first 27. It should probably at least keep track of the last one retrieved, and possibly buffer the whole array.

***** Also note that there's no fastpath for the by-name query; we search linearly until we find it or fail to find it. Again, that could be optimized at some cost in object creation/storage.


Method Summary
 int getLength()
          Return the number of Attributes on this Element
 Node getNamedItem(java.lang.String name)
          Return the Attr node having a specific name
 Node getNamedItemNS(java.lang.String namespaceURI, java.lang.String localName)
          Retrieve a node specified by local name and namespace URI -- DOMLevel 2
 Node item(int i)
          Return the i'th Attr node bound to this element
 Node removeNamedItem(java.lang.String name)
          DOM API requires this, but DTM is a read-only model
 Node removeNamedItemNS(java.lang.String namespaceURI, java.lang.String localName)
          DOM 2 API requires this, but DTM is a read-only model
 Node setNamedItem(Node newNode)
          DOM API requires this, but DTM is a read-only model
 Node setNamedItemNS(Node arg)
          DOM 2 API requires this, but DTM is a read-only model
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getLength

public int getLength()
Return the number of Attributes on this Element
Specified by:
getLength in interface NamedNodeMap

getNamedItem

public Node getNamedItem(java.lang.String name)
Return the Attr node having a specific name
Specified by:
getNamedItem in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
name - The nodeName of a node to retrieve.
Returns:
A Node (of any type) with the specified nodeName , or null if it does not identify any node in this map.

item

public Node item(int i)
Return the i'th Attr node bound to this element
Specified by:
item in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
index - Index into this map.
Returns:
The node at the index th position in the map, or null if that is not a valid index.

setNamedItem

public Node setNamedItem(Node newNode)
DOM API requires this, but DTM is a read-only model
Specified by:
setNamedItem in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
arg - A node to store in this map. The node will later be accessible using the value of its nodeName attribute.
Returns:
If the new Node replaces an existing node the replaced Node is returned, otherwise null is returned.
Throws:
DOMException - WRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created this map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
INUSE_ATTRIBUTE_ERR: Raised if arg is an Attr that is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

removeNamedItem

public Node removeNamedItem(java.lang.String name)
DOM API requires this, but DTM is a read-only model
Specified by:
removeNamedItem in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
name - The nodeName of the node to remove.
Returns:
The node removed from this map if a node with such a name exists.
Throws:
DOMException - NOT_FOUND_ERR: Raised if there is no node named name in this map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.

getNamedItemNS

public Node getNamedItemNS(java.lang.String namespaceURI,
                           java.lang.String localName)
Retrieve a node specified by local name and namespace URI -- DOMLevel 2
Specified by:
getNamedItemNS in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
namespaceURI - The namespace URI of the node to retrieve.
localName - The local name of the node to retrieve.
Returns:
A Node (of any type) with the specified local name and namespace URI, or null if they do not identify any node in this map.

setNamedItemNS

public Node setNamedItemNS(Node arg)
                    throws DOMException
DOM 2 API requires this, but DTM is a read-only model
Specified by:
setNamedItemNS in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
arg - A node to store in this map. The node will later be accessible using the value of its namespaceURI and localName attributes.
Returns:
If the new Node replaces an existing node the replaced Node is returned, otherwise null is returned.
Throws:
DOMException - WRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created this map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
INUSE_ATTRIBUTE_ERR: Raised if arg is an Attr that is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

removeNamedItemNS

public Node removeNamedItemNS(java.lang.String namespaceURI,
                              java.lang.String localName)
                       throws DOMException
DOM 2 API requires this, but DTM is a read-only model
Specified by:
removeNamedItemNS in interface NamedNodeMap
Tags copied from interface: NamedNodeMap
Parameters:
namespaceURI - The namespace URI of the node to remove.
localName - The local name of the node to remove.
Returns:
The node removed from this map if a node with such a local name and namespace URI exists.
Throws:
DOMException - NOT_FOUND_ERR: Raised if there is no node with the specified namespaceURI and localName in this map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.

Enhydra 3.1 API