com.japisoft.fastparser.dom
Class ElementImpl

java.lang.Object
  |
  +--com.japisoft.fastparser.node.SimpleNode
        |
        +--com.japisoft.fastparser.dom.NodeImpl
              |
              +--com.japisoft.fastparser.dom.ElementImpl
All Implemented Interfaces:
Element, MutableNode, Node, ViewableNode

public class ElementImpl
extends NodeImpl
implements Element

Element

Version:
1.0
Author:
(c) 2002-2003 JAPISOFT

Field Summary
 
Fields inherited from class com.japisoft.fastparser.dom.NodeImpl
nameSpaceURI
 
Fields inherited from class com.japisoft.fastparser.node.SimpleNode
COMMENT_NODE, TAG_NODE, TEXT_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
ElementImpl(java.lang.String tagName)
           
 
Method Summary
 java.lang.String getAttribute(java.lang.String name)
          Retrieves an attribute value by name.
 Attr getAttributeNode(java.lang.String name)
          Retrieves an Attr node by name.
 Attr getAttributeNodeNS(java.lang.String namespaceURI, java.lang.String localName)
           
 java.lang.String getAttributeNS(java.lang.String namespaceURI, java.lang.String localName)
           
 NodeList getElementsByTagName(java.lang.String name)
          Returns a NodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the Element tree.
 NodeList getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)
           
 java.lang.String getTagName()
          The name of the element.
 boolean hasAttribute(java.lang.String name)
           
 boolean hasAttributeNS(java.lang.String namespaceURI, java.lang.String localName)
           
 void normalize()
          Puts all Text nodes in the full depth of the sub-tree underneath this Element into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are no adjacent Text nodes.
 void removeAttribute(java.lang.String name)
          Removes an attribute by name.
 Attr removeAttributeNode(Attr oldAttr)
          Removes the specified attribute.
 void removeAttributeNS(java.lang.String namespaceURI, java.lang.String localName)
           
 void setAttribute(java.lang.String name, java.lang.String value)
          Adds a new attribute.
 Attr setAttributeNode(Attr newAttr)
          Adds a new attribute.
 Attr setAttributeNodeNS(Attr newAttr)
           
 void setAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName, java.lang.String value)
           
 
Methods inherited from class com.japisoft.fastparser.dom.NodeImpl
appendChild, cloneNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, removeChild, replaceChild, setNamespaceURI, setNodeValue, setOwnerDocument, setPrefix
 
Methods inherited from class com.japisoft.fastparser.node.SimpleNode
addChildNode, addNameSpaceDeclaration, addNode, childAt, childCount, childNodeIndex, clone, getAllChild, getAttribute, getContent, getDefaultNamespace, getDocument, getLine, getNameSpaceDeclaration, getNameSpaceDeclarationURI, getNamespaceDeclared, getNameSpacePrefix, getNameSpaceURI, getNodeByCriteria, getNodeByName, getNodeContent, getNodeForXPathLocation, getSimpleParent, getType, getViewAttribute, getViewAttributes, getViewChildAt, getViewChildCount, getViewContent, getXPathLocation, getXPathLocation, insertChildNode, isComment, isLeaf, isNamespaceDeclared, isRoot, isTag, isText, isViewComment, isViewLeaf, isViewText, removeChildNode, removeNameSpaceDeclaration, setContent, setDefaultNamespace, setDocument, setLine, setNameSpace, setNodeAttribute, setNodeContent, setNodeParent, setSimpleParent, setType, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPreviousSibling, hasChildNodes, insertBefore, removeChild, replaceChild, setNodeValue
 

Constructor Detail

ElementImpl

public ElementImpl(java.lang.String tagName)
Method Detail

getTagName

public java.lang.String getTagName()
The name of the element. For example, in: <elementExample id="demo"> ... </elementExample> , tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the tagName of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.

Specified by:
getTagName in interface Element

getAttribute

public java.lang.String getAttribute(java.lang.String name)
Retrieves an attribute value by name.

Specified by:
getAttribute in interface Element
Overrides:
getAttribute in class SimpleNode
Parameters:
name - The name of the attribute to retrieve.
Returns:
The Attr value as a string, or the empty string if that attribute does not have a specified or default value.

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.String value)
                  throws DOMException
Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an Attr node plus any Text and EntityReference nodes, build the appropriate subtree, and use setAttributeNode to assign it as the value of an attribute.

Specified by:
setAttribute in interface Element
Overrides:
setAttribute in class SimpleNode
Parameters:
name - The name of the attribute to create or alter.
value - Value to set in string form.
Throws:
DOMException - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

removeAttribute

public void removeAttribute(java.lang.String name)
                     throws DOMException
Removes an attribute by name. If the removed attribute has a default value it is immediately replaced.

Specified by:
removeAttribute in interface Element
Parameters:
name - The name of the attribute to remove.
Throws:
DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

getAttributeNode

public Attr getAttributeNode(java.lang.String name)
Retrieves an Attr node by name.

Specified by:
getAttributeNode in interface Element
Parameters:
name - The name of the attribute to retrieve.
Returns:
The Attr node with the specified attribute name or null if there is no such attribute.

setAttributeNode

public Attr setAttributeNode(Attr newAttr)
                      throws DOMException
Adds a new attribute. If an attribute with that name is already present in the element, it is replaced by the new one.

Specified by:
setAttributeNode in interface Element
Parameters:
newAttr - The Attr node to add to the attribute list.
Returns:
If the newAttr attribute replaces an existing attribute with the same name, the previously existing Attr node is returned, otherwise null is returned.
Throws:
DOMException - WRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

removeAttributeNode

public Attr removeAttributeNode(Attr oldAttr)
                         throws DOMException
Removes the specified attribute.

Specified by:
removeAttributeNode in interface Element
Parameters:
oldAttr - The Attr node to remove from the attribute list. If the removed Attr has a default value it is immediately replaced.
Returns:
The Attr node that was removed.
Throws:
DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if oldAttr is not an attribute of the element.

getElementsByTagName

public NodeList getElementsByTagName(java.lang.String name)
Returns a NodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the Element tree.

Specified by:
getElementsByTagName in interface Element
Parameters:
name - The name of the tag to match on. The special value "*" matches all tags.
Returns:
A list of matching Element nodes.

normalize

public void normalize()
Puts all Text nodes in the full depth of the sub-tree underneath this Element into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are no adjacent Text nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

Specified by:
normalize in interface Element
Overrides:
normalize in class NodeImpl

getAttributeNS

public java.lang.String getAttributeNS(java.lang.String namespaceURI,
                                       java.lang.String localName)

setAttributeNS

public void setAttributeNS(java.lang.String namespaceURI,
                           java.lang.String qualifiedName,
                           java.lang.String value)
                    throws DOMException
DOMException

removeAttributeNS

public void removeAttributeNS(java.lang.String namespaceURI,
                              java.lang.String localName)
                       throws DOMException
DOMException

getAttributeNodeNS

public Attr getAttributeNodeNS(java.lang.String namespaceURI,
                               java.lang.String localName)

setAttributeNodeNS

public Attr setAttributeNodeNS(Attr newAttr)
                        throws DOMException
DOMException

getElementsByTagNameNS

public NodeList getElementsByTagNameNS(java.lang.String namespaceURI,
                                       java.lang.String localName)

hasAttribute

public boolean hasAttribute(java.lang.String name)
Overrides:
hasAttribute in class SimpleNode
Returns:
true is the name attribute exists

hasAttributeNS

public boolean hasAttributeNS(java.lang.String namespaceURI,
                              java.lang.String localName)