Package org.dom4j.tree
Class AbstractBranch
java.lang.Object
org.dom4j.tree.AbstractNode
org.dom4j.tree.AbstractBranch
- All Implemented Interfaces:
Serializable
,Cloneable
,Branch
,Node
- Direct Known Subclasses:
AbstractDocument
,AbstractElement
AbstractBranch
is an abstract base class for tree implementors
to use for implementation inheritence.
- Version:
- $Revision: 1.44 $
- Author:
- James Strachan
- See Also:
-
Field Summary
FieldsFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the givenComment
to this branch.void
Adds the givenElement
to this branch.void
Adds the givenNode
or throwsIllegalAddException
if the given node is not of a valid type.void
Adds the givenProcessingInstruction
to this branch.addElement
(String name) Adds a newElement
node with the given name to this branch and returns a reference to the new node.addElement
(String qualifiedName, String namespaceURI) Adds a newElement
node with the given qualified name and namespace URI to this branch and returns a reference to the new node.addElement
(String name, String prefix, String uri) addElement
(QName qname) Adds a newElement
node with the givenQName
to this branch and returns a reference to the new node.protected abstract void
protected abstract void
void
appendContent
(Branch branch) Appends the content of the given branch to this branch instance.protected abstract void
childAdded
(Node node) Called when a new child node has been added to me to allow any parent relationships to be created or events to be fired.protected abstract void
childRemoved
(Node node) Called when a child node has been removed to allow any parent relationships to be deleted or events to be fired.content()
protected abstract List
DOCUMENT ME!protected void
Called when the given List content has been removed so each node should have its parent and document relationships clearedprotected List
A Factory Method pattern which creates a List implementation used to store contentprotected List
createContentList
(int size) A Factory Method pattern which creates a List implementation used to store contentprotected List
A Factory Method pattern which creates an empty a BackedList implementationprotected BackedList
A Factory Method pattern which creates a BackedList implementation used to store results of a filtered content query.protected List
createSingleResultList
(Object result) A Factory Method pattern which creates a BackedList implementation which contains a single resultelementByID
(String elementID) Returns the element of the given ID attribute value.protected String
DOCUMENT ME!protected String
getContentAsStringValue
(Object content) DOCUMENT ME!protected String
getContentAsText
(Object content) DOCUMENT ME!getText()
Returns the text of this node.boolean
hasContent
returns true if this node is a Branch (either an Element or a Document) and it contains at least one content node such as a child Element or Text node.int
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.protected void
Called when an invalid node has been added.boolean
isReadOnly
returns true if this node is read only and cannot be modified.node
(int index) Returns theNode
at the specified index position.int
Returns the number ofNode
instances that this branch contains.Returns an iterator through the content nodes of this branchboolean
Removes the givenComment
if the node is an immediate child of this branch.boolean
Removes the givenElement
if the node is an immediate child of this branch.boolean
Removes the givenNode
if the node is an immediate child of this branch.boolean
Removes the givenProcessingInstruction
if the node is an immediate child of this branch.protected abstract boolean
removeNode
(Node node) void
setProcessingInstructions
(List listOfPIs) Sets all the processing instructions for this branchMethods inherited from class org.dom4j.tree.AbstractNode
asXPathResult, clone, createPattern, createXPath, createXPathFilter, createXPathResult, detach, getDocument, getDocumentFactory, getName, getNodeType, getNodeTypeName, getParent, getPath, getStringValue, getUniquePath, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setName, setParent, setText, supportsParent, valueOf, write
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.dom4j.Branch
clearContent, normalize, processingInstruction, processingInstructions, processingInstructions, removeProcessingInstruction, setContent
Methods inherited from interface org.dom4j.Node
accept, asXML, asXPathResult, clone, createXPath, detach, getDocument, getName, getNodeType, getNodeTypeName, getParent, getPath, getPath, getStringValue, getUniquePath, getUniquePath, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setName, setParent, setText, supportsParent, valueOf, write
-
Field Details
-
DEFAULT_CONTENT_LIST_SIZE
protected static final int DEFAULT_CONTENT_LIST_SIZE- See Also:
-
-
Constructor Details
-
AbstractBranch
public AbstractBranch()
-
-
Method Details
-
isReadOnly
public boolean isReadOnly()Description copied from interface:Node
isReadOnly
returns true if this node is read only and cannot be modified. Any attempt to modify a read-onlyNode
will result in anUnsupportedOperationException
being thrown.- Specified by:
isReadOnly
in interfaceNode
- Overrides:
isReadOnly
in classAbstractNode
- Returns:
- true if this
Node
is read only and cannot be modified otherwise false.
-
hasContent
public boolean hasContent()Description copied from interface:Node
hasContent
returns true if this node is a Branch (either an Element or a Document) and it contains at least one content node such as a child Element or Text node.- Specified by:
hasContent
in interfaceNode
- Overrides:
hasContent
in classAbstractNode
- Returns:
- true if this
Node
is a Branch with a nodeCount() of one or more.
-
content
Description copied from interface:Branch
-
getText
Description copied from interface:Node
Returns the text of this node.
- Specified by:
getText
in interfaceNode
- Overrides:
getText
in classAbstractNode
- Returns:
- the text for this node.
-
getContentAsText
DOCUMENT ME!- Parameters:
content
- DOCUMENT ME!- Returns:
- the text value of the given content object as text which returns the text value of CDATA, Entity or Text nodes
-
getContentAsStringValue
DOCUMENT ME!- Parameters:
content
- DOCUMENT ME!- Returns:
- the XPath defined string-value of the given content object
-
getTextTrim
-
setProcessingInstructions
Description copied from interface:Branch
Sets all the processing instructions for this branch- Specified by:
setProcessingInstructions
in interfaceBranch
- Parameters:
listOfPIs
- DOCUMENT ME!
-
addElement
Description copied from interface:Branch
Adds a newElement
node with the given name to this branch and returns a reference to the new node.- Specified by:
addElement
in interfaceBranch
- Parameters:
name
- is the name for theElement
node.- Returns:
- the newly added
Element
node.
-
addElement
Description copied from interface:Branch
Adds a newElement
node with the given qualified name and namespace URI to this branch and returns a reference to the new node.- Specified by:
addElement
in interfaceBranch
- Parameters:
qualifiedName
- is the fully qualified name of the ElementnamespaceURI
- is the URI of the namespace to use- Returns:
- the newly added
Element
node.
-
addElement
Description copied from interface:Branch
Adds a newElement
node with the givenQName
to this branch and returns a reference to the new node.- Specified by:
addElement
in interfaceBranch
- Parameters:
qname
- is the qualified name for theElement
node.- Returns:
- the newly added
Element
node.
-
addElement
-
add
Description copied from interface:Branch
Adds the givenNode
or throwsIllegalAddException
if the given node is not of a valid type. This is a polymorphic method which will call the typesafe method for the node type such as add(Element) or add(Comment). -
remove
Description copied from interface:Branch
Removes the givenNode
if the node is an immediate child of this branch. If the given node is not an immediate child of this branch then theNode.detach()
method should be used instead. This is a polymorphic method which will call the typesafe method for the node type such as remove(Element) or remove(Comment). -
add
Description copied from interface:Branch
Adds the givenComment
to this branch. If the given node already has a parent defined then anIllegalAddException
will be thrown. -
add
Description copied from interface:Branch
Adds the givenElement
to this branch. If the given node already has a parent defined then anIllegalAddException
will be thrown. -
add
Description copied from interface:Branch
Adds the givenProcessingInstruction
to this branch. If the given node already has a parent defined then anIllegalAddException
will be thrown. -
remove
Description copied from interface:Branch
Removes the givenComment
if the node is an immediate child of this branch. If the given node is not an immediate child of this branch then theNode.detach()
method should be used instead. -
remove
Description copied from interface:Branch
Removes the givenElement
if the node is an immediate child of this branch. If the given node is not an immediate child of this branch then theNode.detach()
method should be used instead. -
remove
Description copied from interface:Branch
Removes the givenProcessingInstruction
if the node is an immediate child of this branch. If the given node is not an immediate child of this branch then theNode.detach()
method should be used instead. -
elementByID
Description copied from interface:Branch
Returns the element of the given ID attribute value. If this tree is capable of understanding which attribute value should be used for the ID then it should be used, otherwise this method should return null.- Specified by:
elementByID
in interfaceBranch
- Parameters:
elementID
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
appendContent
Description copied from interface:Branch
Appends the content of the given branch to this branch instance. This method behaves like theCollection.addAll(java.util.Collection)
method.- Specified by:
appendContent
in interfaceBranch
- Parameters:
branch
- is the branch whose content will be added to me.
-
node
Description copied from interface:Branch
Returns theNode
at the specified index position. -
nodeCount
public int nodeCount()Description copied from interface:Branch
Returns the number ofNode
instances that this branch contains. -
indexOf
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. -
nodeIterator
Description copied from interface:Branch
Returns an iterator through the content nodes of this branch- Specified by:
nodeIterator
in interfaceBranch
- Returns:
- an iterator through the content nodes of this branch
-
elementID
DOCUMENT ME!- Parameters:
element
- DOCUMENT ME!- Returns:
- the ID of the given
Element
-
contentList
DOCUMENT ME!- Returns:
- the internal List used to manage the content
-
createContentList
A Factory Method pattern which creates a List implementation used to store content- Returns:
- DOCUMENT ME!
-
createContentList
A Factory Method pattern which creates a List implementation used to store content- Parameters:
size
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
createResultList
A Factory Method pattern which creates a BackedList implementation used to store results of a filtered content query.- Returns:
- DOCUMENT ME!
-
createSingleResultList
A Factory Method pattern which creates a BackedList implementation which contains a single result- Parameters:
result
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
createEmptyList
A Factory Method pattern which creates an empty a BackedList implementation- Returns:
- DOCUMENT ME!
-
addNode
-
addNode
-
removeNode
-
childAdded
Called when a new child node has been added to me to allow any parent relationships to be created or events to be fired.- Parameters:
node
- DOCUMENT ME!
-
childRemoved
Called when a child node has been removed to allow any parent relationships to be deleted or events to be fired.- Parameters:
node
- DOCUMENT ME!
-
contentRemoved
protected void contentRemoved()Called when the given List content has been removed so each node should have its parent and document relationships cleared -
invalidNodeTypeAddException
Called when an invalid node has been added. Throws anIllegalAddException
.- Parameters:
node
- DOCUMENT ME!- Throws:
IllegalAddException
- DOCUMENT ME!
-