org.dom4j.tree
Class DefaultElement

java.lang.Object
  extended byorg.dom4j.tree.AbstractNode
      extended byorg.dom4j.tree.AbstractBranch
          extended byorg.dom4j.tree.AbstractElement
              extended byorg.dom4j.tree.DefaultElement
All Implemented Interfaces:
Branch, Cloneable, Element, Node, Serializable
Direct Known Subclasses:
BeanElement, DatatypeElement, DOMElement, IndexedElement, UserDataElement

public class DefaultElement
extends AbstractElement

DefaultElement is the default DOM4J default implementation of an XML element.

Version:
$Revision: 1.59 $
Author:
James Strachan
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.dom4j.tree.AbstractElement
EMPTY_ITERATOR, EMPTY_LIST, USE_STRINGVALUE_SEPARATOR, VERBOSE_TOSTRING
 
Fields inherited from class org.dom4j.tree.AbstractBranch
DEFAULT_CONTENT_LIST_SIZE
 
Fields inherited from class org.dom4j.tree.AbstractNode
NODE_TYPE_NAMES
 
Fields inherited from interface org.dom4j.Node
ANY_NODE, ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_REFERENCE_NODE, MAX_NODE_TYPE, NAMESPACE_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE, UNKNOWN_NODE
 
Constructor Summary
DefaultElement(QName qname)
           
DefaultElement(QName qname, int attributeCount)
           
DefaultElement(String name)
           
DefaultElement(String name, Namespace namespace)
           
 
Method Summary
 void add(Attribute attribute)
          Adds the given Attribute to this element.
 List additionalNamespaces()
           Returns any additional namespaces declarations for this element other than namespace returned via the AbstractElement.getNamespace()method.
 List additionalNamespaces(String defaultNamespaceURI)
           
protected  void addNewNode(Node node)
          Like addNode() but does not require a parent check
 Attribute attribute(int index)
          Returns the attribute at the specified indexGets the
 Attribute attribute(QName qName)
          DOCUMENT ME!
 Attribute attribute(String name)
          Returns the attribute with the given name
 Attribute attribute(String name, Namespace namespace)
           
 int attributeCount()
          DOCUMENT ME!
 Iterator attributeIterator()
          DOCUMENT ME!
protected  List attributeList()
          DOCUMENT ME!
protected  List attributeList(int size)
          DOCUMENT ME!
 List attributes()
           Returns the Attributeinstances this element contains as a backed Listso that the attributes may be modified directly using the Listinterface.
 void clearContent()
          Clears the content for this branch, removing any Node instances this branch may contain.
 Object clone()
           clone will return a deep clone or if this node is read-only then clone will return the same instance.
protected  List contentList()
          DOCUMENT ME!
 List declaredNamespaces()
           Returns all the namespaces declared by this element.
 Element element(QName qName)
          Returns the first element for the given fully qualified name.
 Element element(String name)
          Returns the first element for the given local name and any namespace.
 Element element(String name, Namespace namespace)
           
 Document getDocument()
           getDocument returns the Document that this Node is part of if this node supports the parent relationship.
protected  DocumentFactory getDocumentFactory()
           
 Namespace getNamespaceForPrefix(String prefix)
           Returns the Namespace which is mapped to the given prefix or null if it could not be found.
 Namespace getNamespaceForURI(String uri)
           Returns the Namespace which is mapped to the given URI or null if it could not be found.
 Element getParent()
           getParent returns the parent Element if this node supports the parent relationship or null if it is the root element or does not support the parent relationship.
 QName getQName()
           Returns the QName of this element which represents the local name, the qualified name and the Namespace.
 String getStringValue()
          Returns the XPath string-value of this node.
 String getText()
          Returns the text value of this element without recursing through child elements.
 int indexOf(Node node)
          Returns the index of the given node if it is a child node of this branch or -1 if the given node is not a child node.
 Node node(int index)
          Returns the Node at the specified index position.
 int nodeCount()
          Returns the number of Node instances that this branch contains.
 Iterator nodeIterator()
          Returns an iterator through the content nodes of this branch
 ProcessingInstruction processingInstruction(String target)
          DOCUMENT ME!
 List processingInstructions()
           Returns a list of all the processing instructions in this branch.
 List processingInstructions(String target)
           Returns a list of the processing instructions for the given target.
 boolean remove(Attribute attribute)
          Removes the given Attribute from this element.
protected  boolean removeNode(Node node)
           
 boolean removeProcessingInstruction(String target)
          Removes the processing instruction for the given target if it exists
