summaryrefslogtreecommitdiffstats
path: root/awt/javax/imageio/metadata/IIOMetadataNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/javax/imageio/metadata/IIOMetadataNode.java')
-rw-r--r--awt/javax/imageio/metadata/IIOMetadataNode.java1070
1 files changed, 0 insertions, 1070 deletions
diff --git a/awt/javax/imageio/metadata/IIOMetadataNode.java b/awt/javax/imageio/metadata/IIOMetadataNode.java
deleted file mode 100644
index adc6d67..0000000
--- a/awt/javax/imageio/metadata/IIOMetadataNode.java
+++ /dev/null
@@ -1,1070 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package javax.imageio.metadata;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-//???AWT
-//import org.w3c.dom.TypeInfo;
-//import org.w3c.dom.UserDataHandler;
-
-/**
- * The Class IIOMetadataNode represents a node of the (DOM-style) metadata tree.
- *
- * @since Android 1.0
- */
-public class IIOMetadataNode implements Element, NodeList {
-
- /**
- * The node name.
- */
- private String nodeName;
-
- /**
- * The node value.
- */
- private String nodeValue;
-
- /**
- * The attributes.
- */
- private IIOMetadataNodeList attrs = new IIOMetadataNodeList(new ArrayList<IIOMetadataNode>());
-
- /**
- * The parent node.
- */
- private IIOMetadataNode parent;
-
- /**
- * The first child node.
- */
- private IIOMetadataNode firstChild;
-
- /**
- * The last child node.
- */
- private IIOMetadataNode lastChild;
-
- /**
- * The previous sibling.
- */
- private IIOMetadataNode previousSibling;
-
- /**
- * The next sibling.
- */
- private IIOMetadataNode nextSibling;
-
- /**
- * The number of children.
- */
- private int nChildren;
-
- /**
- * The user object associated with this node.
- */
- private Object userObject;
-
- /**
- * The text content of this node.
- */
- private String textContent;
-
- /**
- * Instantiates a new empty node.
- */
- public IIOMetadataNode() {
- }
-
- /**
- * Instantiates a new empty node with the specified name.
- *
- * @param nodeName
- * the node name.
- */
- public IIOMetadataNode(String nodeName) {
- this.nodeName = nodeName;
- }
-
- /**
- * Instantiates a new IIOMetadataNode with the specified name and value.
- *
- * @param nodeName
- * the node name.
- * @param nodeValue
- * the node value.
- */
- private IIOMetadataNode(String nodeName, String nodeValue) {
- this.nodeName = nodeName;
- this.nodeValue = nodeValue;
- }
-
- public String getTagName() {
- return nodeName;
- }
-
- public String getAttribute(String name) {
- Attr attrNode = (Attr)attrs.getNamedItem(name);
- return (attrNode == null) ? "" : attrNode.getValue();
- }
-
- public void setAttribute(String name, String value) throws DOMException {
- Attr attr = (Attr)attrs.getNamedItem(name);
- if (attr != null) {
- attr.setValue(value);
- } else {
- attrs.list.add(new IIOMetadataAttr(name, value, this));
- }
- }
-
- public void removeAttribute(String name) throws DOMException {
- IIOMetadataAttr attr = (IIOMetadataAttr)attrs.getNamedItem(name);
- if (attr != null) {
- attr.setOwnerElement(null);
- attrs.list.remove(attr);
- }
- }
-
- public Attr getAttributeNode(String name) {
- return (Attr)attrs.getNamedItem(name);
- }
-
- public Attr setAttributeNode(Attr newAttr) throws DOMException {
- // Check if this attribute is already in use.
- Element owner = newAttr.getOwnerElement();
- if (owner != null) {
- if (owner == this) { // Replacing an attribute node by itself has no
- // effect
- return null;
- } else {
- throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR,
- "Attribute is already in use");
- }
- }
-
- String name = newAttr.getName();
- Attr oldAttr = getAttributeNode(name);
- if (oldAttr != null) {
- removeAttributeNode(oldAttr);
- }
-
- IIOMetadataAttr iioAttr;
- if (newAttr instanceof IIOMetadataAttr) {
- iioAttr = (IIOMetadataAttr)newAttr;
- iioAttr.setOwnerElement(this);
- } else {
- iioAttr = new IIOMetadataAttr(name, newAttr.getValue(), this);
- }
-
- attrs.list.add(iioAttr);
-
- return oldAttr;
- }
-
- public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
- if (!attrs.list.remove(oldAttr)) { // Not found
- throw new DOMException(DOMException.NOT_FOUND_ERR, "No such attribute!");
- }
-
- ((IIOMetadataAttr)oldAttr).setOwnerElement(null);
-
- return oldAttr;
- }
-
- public NodeList getElementsByTagName(String name) {
- ArrayList<IIOMetadataNode> nodes = new ArrayList<IIOMetadataNode>();
-
- // Non-recursive tree walk
- Node pos = this;
-
- while (pos != null) {
- if (pos.getNodeName().equals(name)) {
- nodes.add((IIOMetadataNode)pos);
- }
-
- Node nextNode = pos.getFirstChild();
-
- while (nextNode == null) {
- if (pos == this) {
- break;
- }
-
- nextNode = pos.getNextSibling();
-
- if (nextNode == null) {
- pos = pos.getParentNode();
-
- if (pos == null || pos == this) {
- nextNode = null;
- break;
- }
- }
- }
- pos = nextNode;
- }
-
- return new IIOMetadataNodeList(nodes);
- }
-
- public String getAttributeNS(String namespaceURI, String localName) throws DOMException {
- return getAttribute(localName);
- }
-
- public void setAttributeNS(String namespaceURI, String qualifiedName, String value)
- throws DOMException {
- setAttribute(qualifiedName, value);
- }
-
- public void removeAttributeNS(String namespaceURI, String localName) throws DOMException {
- removeAttribute(localName);
- }
-
- public Attr getAttributeNodeNS(String namespaceURI, String localName) throws DOMException {
- return getAttributeNode(localName);
- }
-
- public Attr setAttributeNodeNS(Attr newAttr) throws DOMException {
- return setAttributeNode(newAttr);
- }
-
- public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
- throws DOMException {
- return getElementsByTagName(localName);
- }
-
- public boolean hasAttribute(String name) {
- return attrs.getNamedItem(name) != null;
- }
-
- public boolean hasAttributeNS(String namespaceURI, String localName) throws DOMException {
- return hasAttribute(localName);
- }
-
- // ???AWT
- /*
- * public TypeInfo getSchemaTypeInfo() { throw new
- * DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); }
- */
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Element (DOM Level
- * 3)</i>
- * <p>
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute . This affects the value
- * of Attr.isId and the behavior of Document.getElementById, but does not
- * change any schema that may be in use, in particular this does not affect
- * the Attr.schemaTypeInfo of the specified Attr node. Use the value false
- * for the parameter isId to undeclare an attribute for being a
- * user-determined ID attribute. To specify an attribute by local name and
- * namespace URI, use the setIdAttributeNS method.
- * </p>
- *
- * @param name
- * the name of the attribute.
- * @param isId
- * the flag which determines whether this attribute is of type
- * ID.
- * @throws DOMException
- * if a DOM error occurred while setting the attribute type.
- * <p>
- * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
- * <br>
- * NOT_FOUND_ERR: Raised if the specified node is not an
- * attribute of this element.
- * </p>
- */
- public void setIdAttribute(String name, boolean isId) throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Element (DOM Level
- * 3)</i>
- * <p>
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute . This affects the value
- * of Attr.isId and the behavior of Document.getElementById, but does not
- * change any schema that may be in use, in particular this does not affect
- * the Attr.schemaTypeInfo of the specified Attr node. Use the value false
- * for the parameter isId to undeclare an attribute for being a
- * user-determined ID attribute.
- * </p>
- *
- * @param namespaceURI
- * the namespace URI of the attribute.
- * @param localName
- * the local name of the attribute.
- * @param isId
- * the flag which determines whether this attribute is of type
- * ID.
- * @throws DOMException
- * if a DOM error occurred while setting the attribute type.
- * <p>
- * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
- * <br>
- * NOT_FOUND_ERR: Raised if the specified node is not an
- * attribute of this element.
- * </p>
- */
- public void setIdAttributeNS(String namespaceURI, String localName, boolean isId)
- throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Element (DOM Level
- * 3)</i>
- * <p>
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute . This affects the value
- * of Attr.isId and the behavior of Document.getElementById, but does not
- * change any schema that may be in use, in particular this does not affect
- * the Attr.schemaTypeInfo of the specified Attr node. Use the value false
- * for the parameter isId to undeclare an attribute for being a
- * user-determined ID attribute.
- * </p>
- *
- * @param idAttr
- * the attribute node.
- * @param isId
- * the flag which determines whether this attribute is of type
- * ID.
- * @throws DOMException
- * if a DOM error occurred while setting the attribute type.
- * <p>
- * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
- * <br>
- * NOT_FOUND_ERR: Raised if the specified node is not an
- * attribute of this element.
- * </p>
- */
- public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- public String getNodeName() {
- return nodeName;
- }
-
- public String getNodeValue() throws DOMException {
- return nodeValue;
- }
-
- public void setNodeValue(String nodeValue) throws DOMException {
- this.nodeValue = nodeValue;
- }
-
- public short getNodeType() {
- return ELEMENT_NODE;
- }
-
- public Node getParentNode() {
- return parent;
- }
-
- public NodeList getChildNodes() {
- return this;
- }
-
- public Node getFirstChild() {
- return firstChild;
- }
-
- public Node getLastChild() {
- return lastChild;
- }
-
- public Node getPreviousSibling() {
- return previousSibling;
- }
-
- public Node getNextSibling() {
- return nextSibling;
- }
-
- public NamedNodeMap getAttributes() {
- return attrs;
- }
-
- public Document getOwnerDocument() {
- return null;
- }
-
- public Node insertBefore(Node newChild, Node refChild) throws DOMException {
- if (newChild == null) {
- throw new IllegalArgumentException("newChild == null!");
- }
-
- IIOMetadataNode newIIOChild = (IIOMetadataNode)newChild;
- IIOMetadataNode refIIOChild = (IIOMetadataNode)refChild;
-
- newIIOChild.parent = this;
-
- if (refIIOChild == null) {
- newIIOChild.nextSibling = null;
- newIIOChild.previousSibling = lastChild;
-
- // Fix this node
- lastChild = newIIOChild;
- if (firstChild == null) {
- firstChild = newIIOChild;
- }
- } else {
- newIIOChild.nextSibling = refIIOChild;
- newIIOChild.previousSibling = refIIOChild.previousSibling;
-
- // Fix this node
- if (firstChild == refIIOChild) {
- firstChild = newIIOChild;
- }
-
- // Fix next node
- if (refIIOChild != null) {
- refIIOChild.previousSibling = newIIOChild;
- }
- }
-
- // Fix prev node
- if (newIIOChild.previousSibling != null) {
- newIIOChild.previousSibling.nextSibling = newIIOChild;
- }
-
- nChildren++;
-
- return newIIOChild;
- }
-
- public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
- if (newChild == null) {
- throw new IllegalArgumentException("newChild == null!");
- }
-
- IIOMetadataNode newIIOChild = (IIOMetadataNode)newChild;
- IIOMetadataNode oldIIOChild = (IIOMetadataNode)oldChild;
-
- IIOMetadataNode next = oldIIOChild.nextSibling;
- IIOMetadataNode previous = oldIIOChild.previousSibling;
-
- // Fix new node
- newIIOChild.parent = this;
- newIIOChild.nextSibling = next;
- newIIOChild.previousSibling = previous;
-
- // Fix this node
- if (lastChild == oldIIOChild) {
- lastChild = newIIOChild;
- }
- if (firstChild == oldIIOChild) {
- firstChild = newIIOChild;
- }
-
- // Fix siblings
- if (next != null) {
- next.previousSibling = newIIOChild;
- }
- if (previous != null) {
- previous.nextSibling = newIIOChild;
- }
-
- // Fix old child
- oldIIOChild.parent = null;
- oldIIOChild.nextSibling = next;
- oldIIOChild.previousSibling = previous;
-
- return oldIIOChild;
- }
-
- public Node removeChild(Node oldChild) throws DOMException {
- if (oldChild == null) {
- throw new IllegalArgumentException("oldChild == null!");
- }
-
- IIOMetadataNode oldIIOChild = (IIOMetadataNode)oldChild;
-
- // Fix next and previous
- IIOMetadataNode previous = oldIIOChild.previousSibling;
- IIOMetadataNode next = oldIIOChild.nextSibling;
-
- if (previous != null) {
- previous.nextSibling = next;
- }
- if (next != null) {
- next.previousSibling = previous;
- }
-
- // Fix this node
- if (lastChild == oldIIOChild) {
- lastChild = previous;
- }
- if (firstChild == oldIIOChild) {
- firstChild = next;
- }
- nChildren--;
-
- // Fix old child
- oldIIOChild.parent = null;
- oldIIOChild.previousSibling = null;
- oldIIOChild.nextSibling = null;
-
- return oldIIOChild;
- }
-
- public Node appendChild(Node newChild) throws DOMException {
- return insertBefore(newChild, null);
- }
-
- public boolean hasChildNodes() {
- return nChildren != 0;
- }
-
- public Node cloneNode(boolean deep) {
- IIOMetadataNode cloned = new IIOMetadataNode(nodeName);
- cloned.setUserObject(getUserObject());
-
- if (deep) { // Clone recursively
- IIOMetadataNode c = firstChild;
- while (c != null) {
- cloned.insertBefore(c.cloneNode(true), null);
- c = c.nextSibling;
- }
- }
-
- return cloned; // To change body of implemented methods use File |
- // Settings | File Templates.
- }
-
- public void normalize() {
- // Do nothing
- }
-
- public boolean isSupported(String feature, String version) {
- return false;
- }
-
- public String getNamespaceURI() {
- return null;
- }
-
- public String getPrefix() {
- return null;
- }
-
- public void setPrefix(String prefix) throws DOMException {
- // Do nothing
- }
-
- public String getLocalName() {
- return nodeName;
- }
-
- public boolean hasAttributes() {
- return attrs.list.size() > 0;
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * The absolute base URI of this node or null if the implementation wasn't
- * able to obtain an absolute URI. This value is computed as described in.
- * However, when the Document supports the feature "HTML" [DOM Level 2
- * HTML], the base URI is computed using first the value of the href
- * attribute of the HTML BASE element if any, and the value of the
- * documentURI attribute from the Document interface otherwise.
- * </p>
- *
- * @return the string representation of the absolute base URI.
- */
- public String getBaseURI() {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Compares the reference node, i.e. the node on which this method is being
- * called, with a node, i.e. the one passed as a parameter, with regard to
- * their position in the document and according to the document order.
- * </p>
- *
- * @param other
- * the node to compare against the reference node.
- * @return Returns how the node is positioned relatively to the reference
- * node.
- * @throws DOMException
- * NOT_SUPPORTED_ERR: when the compared nodes are from different
- * DOM implementations that do not coordinate to return
- * consistent implementation-specific results.
- */
- public short compareDocumentPosition(Node other) throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * This attribute returns the text content of this node and its descendants.
- * When it is defined to be null, setting it has no effect. On setting, any
- * possible children this node may have are removed and, if it the new
- * string is not empty or null, replaced by a single Text node containing
- * the string this attribute is set to. On getting, no serialization is
- * performed, the returned string does not contain any markup. No whitespace
- * normalization is performed and the returned string does not contain the
- * white spaces in element content (see the attribute
- * Text.isElementContentWhitespace). Similarly, on setting, no parsing is
- * performed either, the input string is taken as pure textual content. The
- * string returned is made of the text content of this node depending on its
- * type, as defined below:
- * <table>
- * <tr>
- * <td><strong>Node type</strong></td>
- * <td><strong>Content</strong></td>
- * </tr>
- * <tr>
- * <td>ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
- * DOCUMENT_FRAGMENT_NODE</td>
- * <td>concatenation of the textContent attribute value of every child node,
- * excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the
- * empty string if the node has no children.</td>
- * </tr>
- * <tr>
- * <td>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
- * PROCESSING_INSTRUCTION_NODE</td>
- * <td>nodeValue</td>
- * </tr>
- * <tr>
- * <td>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td>
- * <td>null</td>
- * </tr>
- * </table>
- * </p>
- *
- * @return the text content depending on the type of this node.
- * @throws DOMException
- * DOMSTRING_SIZE_ERR: Raised when it would return more
- * characters than fit in a DOMString variable on the
- * implementation platform.
- */
- public String getTextContent() throws DOMException {
- return textContent;
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * This attribute returns the text content of this node and its descendants.
- * When it is defined to be null, setting it has no effect. On setting, any
- * possible children this node may have are removed and, if it the new
- * string is not empty or null, replaced by a single Text node containing
- * the string this attribute is set to. On getting, no serialization is
- * performed, the returned string does not contain any markup. No whitespace
- * normalization is performed and the returned string does not contain the
- * white spaces in element content (see the attribute
- * Text.isElementContentWhitespace). Similarly, on setting, no parsing is
- * performed either, the input string is taken as pure textual content. The
- * string returned is made of the text content of this node depending on its
- * type, as defined below:
- * <table>
- * <tr>
- * <td><strong>Node type</strong></td>
- * <td><strong>Content</strong></td>
- * </tr>
- * <tr>
- * <td>ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
- * DOCUMENT_FRAGMENT_NODE</td>
- * <td>concatenation of the textContent attribute value of every child node,
- * excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the
- * empty string if the node has no children.</td>
- * </tr>
- * <tr>
- * <td>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
- * PROCESSING_INSTRUCTION_NODE</td>
- * <td>nodeValue</td>
- * </tr>
- * <tr>
- * <td>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td>
- * <td>null</td>
- * </tr>
- * </table>
- * </p>
- *
- * @param textContent
- * the text content for this node.
- * @throws DOMException
- * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
- * readonly.
- */
- public void setTextContent(String textContent) throws DOMException {
- this.textContent = textContent;
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Returns whether this node is the same node as the given one. This method
- * provides a way to determine whether two Node references returned by the
- * implementation reference the same object. When two Node references are
- * references to the same object, even if through a proxy, the references
- * may be used completely interchangeably, such that all attributes have the
- * same values and calling the same DOM method on either reference always
- * has exactly the same effect.
- * </p>
- *
- * @param other
- * the node to test against.
- * @return true, if the nodes are the same, false otherwise.
- */
- public boolean isSameNode(Node other) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Look up the prefix associated to the given namespace URI, starting from
- * this node. The default namespace declarations are ignored by this method.
- * See for details on the algorithm used by this method.
- * </p>
- *
- * @param namespaceURI
- * the namespace URI to look for.
- * @return the 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.
- */
- public String lookupPrefix(String namespaceURI) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * This method checks if the specified namespaceURI is the default namespace
- * or not.
- * </p>
- *
- * @param namespaceURI
- * the namespace URI to look for.
- * @return true, if the specified namespaceURI is the default namespace,
- * false otherwise.
- */
- public boolean isDefaultNamespace(String namespaceURI) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Look up the namespace URI associated to the given prefix, starting from
- * this node. See for details on the algorithm used by this method.
- * </p>
- *
- * @param prefix
- * the prefix to look for. If this parameter is null, the method
- * will return the default namespace URI if any.
- * @return the associated namespace URI or null if none is found.
- */
- public String lookupNamespaceURI(String prefix) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Tests whether two nodes are equal. This method tests for equality of
- * nodes, not sameness (i.e., whether the two nodes are references to the
- * same object) which can be tested with Node.isSameNode(). All nodes that
- * are the same will also be equal, though the reverse may not be true. Two
- * nodes are equal if and only if the following conditions are satisfied:
- * <p>
- * <li>The two nodes are of the same type.</li>
- * <li>The following string attributes are equal: nodeName, localName,
- * namespaceURI, prefix, nodeValue . This is: they are both null, or they
- * have the same length and are character for character identical.</li>
- * <li>The attributes NamedNodeMaps are equal. This is: they are both null,
- * or they have the same length and for each node that exists in one map
- * there is a node that exists in the other map and is equal, although not
- * necessarily at the same index.</li>
- * <li>The childNodes NodeLists are equal. This is: they are both null, or
- * they have the same length and contain equal nodes at the same index. Note
- * that normalization can affect equality; to avoid this, nodes should be
- * normalized before being compared.</li>
- * </p>
- * For two DocumentType nodes to be equal, the following conditions must
- * also be satisfied:
- * <p>
- * <li>The following string attributes are equal: publicId, systemId,
- * internalSubset.</li>
- * <li>The entities NamedNodeMaps are equal.</li>
- * <li>The notations NamedNodeMaps are equal.</li>
- * </p>
- * On the other hand, the following do not affect equality: the
- * ownerDocument, baseURI, and parentNode attributes, the specified
- * attribute for Attr nodes, the schemaTypeInfo attribute for Attr and
- * Element nodes, the Text.isElementContentWhitespace attribute for Text
- * nodes, as well as any user data or event listeners registered on the
- * nodes. </p>
- * <p>
- * Note: As a general rule, anything not mentioned in the description above
- * is not significant in consideration of equality checking. Note that
- * future versions of this specification may take into account more
- * attributes and implementations conform to this specification are expected
- * to be updated accordingly.
- * </p>
- *
- * @param arg
- * the node to compare equality with.
- * @return true, if the nodes are equal, false otherwise.
- */
- public boolean isEqualNode(Node arg) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * This method returns a specialized object which implements the specialized
- * APIs of the specified feature and version, as specified in. The
- * specialized object may also be obtained by using binding-specific casting
- * methods but is not necessarily expected to, as discussed in. This method
- * also allow the implementation to provide specialized objects which do not
- * support the Node interface.
- * </p>
- *
- * @param 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.
- * @param version
- * this is the version number of the feature to test.
- * @return the 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 the
- * DOMObject returned by this method implements the Node interface,
- * it must delegate to the primary core Node and not return results
- * inconsistent with the primary core Node such as attributes,
- * childNodes, etc.
- */
- public Object getFeature(String feature, String version) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- // ???AWT
- /*
- * public Object setUserData(String key, Object data, UserDataHandler
- * handler) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR,
- * "Method not supported"); }
- */
-
- /**
- * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i>
- * <p>
- * Retrieves the object associated to a key on a this node. The object must
- * first have been set to this node by calling setUserData with the same
- * key.
- * </p>
- *
- * @param key
- * the key the object is associated to.
- * @return the DOMUserData associated to the given key on this node, or null
- * if there was none.
- */
- public Object getUserData(String key) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- public Node item(int index) {
- if (index < 0 || index >= nChildren) {
- return null;
- }
-
- Node n;
- for (n = getFirstChild(); index > 0; index--) {
- n = n.getNextSibling();
- }
-
- return n;
- }
-
- public int getLength() {
- return nChildren;
- }
-
- /**
- * Gets the user object associated with this node.
- *
- * @return the user object associated with this node.
- */
- public Object getUserObject() {
- return userObject;
- }
-
- /**
- * Sets the user object associated with this node.
- *
- * @param userObject
- * the new user object associated with this node.
- */
- public void setUserObject(Object userObject) {
- this.userObject = userObject;
- }
-
- /**
- * The Class IIOMetadataAttr.
- */
- private class IIOMetadataAttr extends IIOMetadataNode implements Attr {
-
- /**
- * The owner element.
- */
- private Element ownerElement;
-
- /**
- * Instantiates a new iIO metadata attr.
- *
- * @param name
- * the name.
- * @param value
- * the value.
- * @param owner
- * the owner.
- */
- public IIOMetadataAttr(String name, String value, Element owner) {
- super(name, value);
- this.ownerElement = owner;
- }
-
- public String getName() {
- return getNodeName();
- }
-
- public boolean getSpecified() {
- return true;
- }
-
- public String getValue() {
- return nodeValue;
- }
-
- public void setValue(String value) throws DOMException {
- nodeValue = value;
- }
-
- public Element getOwnerElement() {
- return ownerElement;
- }
-
- /**
- * Sets the owner element.
- *
- * @param ownerElement
- * the new owner element.
- */
- public void setOwnerElement(Element ownerElement) {
- this.ownerElement = ownerElement;
- }
-
- /**
- * @return
- */
- public boolean isId() {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported");
- }
-
- @Override
- public short getNodeType() {
- return ATTRIBUTE_NODE;
- }
- }
-
- /**
- * The Class IIOMetadataNodeList.
- */
- private class IIOMetadataNodeList implements NodeList, NamedNodeMap {
-
- /**
- * The list.
- */
- private List<IIOMetadataNode> list;
-
- /**
- * Instantiates a new iIO metadata node list.
- *
- * @param list
- * the list.
- */
- IIOMetadataNodeList(List<IIOMetadataNode> list) {
- this.list = list;
- }
-
- public Node item(int index) {
- try {
- return list.get(index);
- } catch (IndexOutOfBoundsException e) {
- return null;
- }
- }
-
- public int getLength() {
- return list.size();
- }
-
- public Node getNamedItem(String name) {
- for (IIOMetadataNode node : list) {
- if (name.equals(node.getNodeName())) {
- return node;
- }
- }
- return null;
- }
-
- public Node setNamedItem(Node arg) throws DOMException {
- throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
- "This NamedNodeMap is read-only!");
- }
-
- public Node removeNamedItem(String name) throws DOMException {
- throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
- "This NamedNodeMap is read-only!");
- }
-
- public Node getNamedItemNS(String namespaceURI, String localName) throws DOMException {
- return getNamedItem(localName);
- }
-
- public Node setNamedItemNS(Node arg) throws DOMException {
- throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
- "This NamedNodeMap is read-only!");
- }
-
- public Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException {
- throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
- "This NamedNodeMap is read-only!");
- }
- }
-}