org.w3c.dom.Element
interface and additionally allows
for the storage of non-textual objects via the
getUserObject
and setUserObject
methods.
This class is not intended to be used for general XML
processing. In particular, Element
nodes created
within the Image I/O API are not compatible with those created by
Sun's standard implementation of the org.w3.dom
API.
In particular, the implementation is tuned for simple uses and may
not perform well for intensive processing.
Namespaces are ignored in this implementation. The terms "tag
name" and "node name" are always considered to be synonymous.
Note:
The DOM Level 3 specification added a number of new methods to the
Node
, Element
and Attr
interfaces that are not
of value to the IIOMetadataNode
implementation or specification.
Calling such methods on an IIOMetadataNode
, or an Attr
instance returned from an IIOMetadataNode
will result in a
DOMException
being thrown.
- See Also:
-
Field Summary
Fields declared in interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
-
Constructor Summary
ConstructorDescriptionConstructs an emptyIIOMetadataNode
.IIOMetadataNode
(String nodeName) Constructs anIIOMetadataNode
with a given node name. -
Method Summary
Modifier and TypeMethodDescriptionappendChild
(Node newChild) Adds the nodenewChild
to the end of the list of children of this node.cloneNode
(boolean deep) Returns a duplicate of this node.short
compareDocumentPosition
(Node other) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.getAttribute
(String name) Retrieves an attribute value by name.getAttributeNode
(String name) Retrieves an attribute node by name.getAttributeNodeNS
(String namespaceURI, String localName) Equivalent togetAttributeNode(localName)
.getAttributeNS
(String namespaceURI, String localName) Equivalent togetAttribute(localName)
.Returns aNamedNodeMap
containing the attributes of this node.This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.Returns aNodeList
that contains all children of this node.getElementsByTagName
(String name) Returns aNodeList
of all descendantElements
with a given tag name, in document order.getElementsByTagNameNS
(String namespaceURI, String localName) Equivalent togetElementsByTagName(localName)
.getFeature
(String feature, String version) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.Returns the first child of this node, ornull
if the node has no children.Returns the last child of this node, ornull
if the node has no children.int
The number of nodes in the list.Equivalent togetNodeName
.Returnsnull
, since namespaces are not supported.Returns the next sibling of this node, ornull
if the node has no next sibling.Returns the node name associated with this node.short
Returns the node type, which is alwaysELEMENT_NODE
.Returns the value associated with this node.Returnsnull
, sinceIIOMetadataNode
s do not belong to anyDocument
.Returns the parent of this node.Returnsnull
, since namespaces are not supported.Returns the previous sibling of this node, ornull
if this node has no previous sibling.This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.Equivalent togetNodeName
.This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.getUserData
(String key) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.Returns theObject
value associated with this node.boolean
hasAttribute
(String name) Returnstrue
when an attribute with a given name is specified on this element or has a default value,false
otherwise.boolean
hasAttributeNS
(String namespaceURI, String localName) Equivalent tohasAttribute(localName)
.boolean
Returns whether this node (if it is an element) has any attributes.boolean
Returnstrue
if this node has child nodes.insertBefore
(Node newChild, Node refChild) Inserts the nodenewChild
before the existing child noderefChild
.boolean
isDefaultNamespace
(String namespaceURI) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.boolean
isEqualNode
(Node node) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.boolean
isSameNode
(Node node) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.boolean
isSupported
(String feature, String version) Returnsfalse
since DOM features are not supported.item
(int index) Returns theindex
th item in the collection.lookupNamespaceURI
(String prefix) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.lookupPrefix
(String namespaceURI) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.void
Does nothing, sinceIIOMetadataNode
s do not containText
children.void
removeAttribute
(String name) Removes an attribute by name.removeAttributeNode
(Attr oldAttr) Removes the specified attribute node.void
removeAttributeNS
(String namespaceURI, String localName) Equivalent toremoveAttribute(localName)
.removeChild
(Node oldChild) Removes the child node indicated byoldChild
from the list of children, and returns it.replaceChild
(Node newChild, Node oldChild) Replaces the child nodeoldChild
withnewChild
in the list of children, and returns theoldChild
node.void
setAttribute
(String name, String value) Adds a new attribute.setAttributeNode
(Attr newAttr) Adds a new attribute node.setAttributeNodeNS
(Attr newAttr) Equivalent tosetAttributeNode(newAttr)
.void
setAttributeNS
(String namespaceURI, String qualifiedName, String value) Equivalent tosetAttribute(qualifiedName, value)
.void
setIdAttribute
(String name, boolean isId) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.void
setIdAttributeNode
(Attr idAttr, boolean isId) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.void
setIdAttributeNS
(String namespaceURI, String localName, boolean isId) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.void
setNodeValue
(String nodeValue) Sets theString
value associated with this node.void
Does nothing, since namespaces are not supported.void
setTextContent
(String textContent) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.setUserData
(String key, Object data, UserDataHandler handler) This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.void
setUserObject
(Object userObject) Sets the value associated with this node.
-
Constructor Details
-
IIOMetadataNode
public IIOMetadataNode()Constructs an emptyIIOMetadataNode
. -
IIOMetadataNode
Constructs anIIOMetadataNode
with a given node name.- Parameters:
nodeName
- the name of the node, as aString
.
-
-
Method Details
-
getNodeName
Returns the node name associated with this node.- Specified by:
getNodeName
in interfaceNode
- Returns:
- the node name, as a
String
.
-
getNodeValue
Returns the value associated with this node.- Specified by:
getNodeValue
in interfaceNode
- Returns:
- the node value, as a
String
.
-
setNodeValue
Sets theString
value associated with this node.- Specified by:
setNodeValue
in interfaceNode
-
getNodeType
public short getNodeType()Returns the node type, which is alwaysELEMENT_NODE
.- Specified by:
getNodeType
in interfaceNode
- Returns:
- the
short
valueELEMENT_NODE
.
-
getParentNode
Returns the parent of this node. Anull
value indicates that the node is the root of its own tree. To add a node to an existing tree, use one of theinsertBefore
,replaceChild
, orappendChild
methods.- Specified by:
getParentNode
in interfaceNode
- Returns:
- the parent, as a
Node
. - See Also:
-
getChildNodes
Returns aNodeList
that contains all children of this node. If there are no children, this is aNodeList
containing no nodes.- Specified by:
getChildNodes
in interfaceNode
- Returns:
- the children as a
NodeList
-
getFirstChild
Returns the first child of this node, ornull
if the node has no children.- Specified by:
getFirstChild
in interfaceNode
- Returns:
- the first child, as a
Node
, ornull
-
getLastChild
Returns the last child of this node, ornull
if the node has no children.- Specified by:
getLastChild
in interfaceNode
- Returns:
- the last child, as a
Node
, ornull
.
-
getPreviousSibling
Returns the previous sibling of this node, ornull
if this node has no previous sibling.- Specified by:
getPreviousSibling
in interfaceNode
- Returns:
- the previous sibling, as a
Node
, ornull
.
-
getNextSibling
Returns the next sibling of this node, ornull
if the node has no next sibling.- Specified by:
getNextSibling
in interfaceNode
- Returns:
- the next sibling, as a
Node
, ornull
.
-
getAttributes
Returns aNamedNodeMap
containing the attributes of this node.- Specified by:
getAttributes
in interfaceNode
- Returns:
- a
NamedNodeMap
containing the attributes of this node.
-
getOwnerDocument
Returnsnull
, sinceIIOMetadataNode
s do not belong to anyDocument
.- Specified by:
getOwnerDocument
in interfaceNode
- Returns:
null
.
-
insertBefore
Inserts the nodenewChild
before the existing child noderefChild
. IfrefChild
isnull
, insertnewChild
at the end of the list of children.- Specified by:
insertBefore
in interfaceNode
- Parameters:
newChild
- theNode
to insert.refChild
- the referenceNode
.- Returns:
- the node being inserted.
- Throws:
IllegalArgumentException
- ifnewChild
isnull
.
-
replaceChild
Replaces the child nodeoldChild
withnewChild
in the list of children, and returns theoldChild
node.- Specified by:
replaceChild
in interfaceNode
- Parameters:
newChild
- theNode
to insert.oldChild
- theNode
to be replaced.- Returns:
- the node replaced.
- Throws:
IllegalArgumentException
- ifnewChild
isnull
.
-
removeChild
Removes the child node indicated byoldChild
from the list of children, and returns it.- Specified by:
removeChild
in interfaceNode
- Parameters:
oldChild
- theNode
to be removed.- Returns:
- the node removed.
- Throws:
IllegalArgumentException
- ifoldChild
isnull
.
-
appendChild
Adds the nodenewChild
to the end of the list of children of this node.- Specified by:
appendChild
in interfaceNode
- Parameters:
newChild
- theNode
to insert.- Returns:
- the node added.
- Throws:
IllegalArgumentException
- ifnewChild
isnull
.
-
hasChildNodes
public boolean hasChildNodes()Returnstrue
if this node has child nodes.- Specified by:
hasChildNodes
in interfaceNode
- Returns:
true
if this node has children.
-
cloneNode
Returns a duplicate of this node. The duplicate node has no parent (getParentNode
returnsnull
). If a shallow clone is being performed (deep
isfalse
), the new node will not have any children or siblings. If a deep clone is being performed, the new node will form the root of a complete cloned subtree. -
normalize
public void normalize()Does nothing, sinceIIOMetadataNode
s do not containText
children. -
isSupported
Returnsfalse
since DOM features are not supported.- Specified by:
isSupported
in interfaceNode
- Parameters:
feature
- aString
, which is ignored.version
- aString
, which is ignored.- Returns:
false
.
-
getNamespaceURI
Returnsnull
, since namespaces are not supported.- Specified by:
getNamespaceURI
in interfaceNode
- Throws:
DOMException
-
getPrefix
Returnsnull
, since namespaces are not supported. -
setPrefix
Does nothing, since namespaces are not supported. -
getLocalName
Equivalent togetNodeName
.- Specified by:
getLocalName
in interfaceNode
- Returns:
- the node name, as a
String
.
-
getTagName
Equivalent togetNodeName
.- Specified by:
getTagName
in interfaceElement
- Returns:
- the node name, as a
String
-
getAttribute
Retrieves an attribute value by name.- Specified by:
getAttribute
in interfaceElement
- 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.
-
getAttributeNS
Equivalent togetAttribute(localName)
.- Specified by:
getAttributeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute to retrieve.localName
- The local 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. - See Also:
-
setAttribute
Description copied from interface:Element
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 anAttr
node plus anyText
andEntityReference
nodes, build the appropriate subtree, and usesetAttributeNode
to assign it as the value of an attribute.
To set an attribute with a qualified name and namespace URI, use thesetAttributeNS
method.- Specified by:
setAttribute
in interfaceElement
- Parameters:
name
- The name of the attribute to create or alter.value
- Value to set in string form.
-
setAttributeNS
Equivalent tosetAttribute(qualifiedName, value)
.- Specified by:
setAttributeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute to create or alter.qualifiedName
- The qualified name of the attribute to create or alter.value
- The value to set in string form.- See Also:
-
removeAttribute
Description copied from interface:Element
Removes an attribute by name. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should useDocument.normalizeDocument()
to guarantee this information is up-to-date.
If no attribute with this name is found, this method has no effect.
To remove an attribute by local name and namespace URI, use theremoveAttributeNS
method.- Specified by:
removeAttribute
in interfaceElement
- Parameters:
name
- The name of the attribute to remove.
-
removeAttributeNS
Equivalent toremoveAttribute(localName)
.- Specified by:
removeAttributeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute to remove.localName
- The local name of the attribute to remove.
-
getAttributeNode
Description copied from interface:Element
Retrieves an attribute node by name.
To retrieve an attribute node by qualified name and namespace URI, use thegetAttributeNodeNS
method.- Specified by:
getAttributeNode
in interfaceElement
- Parameters:
name
- The name (nodeName
) of the attribute to retrieve.- Returns:
- The
Attr
node with the specified name (nodeName
) ornull
if there is no such attribute.
-
getAttributeNodeNS
Equivalent togetAttributeNode(localName)
.- Specified by:
getAttributeNodeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute to retrieve.localName
- The local name of the attribute to retrieve.- Returns:
- The
Attr
node with the specified attribute local name and namespace URI ornull
if there is no such attribute. - See Also:
-
setAttributeNode
Description copied from interface:Element
Adds a new attribute node. If an attribute with that name (nodeName
) is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect.
To add a new attribute node with a qualified name and namespace URI, use thesetAttributeNodeNS
method.- Specified by:
setAttributeNode
in interfaceElement
- Parameters:
newAttr
- TheAttr
node to add to the attribute list.- Returns:
- If the
newAttr
attribute replaces an existing attribute, the replacedAttr
node is returned, otherwisenull
is returned. - Throws:
DOMException
- WRONG_DOCUMENT_ERR: Raised ifnewAttr
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 ifnewAttr
is already an attribute of anotherElement
object. The DOM user must explicitly cloneAttr
nodes to re-use them in other elements.
-
setAttributeNodeNS
Equivalent tosetAttributeNode(newAttr)
.- Specified by:
setAttributeNodeNS
in interfaceElement
- Parameters:
newAttr
- TheAttr
node to add to the attribute list.- Returns:
- If the
newAttr
attribute replaces an existing attribute with the same local name and namespace URI, the replacedAttr
node is returned, otherwisenull
is returned. - See Also:
-
removeAttributeNode
Description copied from interface:Element
Removes the specified attribute node. If a default value for the removedAttr
node is defined in the DTD, a new node immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should useDocument.normalizeDocument()
to guarantee this information is up-to-date.- Specified by:
removeAttributeNode
in interfaceElement
- Parameters:
oldAttr
- TheAttr
node to remove from the attribute list.- Returns:
- The
Attr
node that was removed.
-
getElementsByTagName
Description copied from interface:Element
Returns aNodeList
of all descendantElements
with a given tag name, in document order.- Specified by:
getElementsByTagName
in interfaceElement
- Parameters:
name
- The name of the tag to match on. The special value "*" matches all tags.- Returns:
- A list of matching
Element
nodes.
-
getElementsByTagNameNS
Equivalent togetElementsByTagName(localName)
.- Specified by:
getElementsByTagNameNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the elements to match on. The special value "*" matches all namespaces.localName
- The local name of the elements to match on. The special value "*" matches all local names.- Returns:
- A new
NodeList
object containing all the matchedElements
.
-
hasAttributes
public boolean hasAttributes()Description copied from interface:Node
Returns whether this node (if it is an element) has any attributes.- Specified by:
hasAttributes
in interfaceNode
- Returns:
- Returns
true
if this node has any attributes,false
otherwise.
-
hasAttribute
Description copied from interface:Element
Returnstrue
when an attribute with a given name is specified on this element or has a default value,false
otherwise.- Specified by:
hasAttribute
in interfaceElement
- Parameters:
name
- The name of the attribute to look for.- Returns:
true
if an attribute with the given name is specified on this element or has a default value,false
otherwise.
-
hasAttributeNS
Equivalent tohasAttribute(localName)
.- Specified by:
hasAttributeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute to look for.localName
- The local name of the attribute to look for.- Returns:
true
if an attribute with the given local name and namespace URI is specified or has a default value on this element,false
otherwise.
-
getLength
public int getLength()Description copied from interface:NodeList
The number of nodes in the list. The range of valid child node indices is 0 tolength-1
inclusive. -
item
Description copied from interface:NodeList
Returns theindex
th item in the collection. Ifindex
is greater than or equal to the number of nodes in the list, this returnsnull
. -
getUserObject
Returns theObject
value associated with this node.- Returns:
- the user
Object
. - See Also:
-
setUserObject
Sets the value associated with this node.- Parameters:
userObject
- the userObject
.- See Also:
-
setIdAttribute
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
setIdAttribute
in interfaceElement
- Parameters:
name
- The name of the attribute.isId
- Whether the attribute is a of type ID.- Throws:
DOMException
- always.
-
setIdAttributeNS
public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
setIdAttributeNS
in interfaceElement
- Parameters:
namespaceURI
- The namespace URI of the attribute.localName
- The local name of the attribute.isId
- Whether the attribute is a of type ID.- Throws:
DOMException
- always.
-
setIdAttributeNode
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
setIdAttributeNode
in interfaceElement
- Parameters:
idAttr
- The attribute node.isId
- Whether the attribute is a of type ID.- Throws:
DOMException
- always.
-
getSchemaTypeInfo
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
getSchemaTypeInfo
in interfaceElement
- Throws:
DOMException
- always.
-
setUserData
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
setUserData
in interfaceNode
- Parameters:
key
- The key to associate the object to.data
- The object to associate to the given key, ornull
to remove any existing association to that key.handler
- The handler to associate to that key, ornull
.- Returns:
- Returns the
DOMUserData
previously associated to the given key on this node, ornull
if there was none. - Throws:
DOMException
- always.
-
getUserData
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
getUserData
in interfaceNode
- Parameters:
key
- The key the object is associated to.- Returns:
- Returns the
DOMUserData
associated to the given key on this node, ornull
if there was none. - Throws:
DOMException
- always.
-
getFeature
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
getFeature
in interfaceNode
- Parameters:
feature
- The name of the feature requested. Note that any plus sign "+" prepended to the name of the feature will be ignored since it is not significant in the context of this method.version
- This is the version number of the feature to test.- Returns:
- Returns an object which implements the specialized APIs of
the specified feature and version, if any, or
null
if there is no object which implements interfaces associated with that feature. If theDOMObject
returned by this method implements theNode
interface, it must delegate to the primary coreNode
and not return results inconsistent with the primary coreNode
such as attributes, childNodes, etc. - Throws:
DOMException
- always.
-
isSameNode
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
isSameNode
in interfaceNode
- Parameters:
node
- The node to test against.- Returns:
- Returns
true
if the nodes are the same,false
otherwise. - Throws:
DOMException
- always.
-
isEqualNode
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
isEqualNode
in interfaceNode
- Parameters:
node
- The node to compare equality with.- Returns:
- Returns
true
if the nodes are equal,false
otherwise. - Throws:
DOMException
- always.
-
lookupNamespaceURI
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
lookupNamespaceURI
in interfaceNode
- Parameters:
prefix
- The prefix to look for. If this parameter isnull
, the method will return the default namespace URI if any.- Returns:
- Returns the associated namespace URI or
null
if none is found. - Throws:
DOMException
- always.
-
isDefaultNamespace
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
isDefaultNamespace
in interfaceNode
- Parameters:
namespaceURI
- The namespace URI to look for.- Returns:
- Returns
true
if the specifiednamespaceURI
is the default namespace,false
otherwise. - Throws:
DOMException
- always.
-
lookupPrefix
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
lookupPrefix
in interfaceNode
- Parameters:
namespaceURI
- The namespace URI to look for.- Returns:
- Returns an associated namespace prefix if found or
null
if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent. - Throws:
DOMException
- always.
-
getTextContent
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
getTextContent
in interfaceNode
- Throws:
DOMException
- always.
-
setTextContent
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
setTextContent
in interfaceNode
- Throws:
DOMException
- always.
-
compareDocumentPosition
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
compareDocumentPosition
in interfaceNode
- Parameters:
other
- The node to compare against the reference node.- Returns:
- Returns how the node is positioned relatively to the reference node.
- Throws:
DOMException
- always.
-
getBaseURI
This DOM Level 3 method is not supported forIIOMetadataNode
and will throw aDOMException
.- Specified by:
getBaseURI
in interfaceNode
- Throws:
DOMException
- always.
-