protected  void setAttributeList(List attributeList)
           
 void setAttributes(List attributes)
          Sets the attributes that this element contains
 void setContent(List content)
          Sets the contents of this branch as a List of Node instances.
 void setDocument(Document document)
           setDocument sets the document of this node if the parent relationship is supported or does nothing if the parent relationship is not supported.
 void setParent(Element parent)
           setParent sets the parent relationship of this node if the parent relationship is supported or does nothing if the parent relationship is not supported.
 void setQName(QName name)
           Sets the QName of this element which represents the local name, the qualified name and the Namespace.
 boolean supportsParent()
           supportsParent returns true if this node supports the parent relationship.
 
Methods inherited from class org.dom4j.tree.AbstractElement
accept, add, add, add, add, add, add, add, add, addAttribute, addAttribute, addCDATA, addComment, addElement, addEntity, addNamespace, addNewNode, addNode, addNode, addProcessingInstruction, addProcessingInstruction, addText, appendAttributes, asXML, attributeValue, attributeValue, attributeValue, attributeValue, childAdded, childRemoved, createAttributeList, createAttributeList, createCopy, createCopy, createCopy, createElement, createElement, createSingleIterator, elementIterator, elementIterator, elementIterator, elementIterator, elements, elements, elements, elements, elementText, elementText, elementTextTrim, elementTextTrim, ensureAttributesCapacity, getData, getName, getNamespace, getNamespacePrefix, getNamespacesForURI, getNamespaceURI, getNodeType, getPath, getQName, getQualifiedName, getUniquePath, getXPathNameStep, getXPathResult, hasMixedContent, isRootElement, isTextOnly, normalize, remove, remove, remove, remove, remove, remove, remove, remove, setAttributes, setAttributeValue, setAttributeValue, setData, setName, setNamespace, setText, toString, write
 
Methods inherited from class org.dom4j.tree.AbstractBranch
addElement, addElement, addElement, appendContent, content, contentRemoved, createContentList, createContentList, createEmptyList, createResultList, createSingleResultList, elementByID, elementID, getContentAsStringValue, getContentAsText, getTextTrim, hasContent, invalidNodeTypeAddException, isReadOnly, setProcessingInstructions
 
Methods inherited from class org.dom4j.tree.AbstractNode
asXPathResult, createPattern, createXPath, createXPathFilter, createXPathResult, detach, getNodeTypeName, getPath, getUniquePath, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, valueOf
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.dom4j.Element
getTextTrim
 
Methods inherited from interface org.dom4j.Branch
addElement, addElement, appendContent, content, elementByID, setProcessingInstructions
 
Methods inherited from interface org.dom4j.Node
asXPathResult, createXPath, detach, getNodeTypeName, getPath, getUniquePath, hasContent, isReadOnly, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, valueOf
 

Constructor Detail

DefaultElement

public DefaultElement(String name)

DefaultElement

public DefaultElement(QName qname)

DefaultElement

public DefaultElement(QName qname,
                      int attributeCount)

DefaultElement

public DefaultElement(String name,
                      Namespace namespace)
Method Detail

getParent

public Element getParent()
Description copied from interface: Node

getParent returns the parent Element if this node supports the parent relationship or null if it is the root element or does not support the parent relationship.

This method is an optional feature and may not be supported for all Node implementations.

Specified by:
getParent in interface Node
Overrides:
getParent in class AbstractNode

setParent

public void setParent(Element parent)
Description copied from interface: Node

setParent sets the parent relationship of this node if the parent relationship is supported or does nothing if the parent relationship is not supported.

This method should only be called from inside an Element implementation method and is not intended for general use.

Specified by:
setParent in interface Node
Overrides:
setParent in class AbstractNode

getDocument

public Document getDocument()
Description copied from interface: Node

getDocument returns the Document that this Node is part of if this node supports the parent relationship.

This method is an optional feature and may not be supported for all Node implementations.

Specified by:
getDocument in interface Node
Overrides:
getDocument in class AbstractNode

setDocument

public void setDocument(Document document)
Description copied from interface: Node

setDocument sets the document of this node if the parent relationship is supported or does nothing if the parent relationship is not supported.

This method should only be called from inside a Document implementation method and is not intended for general use.

Specified by:
setDocument in interface Node
Overrides:
setDocument in class AbstractNode

supportsParent

public boolean supportsParent()
Description copied from interface: Node

supportsParent returns true if this node supports the parent relationship.

