Class IIOMetadataNode
- java.lang.Object
-
- javax.imageio.metadata.IIOMetadataNode
public class IIOMetadataNode extends Object implements Element, NodeList
A class representing a node in a meta-data tree, which implements the 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:
-
IIOMetadata.getAsTree(java.lang.String)
,IIOMetadata.setFromTree(java.lang.String, org.w3c.dom.Node)
,IIOMetadata.mergeTree(java.lang.String, org.w3c.dom.Node)
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
Constructor | Description |
---|---|
IIOMetadataNode() | Constructs an empty |
IIOMetadataNode(String nodeName) | Constructs an |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
Node | appendChild(Node newChild) | Adds the node |
Node | cloneNode(boolean deep) | Returns a duplicate of this node. |
short | compareDocumentPosition(Node other) | This DOM Level 3 method is not supported for |
String | getAttribute(String name) | Retrieves an attribute value by name. |
Attr | getAttributeNodeNS(String namespaceURI,
String localName) | Equivalent to |
String | getAttributeNS(String namespaceURI,
String localName) | Equivalent to |
NamedNodeMap | getAttributes() | Returns a |
String | getBaseURI() | This DOM Level 3 method is not supported for |
NodeList | getChildNodes() | Returns a |
NodeList | getElementsByTagNameNS(String namespaceURI,
String localName) | Equivalent to |
Object | getFeature(String feature,
String version) | This DOM Level 3 method is not supported for |
Node | getFirstChild() | Returns the first child of this node, or |
Node | getLastChild() | Returns the last child of this node, or |
String | getLocalName() | Equivalent to |
String | getNamespaceURI() | Returns |
Node | getNextSibling() | Returns the next sibling of this node, or |
String | getNodeName() | Returns the node name associated with this node. |
short | getNodeType() | Returns the node type, which is always |
String | getNodeValue() | Returns the value associated with this node. |
Document | getOwnerDocument() | Returns |
Node | getParentNode() | Returns the parent of this node. |
String | getPrefix() | Returns |
Node | getPreviousSibling() | Returns the previous sibling of this node, or |
TypeInfo | getSchemaTypeInfo() | This DOM Level 3 method is not supported for |
String | getTagName() | Equivalent to |
String | getTextContent() | This DOM Level 3 method is not supported for |
Object | getUserData(String key) | This DOM Level 3 method is not supported for |
Object | getUserObject() | Returns the |
boolean | hasAttributeNS(String namespaceURI,
String localName) | Equivalent to |
boolean | hasChildNodes() | Returns |
Node | insertBefore(Node newChild,
Node refChild) | Inserts the node |
boolean | isDefaultNamespace(String namespaceURI) | This DOM Level 3 method is not supported for |
boolean | isEqualNode(Node node) | This DOM Level 3 method is not supported for |
boolean | isSameNode(Node node) | This DOM Level 3 method is not supported for |
boolean | isSupported(String feature,
String version) | Returns |
String | lookupNamespaceURI(String prefix) | This DOM Level 3 method is not supported for |
String | lookupPrefix(String namespaceURI) | This DOM Level 3 method is not supported for |
void | normalize() | Does nothing, since |
void | removeAttributeNS(String namespaceURI,
String localName) | Equivalent to |
Node | removeChild(Node oldChild) | Removes the child node indicated by |
Node | replaceChild(Node newChild,
Node oldChild) | Replaces the child node |
Attr | setAttributeNodeNS(Attr newAttr) | Equivalent to |
void | setAttributeNS(String namespaceURI,
String qualifiedName,
String value) | Equivalent to |
void | setIdAttribute(String name,
boolean isId) | This DOM Level 3 method is not supported for |
void | setIdAttributeNode(Attr idAttr,
boolean isId) | This DOM Level 3 method is not supported for |
void | setIdAttributeNS(String namespaceURI,
String localName,
boolean isId) | This DOM Level 3 method is not supported for |
void | setNodeValue(String nodeValue) | Sets the |
void | setPrefix(String prefix) | Does nothing, since namespaces are not supported. |
void | setTextContent(String textContent) | This DOM Level 3 method is not supported for |
Object | setUserData(String key,
Object data,
UserDataHandler handler) | This DOM Level 3 method is not supported for |
void | setUserObject(Object userObject) | Sets the value associated with this node. |
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface org.w3c.dom.Element
getAttributeNode, getElementsByTagName, hasAttribute, removeAttribute, removeAttributeNode, setAttribute, setAttributeNode
Methods declared in interface org.w3c.dom.Node
hasAttributes
Methods declared in interface org.w3c.dom.NodeList
getLength, item
Constructor Detail
IIOMetadataNode
public IIOMetadataNode()
Constructs an empty IIOMetadataNode
.
IIOMetadataNode
public IIOMetadataNode(String nodeName)
Constructs an IIOMetadataNode
with a given node name.
- Parameters:
-
nodeName
- the name of the node, as aString
.
Method Detail
getNodeName
public String getNodeName()
Returns the node name associated with this node.
- Specified by:
-
getNodeName
in interfaceNode
- Returns:
- the node name, as a
String
.
getNodeValue
public String getNodeValue()
Returns the value associated with this node.
- Specified by:
-
getNodeValue
in interfaceNode
- Returns:
- the node value, as a
String
.
setNodeValue
public void setNodeValue(String nodeValue)
Sets the String
value associated with this node.
- Specified by:
-
setNodeValue
in interfaceNode
getNodeType
public short getNodeType()
Returns the node type, which is always ELEMENT_NODE
.
- Specified by:
-
getNodeType
in interfaceNode
- Returns:
- the
short
valueELEMENT_NODE
.
getParentNode
public Node getParentNode()
Returns the parent of this node. A null
value indicates that the node is the root of its own tree. To add a node to an existing tree, use one of the insertBefore
, replaceChild
, or appendChild
methods.
- Specified by:
-
getParentNode
in interfaceNode
- Returns:
- the parent, as a
Node
. - See Also:
-
insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)
,replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)
,appendChild(org.w3c.dom.Node)
getChildNodes
public NodeList getChildNodes()
Returns a NodeList
that contains all children of this node. If there are no children, this is a NodeList
containing no nodes.
- Specified by:
-
getChildNodes
in interfaceNode
- Returns:
- the children as a
NodeList
getFirstChild
public Node getFirstChild()
Returns the first child of this node, or null
if the node has no children.
- Specified by:
-
getFirstChild
in interfaceNode
- Returns:
- the first child, as a
Node
, ornull
getLastChild
public Node getLastChild()
Returns the last child of this node, or null
if the node has no children.
- Specified by:
-
getLastChild
in interfaceNode
- Returns:
- the last child, as a
Node
, ornull
.
getPreviousSibling
public Node getPreviousSibling()
Returns the previous sibling of this node, or null
if this node has no previous sibling.
- Specified by:
-
getPreviousSibling
in interfaceNode
- Returns:
- the previous sibling, as a
Node
, ornull
.
getNextSibling
public Node getNextSibling()
Returns the next sibling of this node, or null
if the node has no next sibling.
- Specified by:
-
getNextSibling
in interfaceNode
- Returns:
- the next sibling, as a
Node
, ornull
.
getAttributes
public NamedNodeMap getAttributes()
Returns a NamedNodeMap
containing the attributes of this node.
- Specified by:
-
getAttributes
in interfaceNode
- Returns:
- a
NamedNodeMap
containing the attributes of this node.
getOwnerDocument
public Document getOwnerDocument()
Returns null
, since IIOMetadataNode
s do not belong to any Document
.
- Specified by:
-
getOwnerDocument
in interfaceNode
- Returns:
-
null
.
insertBefore
public Node insertBefore(Node newChild, Node refChild)
Inserts the node newChild
before the existing child node refChild
. If refChild
is null
, insert newChild
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
public Node replaceChild(Node newChild, Node oldChild)
Replaces the child node oldChild
with newChild
in the list of children, and returns the oldChild
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
public Node removeChild(Node oldChild)
Removes the child node indicated by oldChild
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
public Node appendChild(Node newChild)
Adds the node newChild
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()
Returns true
if this node has child nodes.
- Specified by:
-
hasChildNodes
in interfaceNode
- Returns:
-
true
if this node has children.
cloneNode
public Node cloneNode(boolean deep)
Returns a duplicate of this node. The duplicate node has no parent (getParentNode
returns null
). If a shallow clone is being performed (deep
is false
), 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.
- Specified by:
-
cloneNode
in interfaceNode
- Parameters:
-
deep
- iftrue
, recursively clone the subtree under the specified node; iffalse
, clone only the node itself. - Returns:
- the duplicate node.
normalize
public void normalize()
Does nothing, since IIOMetadataNode
s do not contain Text
children.
isSupported
public boolean isSupported(String feature, String version)
Returns false
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
public String getNamespaceURI() throws DOMException
Returns null
, since namespaces are not supported.
- Specified by:
-
getNamespaceURI
in interfaceNode
- Throws:
DOMException
getPrefix
public String getPrefix()
Returns null
, since namespaces are not supported.
- Specified by:
-
getPrefix
in interfaceNode
- Returns:
-
null
. - See Also:
setPrefix(java.lang.String)
setPrefix
public void setPrefix(String prefix)
Does nothing, since namespaces are not supported.
- Specified by:
-
setPrefix
in interfaceNode
- Parameters:
-
prefix
- aString
, which is ignored. - See Also:
getPrefix()
getLocalName
public String getLocalName()
Equivalent to getNodeName
.
- Specified by:
-
getLocalName
in interfaceNode
- Returns:
- the node name, as a
String
.
getTagName
public String getTagName()
Equivalent to getNodeName
.
- Specified by:
-
getTagName
in interfaceElement
- Returns:
- the node name, as a
String
getAttribute
public String getAttribute(String name)
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
public String getAttributeNS(String namespaceURI, String localName)
Equivalent to getAttribute(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:
setAttributeNS(java.lang.String, java.lang.String, java.lang.String)
setAttributeNS
public void setAttributeNS(String namespaceURI, String qualifiedName, String value)
Equivalent to setAttribute(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:
getAttributeNS(java.lang.String, java.lang.String)
removeAttributeNS
public void removeAttributeNS(String namespaceURI, String localName)
Equivalent to removeAttribute(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.
getAttributeNodeNS
public Attr getAttributeNodeNS(String namespaceURI, String localName)
Equivalent to getAttributeNode(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:
setAttributeNodeNS(org.w3c.dom.Attr)
setAttributeNodeNS
public Attr setAttributeNodeNS(Attr newAttr)
Equivalent to setAttributeNode(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:
getAttributeNodeNS(java.lang.String, java.lang.String)
getElementsByTagNameNS
public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
Equivalent to getElementsByTagName(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
.
hasAttributeNS
public boolean hasAttributeNS(String namespaceURI, String localName)
Equivalent to hasAttribute(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.
getUserObject
public Object getUserObject()
Returns the Object
value associated with this node.
- Returns:
- the user
Object
. - See Also:
setUserObject(java.lang.Object)
setUserObject
public void setUserObject(Object userObject)
Sets the value associated with this node.
- Parameters:
-
userObject
- the userObject
. - See Also:
getUserObject()
setIdAttribute
public void setIdAttribute(String name, boolean isId) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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 for IIOMetadataNode
and will throw a DOMException
.
- 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
public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- Specified by:
-
setIdAttributeNode
in interfaceElement
- Parameters:
-
idAttr
- The attribute node. -
isId
- Whether the attribute is a of type ID. - Throws:
-
DOMException
- always.
getSchemaTypeInfo
public TypeInfo getSchemaTypeInfo() throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- Specified by:
-
getSchemaTypeInfo
in interfaceElement
- Throws:
-
DOMException
- always.
setUserData
public Object setUserData(String key, Object data, UserDataHandler handler) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public Object getUserData(String key) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public Object getFeature(String feature, String version) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public boolean isSameNode(Node node) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public boolean isEqualNode(Node node) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public String lookupNamespaceURI(String prefix) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public boolean isDefaultNamespace(String namespaceURI) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public String lookupPrefix(String namespaceURI) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public String getTextContent() throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- Specified by:
-
getTextContent
in interfaceNode
- Throws:
-
DOMException
- always.
setTextContent
public void setTextContent(String textContent) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- Specified by:
-
setTextContent
in interfaceNode
- Throws:
-
DOMException
- always.
compareDocumentPosition
public short compareDocumentPosition(Node other) throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- 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
public String getBaseURI() throws DOMException
This DOM Level 3 method is not supported for IIOMetadataNode
and will throw a DOMException
.
- Specified by:
-
getBaseURI
in interfaceNode
- Throws:
-
DOMException
- always.