Class AttributeMap

  • All Implemented Interfaces:
    NamedNodeMap

    public class AttributeMap
    extends NamedNodeMapImpl
    AttributeMap inherits from NamedNodeMapImpl and extends it to deal with the specifics of storing attributes. These are:
    • managing ownership of attribute nodes
    • managing default attributes
    • firing mutation events

    This class doesn't directly support mutation events, however, it notifies the document when mutations are performed so that the document class do so.

    • Constructor Detail

      • AttributeMap

        protected AttributeMap​(ElementImpl ownerNode)
        Constructs a named node map.
        Parameters:
        ownerNode - the owner node
    • Method Detail

      • removeNamedItem

        public Node removeNamedItem​(String name)
                             throws DOMException
        Removes an attribute specified by name.
        Specified by:
        removeNamedItem in interface NamedNodeMap
        Overrides:
        removeNamedItem in class NamedNodeMapImpl
        Parameters:
        name - The name of a node to remove. 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.
        Returns:
        The node removed from the map if a node with such a name exists.
        Throws:
        DOMException - NOT_FOUND_ERR: Raised if there is no node named name in the map.
      • removeItem

        protected Node removeItem​(Node item)
                           throws DOMException
        NON-DOM: Remove the node object

        NOTE: Specifically removes THIS NODE -- not the node with this name, nor the node with these contents. If node does not belong to this named node map, we throw a DOMException.

        Parameters:
        item - The node to remove
        Returns:
        Removed node
        Throws:
        DOMException - on error
      • internalRemoveNamedItem

        protected final Node internalRemoveNamedItem​(String name,
                                                     boolean raiseEx)
        Internal removeNamedItem method allowing to specify whether an exception must be thrown if the specified name is not found.
        Parameters:
        name - the mane
        raiseEx - if true raise an exception
        Returns:
        the node
      • removeNamedItemNS

        public Node removeNamedItemNS​(String namespaceURI,
                                      String name)
                               throws DOMException
        Introduced in DOM Level 2.

        Removes an attribute specified by local name and namespace URI.

        Specified by:
        removeNamedItemNS in interface NamedNodeMap
        Overrides:
        removeNamedItemNS in class NamedNodeMapImpl
        Parameters:
        namespaceURI - The namespace URI of the node to remove. When it is null or an empty string, this method behaves like removeNamedItem.
        name - The local name of the node to remove. If the removed attribute is known to have a default value, an attribute immediately appears containing the default value.
        Returns:
        Node The node removed from the map if a node with such a local name and namespace URI exists.
        Throws:
        DOMException - NOT_FOUND_ERR: Raised if there is no node named name in the map.
      • internalRemoveNamedItemNS

        protected final Node internalRemoveNamedItemNS​(String namespaceURI,
                                                       String name,
                                                       boolean raiseEx)
        Internal removeNamedItemNS method allowing to specify whether an exception must be thrown if the specified local name and namespace URI is not found.
        Parameters:
        namespaceURI - the namespace uri
        name - the name
        raiseEx - if true raise exception
        Returns:
        the node
      • cloneMap

        public NamedNodeMapImpl cloneMap​(NodeImpl ownerNode)
        Cloning a NamedNodeMap is a DEEP OPERATION; it always clones all the nodes contained in the map.
        Overrides:
        cloneMap in class NamedNodeMapImpl
        Parameters:
        ownerNode - the owner node
        Returns:
        the cloned map