Some XML tree implementations are singly linked and only support downward navigation through children relationships. The default case is that both parent and children relationships are supported though for memory and performance reasons the parent relationship may not be supported.

Specified by:
supportsParent in interface Node
Overrides:
supportsParent in class AbstractNode

getQName

public QName getQName()
Description copied from interface: Element

Returns the QName of this element which represents the local name, the qualified name and the Namespace.

Returns:
the QName associated with this element

setQName

public void setQName(QName name)
Description copied from interface: Element

Sets the QName of this element which represents the local name, the qualified name and the Namespace.

Parameters:
name - is the QName to be associated with this element

getText

public String getText()
Description copied from interface: Element
Returns the text value of this element without recursing through child elements. This method iterates through all Text,CDATA and Entitynodes that this element contains and appends the text values together.

Specified by:
getText in interface Element
Overrides:
getText in class AbstractBranch

getStringValue

public String getStringValue()
Description copied from interface: Element
Returns the XPath string-value of this node. The behaviour of this method is defined in the XPath specification . This method returns the string-value of all the contained Text,CDATA,Entityand Element nodes all appended together.

Specified by:
getStringValue in interface Element
Overrides:
getStringValue in class AbstractElement

clone

public Object clone()
Description copied from interface: Node

clone will return a deep clone or if this node is read-only then clone will return the same instance.

Specified by:
clone in interface Node
Overrides:
clone in class AbstractNode

getNamespaceForPrefix

public Namespace getNamespaceForPrefix(String prefix)
Description copied from interface: Element

Returns the Namespace which is mapped to the given prefix or null if it could not be found.

Specified by:
getNamespaceForPrefix in interface Element
Overrides:
getNamespaceForPrefix in class AbstractElement

getNamespaceForURI

public Namespace getNamespaceForURI(String uri)
Description copied from interface: Element

Returns the Namespace which is mapped to the given URI or null if it could not be found. If there is more than one Namespace mapped to the URI, which of them will be returned is undetermined.

Specified by:
getNamespaceForURI in interface Element
Overrides:
getNamespaceForURI in class AbstractElement

declaredNamespaces

public List declaredNamespaces()
Description copied from interface: Element

Returns all the namespaces declared by this element. If no namespaces are declared for this element then an empty list will be returned. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.

Specified by:
declaredNamespaces in interface Element
Overrides:
declaredNamespaces in class AbstractElement

additionalNamespaces

public List additionalNamespaces()
Description copied from interface: Element

Returns any additional namespaces declarations for this element other than namespace returned via the Element.getNamespace()method. If no additional namespace declarations are present for this element then an empty list will be returned. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.

Specified by:
additionalNamespaces in interface Element
Overrides:
additionalNamespaces in class AbstractElement

additionalNamespaces

public List additionalNamespaces(String defaultNamespaceURI)
Overrides:
additionalNamespaces in class AbstractElement

processingInstructions

public List processingInstructions()
Description copied from interface: Branch

Returns a list of all the processing instructions in this branch. The list is backed by this branch so that changes to the list will be reflected in the branch but the reverse is not the case.

Specified by:
processingInstructions in interface Branch
Overrides:
processingInstructions in class AbstractElement

processingInstructions

public List processingInstructions(String target)
Description copied from interface: Branch

Returns a list of the processing instructions for the given target. The list is backed by this branch so that changes to the list will be reflected in the branch but the reverse is not the case.

Specified by:
processingInstructions in interface Branch
Overrides:
processingInstructions in class AbstractElement

processingInstruction

public ProcessingInstruction processingInstruction(String target)
Description copied from interface: Branch
DOCUMENT ME!

Specified by:
processingInstruction in interface Branch
Overrides:
processingInstruction in class AbstractElement

removeProcessingInstruction

public boolean removeProcessingInstruction(String target)
Description copied from interface: Branch
Removes the processing instruction for the given target if it exists

Specified by:
removeProcessingInstruction in interface Branch
Overrides:
removeProcessingInstruction in class AbstractElement

element

public Element element(String name)
Description copied from interface: Element
Returns the first element for the given local name and any namespace.

Specified by:
element in interface Element
Overrides:
element in class AbstractElement

element

public Element element(QName qName)
Description copied from interface: Element
Returns the first element for the given fully qualified name.

Specified by:
element in interface Element
Overrides:
element in class AbstractElement

element

public Element element(String name,
                       Namespace namespace)
Overrides:
element in class AbstractElement

setContent

