public class DefaultElement extends AbstractElement
DefaultElement
is the default DOM4J default implementation of
an XML element.
USE_STRINGVALUE_SEPARATOR, VERBOSE_TOSTRING
DEFAULT_CONTENT_LIST_SIZE
NODE_TYPE_NAMES
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 and Description |
---|
DefaultElement(QName qname) |
DefaultElement(QName qname,
int attributeCount) |
DefaultElement(java.lang.String name) |
DefaultElement(java.lang.String name,
Namespace namespace) |
Modifier and Type | Method and Description |
---|---|
void |
add(Attribute attribute)
Adds the given
Attribute to this element. |
java.util.List<Namespace> |
additionalNamespaces()
Returns any additional namespaces declarations for this element other
than namespace returned via the
Element.getNamespace() method. |
java.util.List<Namespace> |
additionalNamespaces(java.lang.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(java.lang.String name)
Returns the attribute with the given name
|
Attribute |
attribute(java.lang.String name,
Namespace namespace) |
int |
attributeCount()
DOCUMENT ME!
|
java.util.Iterator<Attribute> |
attributeIterator()
DOCUMENT ME!
|
protected java.util.List<Attribute> |
attributeList()
DOCUMENT ME!
|
protected java.util.List<Attribute> |
attributeList(int size)
DOCUMENT ME!
|
java.util.List<Attribute> |
attributes()
Returns the
Attribute instances this element contains as a backed
List so that the attributes may be modified directly using the
List interface. |
void |
clearContent()
Clears the content for this branch, removing any
Node
instances this branch may contain. |
java.lang.Object |
clone()
clone will return a deep clone or if this node is
read-only then clone will return the same instance. |
protected java.util.List<Node> |
contentList()
DOCUMENT ME!
|
java.util.List<Namespace> |
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(java.lang.String name)
Returns the first element for the given local name and any namespace.
|
Element |
element(java.lang.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(java.lang.String prefix)
Returns the
Namespace which is mapped to the given prefix
or null if it could not be found. |
Namespace |
getNamespaceForURI(java.lang.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 . |
java.lang.String |
getStringValue()
Returns the XPath string-value of this node.
|
java.lang.String |
getText()
Returns the text of this node.
|
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. |
java.util.Iterator<Node> |
nodeIterator()
Returns an iterator through the content nodes of this branch
|
ProcessingInstruction |
processingInstruction(java.lang.String target)
DOCUMENT ME!
|
java.util.List<ProcessingInstruction> |
processingInstructions()
Returns a list of all the processing instructions in this branch.
|
java.util.List<ProcessingInstruction> |
processingInstructions(java.lang.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(java.lang.String target)
Removes the processing instruction for the given target if it exists
|
protected void |
setAttributeList(java.util.List<Attribute> attributeList) |
void |
setAttributes(java.util.List<Attribute> attributes)
Sets the attributes that this element contains
|
void |
setContent(java.util.List<Node> 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. |
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
addElement, addElement, addElement, appendContent, content, contentRemoved, createContentList, createContentList, createEmptyList, createResultList, createSingleResultList, elementByID, elementID, getContentAsStringValue, getContentAsText, getTextTrim, hasContent, invalidNodeTypeAddException, isReadOnly, setProcessingInstructions
asXPathResult, createPattern, createXPath, createXPathFilter, createXPathResult, detach, getNodeTypeName, getPath, getUniquePath, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, valueOf
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getTextTrim
addElement, addElement, appendContent, content, elementByID, setProcessingInstructions
asXPathResult, createXPath, detach, getNodeTypeName, getPath, getUniquePath, hasContent, isReadOnly, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, valueOf
public DefaultElement(java.lang.String name)
public DefaultElement(QName qname)
public DefaultElement(QName qname, int attributeCount)
public DefaultElement(java.lang.String name, Namespace namespace)
public Element getParent()
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.
getParent
in interface Node
getParent
in class AbstractNode
public void setParent(Element parent)
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.
setParent
in interface Node
setParent
in class AbstractNode
parent
- is the new parent of this node.public Document getDocument()
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.
getDocument
in interface Node
getDocument
in class AbstractNode
Document
public void setDocument(Document document)
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.
setDocument
in interface Node
setDocument
in class AbstractNode
document
- is the new document of this node.public boolean supportsParent()
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.
supportsParent
in interface Node
supportsParent
in class AbstractNode
public QName getQName()
Element
QName
of this element which represents the
local name, the qualified name and the Namespace
.QName
associated with this elementpublic void setQName(QName name)
Element
QName
of this element which represents the local
name, the qualified name and the Namespace
.name
- is the QName
to be associated with this elementpublic java.lang.String getText()
Node
Returns the text of this node.
public java.lang.String getStringValue()
Node
getStringValue
in interface Element
getStringValue
in interface Node
getStringValue
in class AbstractElement
public java.lang.Object clone()
Node
clone
will return a deep clone or if this node is
read-only then clone will return the same instance.
clone
in interface Node
clone
in class AbstractNode
public Namespace getNamespaceForPrefix(java.lang.String prefix)
Element
Namespace
which is mapped to the given prefix
or null if it could not be found.getNamespaceForPrefix
in interface Element
getNamespaceForPrefix
in class AbstractElement
prefix
- DOCUMENT ME!Namespace
associated with the given prefixpublic Namespace getNamespaceForURI(java.lang.String uri)
Element
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.getNamespaceForURI
in interface Element
getNamespaceForURI
in class AbstractElement
uri
- DOCUMENT ME!Namespace
associated with the given URIpublic java.util.List<Namespace> declaredNamespaces()
Element
declaredNamespaces
in interface Element
declaredNamespaces
in class AbstractElement
public java.util.List<Namespace> additionalNamespaces()
Element
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.additionalNamespaces
in interface Element
additionalNamespaces
in class AbstractElement
public java.util.List<Namespace> additionalNamespaces(java.lang.String defaultNamespaceURI)
additionalNamespaces
in class AbstractElement
public java.util.List<ProcessingInstruction> processingInstructions()
Branch
processingInstructions
in interface Branch
processingInstructions
in class AbstractElement
public java.util.List<ProcessingInstruction> processingInstructions(java.lang.String target)
Branch
processingInstructions
in interface Branch
processingInstructions
in class AbstractElement
target
- DOCUMENT ME!public ProcessingInstruction processingInstruction(java.lang.String target)
Branch
processingInstruction
in interface Branch
processingInstruction
in class AbstractElement
target
- DOCUMENT ME!public boolean removeProcessingInstruction(java.lang.String target)
Branch
removeProcessingInstruction
in interface Branch
removeProcessingInstruction
in class AbstractElement
target
- DOCUMENT ME!public Element element(java.lang.String name)
Element
element
in interface Element
element
in class AbstractElement
name
- DOCUMENT ME!public Element element(QName qName)
Element
element
in interface Element
element
in class AbstractElement
qName
- is the fully qualified name to search forpublic Element element(java.lang.String name, Namespace namespace)
element
in class AbstractElement
public void setContent(java.util.List<Node> content)
Branch
List
of
Node
instances.content
- is the list of nodes to use as the content for this branch.public void clearContent()
Branch
Node
instances this branch may contain.public Node node(int index)
Branch
Node
at the specified index position.node
in interface Branch
node
in class AbstractElement
index
- the index of the node to return.Node
at the specified position.public int indexOf(Node node)
Branch
indexOf
in interface Branch
indexOf
in class AbstractElement
node
- the content child node to find.public int nodeCount()
Branch
Node
instances that this branch
contains.nodeCount
in interface Branch
nodeCount
in class AbstractElement
public java.util.Iterator<Node> nodeIterator()
Branch
nodeIterator
in interface Branch
nodeIterator
in class AbstractElement
public java.util.List<Attribute> attributes()
Element
Attribute
instances this element contains as a backed
List
so that the attributes may be modified directly using the
List
interface. The List
is backed by the
Element
so that changes to the list are reflected in the
element and vice versa.attributes
in interface Element
attributes
in class AbstractElement
List
public void setAttributes(java.util.List<Attribute> attributes)
Element
attributes
- DOCUMENT ME!public java.util.Iterator<Attribute> attributeIterator()
Element
attributeIterator
in interface Element
attributeIterator
in class AbstractElement
public Attribute attribute(int index)
Element
attribute
in interface Element
attribute
in class AbstractElement
index
- DOCUMENT ME!public int attributeCount()
Element
attributeCount
in interface Element
attributeCount
in class AbstractElement
public Attribute attribute(java.lang.String name)
Element
attribute
in interface Element
attribute
in class AbstractElement
name
- DOCUMENT ME!public Attribute attribute(QName qName)
Element
attribute
in interface Element
attribute
in class AbstractElement
qName
- is the fully qualified namepublic Attribute attribute(java.lang.String name, Namespace namespace)
attribute
in class AbstractElement
public void add(Attribute attribute)
Element
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.add
in interface Element
add
in class AbstractElement
attribute
- is the attribute to be addedpublic boolean remove(Attribute attribute)
Element
Attribute
from this element.remove
in interface Element
remove
in class AbstractElement
attribute
- is the attribute to be removedprotected void addNewNode(Node node)
AbstractElement
addNewNode
in class AbstractElement
node
- DOCUMENT ME!protected boolean removeNode(Node node)
removeNode
in class AbstractElement
protected java.util.List<Node> contentList()
AbstractBranch
contentList
in class AbstractBranch
protected java.util.List<Attribute> attributeList()
AbstractElement
attributeList
in class AbstractElement
protected java.util.List<Attribute> attributeList(int size)
AbstractElement
attributeList
in class AbstractElement
size
- DOCUMENT ME!protected void setAttributeList(java.util.List<Attribute> attributeList)
protected DocumentFactory getDocumentFactory()
getDocumentFactory
in class AbstractElement