public void setContent(List content)
Description copied from interface: Branch
Sets the contents of this branch as a List of Node instances.

Parameters:
content - is the list of nodes to use as the content for this branch.

clearContent

public void clearContent()
Description copied from interface: Branch
Clears the content for this branch, removing any Node instances this branch may contain.


node

public Node node(int index)
Description copied from interface: Branch
Returns the Node at the specified index position.

Specified by:
node in interface Branch
Overrides:
node in class AbstractElement

indexOf

public int indexOf(Node node)
Description copied from interface: Branch
Returns the index of the given node if it is a child node of this branch or -1 if the given node is not a child node.

Specified by:
indexOf in interface Branch
Overrides:
indexOf in class AbstractElement

nodeCount

public int nodeCount()
Description copied from interface: Branch
Returns the number of Node instances that this branch contains.

Specified by:
nodeCount in interface Branch
Overrides:
nodeCount in class AbstractElement

nodeIterator

public Iterator nodeIterator()
Description copied from interface: Branch
Returns an iterator through the content nodes of this branch

Specified by:
nodeIterator in interface Branch
Overrides:
nodeIterator in class AbstractElement

attributes

public List attributes()
Description copied from interface: Element

Returns the Attributeinstances this element contains as a backed Listso that the attributes may be modified directly using the Listinterface. The List is backed by the Element so that changes to the list are reflected in the element and vice versa.

Specified by:
attributes in interface Element
Overrides:
attributes in class AbstractElement

setAttributes

public void setAttributes(List attributes)
Description copied from interface: Element
Sets the attributes that this element contains

Parameters:
attributes - DOCUMENT ME!

attributeIterator

public Iterator attributeIterator()
Description copied from interface: Element
DOCUMENT ME!

Specified by:
attributeIterator in interface Element
Overrides:
attributeIterator in class AbstractElement

attribute

public Attribute attribute(int index)
Description copied from interface: Element
Returns the attribute at the specified indexGets the

Specified by:
attribute in interface Element
Overrides:
attribute in class AbstractElement

attributeCount

public int attributeCount()
Description copied from interface: Element
DOCUMENT ME!

Specified by:
attributeCount in interface Element
Overrides:
attributeCount in class AbstractElement

attribute

public Attribute attribute(String name)
Description copied from interface: Element
Returns the attribute with the given name

Specified by:
attribute in interface Element
Overrides:
attribute in class AbstractElement

attribute

public Attribute attribute(QName qName)
Description copied from interface: Element
DOCUMENT ME!

Specified by:
attribute in interface Element
Overrides:
attribute in class AbstractElement

attribute

public Attribute attribute(String name,
                           Namespace namespace)
Overrides:
attribute in class AbstractElement

add

public void add(Attribute attribute)
Description copied from interface: Element
Adds the given Attribute to this element. If the given node already has a parent defined then an IllegalAddException will be thrown. Attributes with null values are silently ignored.

If the value of the attribute is null then this method call will remove any attributes with the QName of this attribute.

Specified by:
add in interface Element
Overrides:
add in class AbstractElement

remove

public boolean remove(Attribute attribute)
Description copied from interface: Element
Removes the given Attribute from this element.

Specified by:
remove in interface Element
Overrides:
remove in class AbstractElement

addNewNode

protected void addNewNode(Node node)
Description copied from class: AbstractElement
Like addNode() but does not require a parent check

Overrides:
addNewNode in class AbstractElement
Parameters:
node - DOCUMENT ME!

removeNode

protected boolean removeNode(Node node)
Overrides:
removeNode in class AbstractElement

contentList

protected List contentList()
Description copied from class: AbstractBranch
DOCUMENT ME!

Specified by:
contentList in class AbstractBranch
Returns:
the internal List used to manage the content

attributeList

protected List attributeList()
Description copied from class: AbstractElement
DOCUMENT ME!

Specified by:
attributeList in class AbstractElement
Returns:
the internal List used to store attributes or creates one if one is not available

attributeList

protected List attributeList(int size)
Description copied from class: AbstractElement
DOCUMENT ME!

Specified by:
attributeList in class AbstractElement
Parameters:
size - DOCUMENT ME!
Returns:
the internal List used to store attributes or creates one with the specified size if one is not available

setAttributeList

protected void setAttributeList(List attributeList)

getDocumentFactory

protected DocumentFactory getDocumentFactory()
Overrides:
getDocumentFactory in class AbstractElement


Copyright © 2001-2005 MetaStuff Ltd.. All Rights Reserved.