diff options
Diffstat (limited to 'libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java')
-rw-r--r-- | libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java | 709 |
1 files changed, 0 insertions, 709 deletions
diff --git a/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java b/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java deleted file mode 100644 index db3de23..0000000 --- a/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java +++ /dev/null @@ -1,709 +0,0 @@ -/* IIOMetadataNode.java -- - Copyright (C) 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package javax.imageio.metadata; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -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; -import org.w3c.dom.TypeInfo; -import org.w3c.dom.UserDataHandler; -import javax.imageio.metadata.IIOMetadataFormatImpl.IIOMetadataNodeAttr; - -public class IIOMetadataNode - implements Element, NodeList -{ - private String name; - private HashMap attrs = new HashMap(); - private List children = new ArrayList(); - private IIOMetadataNode parent; - private Object obj; - - /** - * Simple NamedNodeMap class for IIOMetadataNode. - * - * @author jlquinn - */ - private class IIONamedNodeMap implements NamedNodeMap - { - HashMap attrs; - - /** - * @param attrs - * @param node - */ - public IIONamedNodeMap(HashMap attrs) - { - this.attrs = attrs; - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#getNamedItem(java.lang.String) - */ - public Node getNamedItem(String name) - { - return (Node)attrs.get(name); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#setNamedItem(org.w3c.dom.Node) - */ - public Node setNamedItem(Node arg) throws DOMException - { - if (arg instanceof IIOMetadataNodeAttr) - { - IIOMetadataNodeAttr attr = (IIOMetadataNodeAttr) arg; - // The only code that can successfully do this is in this package. - if (attr.owner != null) - throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, ""); - return (Node)attrs.put(attr.name, attr); - } - // Anything else gets treated as an invalid op. - throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, ""); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#removeNamedItem(java.lang.String) - */ - public Node removeNamedItem(String name) throws DOMException - { - return (Node)attrs.remove(name); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#item(int) - */ - public Node item(int index) - { - return (Node)attrs.values().toArray()[index]; - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#getLength() - */ - public int getLength() - { - return attrs.size(); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#getNamedItemNS(java.lang.String, java.lang.String) - */ - public Node getNamedItemNS(String namespaceURI, String localName) - { - return getNamedItem(localName); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#setNamedItemNS(org.w3c.dom.Node) - */ - public Node setNamedItemNS(Node arg) throws DOMException - { - return setNamedItem(arg); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NamedNodeMap#removeNamedItemNS(java.lang.String, java.lang.String) - */ - public Node removeNamedItemNS(String namespaceURI, String localName) - throws DOMException - { - return removeNamedItem(localName); - } - } - - /** - * Simple NodeList implementation for IIOMetadataNode. - * - * @author jlquinn - * - */ - private class IIONodeList implements NodeList - { - List children = new ArrayList(); - - /* (non-Javadoc) - * @see org.w3c.dom.NodeList#item(int) - */ - public Node item(int index) - { - return (index < children.size()) ? (Node)children.get(index) : null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.NodeList#getLength() - */ - public int getLength() - { - return children.size(); - } - } - - public IIOMetadataNode() - { - // Do nothing here. - } - - public IIOMetadataNode(String nodename) - { - name = nodename; - } - - public Object getUserObject() - { - return obj; - } - - public void setUserObject(Object o) - { - obj = o; - } - - public short compareDocumentPosition(Node other) - throws DOMException - { - return Element.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getAttribute(java.lang.String) - */ - public String getAttribute(String name) - { - Attr anode = (Attr) attrs.get(name); - return anode != null ? anode.getValue() : null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getAttributeNode(java.lang.String) - */ - public Attr getAttributeNode(String name) - { - String val = getAttribute(name); - if (val != null) - return new IIOMetadataNodeAttr(this, name, val); - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getAttributeNodeNS(java.lang.String, java.lang.String) - */ - public Attr getAttributeNodeNS(String namespaceURI, String localName) - { - return getAttributeNode(localName); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getAttributeNS(java.lang.String, java.lang.String) - */ - public String getAttributeNS(String namespaceURI, String localName) - { - return getAttribute(localName); - } - - public String getBaseURI() - { - return null; - } - - // Recursive function for assembling a node list. - private void getElementsRecurse(IIONodeList list, String name) - { - for (int i=0; i < children.size(); i++) - { - if (((Node)children.get(i)).getNodeName().equals(name)) - list.children.add(children.get(i)); - getElementsRecurse(list, name); - } - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String) - */ - public NodeList getElementsByTagName(String name) - { - IIONodeList list = new IIONodeList(); - getElementsRecurse(list, name); - return list; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getElementsByTagNameNS(java.lang.String, java.lang.String) - */ - public NodeList getElementsByTagNameNS(String namespaceURI, String localName) - { - IIONodeList list = new IIONodeList(); - getElementsRecurse(list, name); - return list; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#getTagName() - */ - public String getTagName() - { - return name; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#hasAttribute(java.lang.String) - */ - public boolean hasAttribute(String name) - { - return attrs.containsKey(name); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String) - */ - public boolean hasAttributeNS(String namespaceURI, String localName) - { - return attrs.containsKey(localName); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#removeAttribute(java.lang.String) - */ - public void removeAttribute(String name) - { - attrs.remove(name); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#removeAttributeNode(org.w3c.dom.Attr) - */ - public Attr removeAttributeNode(Attr oldAttr) - { - return (Attr)attrs.remove(oldAttr.getName()); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String) - */ - public void removeAttributeNS(String namespaceURI, String localName) - { - removeAttribute(localName); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String) - */ - public void setAttribute(String name, String value) - { - Attr attr = getAttributeNode(name); - if (attr != null) - attr.setValue(value); - else - attrs.put(name, new IIOMetadataNodeAttr(this, name, value)); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr) - */ - public Attr setAttributeNode(Attr newAttr) - { - return (Attr)attrs.put(newAttr.getName(), newAttr); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr) - */ - public Attr setAttributeNodeNS(Attr newAttr) - { - return (Attr)attrs.put(newAttr.getName(), newAttr); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Element#setAttributeNS(java.lang.String, java.lang.String, java.lang.String) - */ - public void setAttributeNS(String namespaceURI, String qualifiedName, String value) - { - setAttribute(qualifiedName, value); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NodeList#getLength() - */ - public int getLength() - { - return children.size(); - } - - /* (non-Javadoc) - * @see org.w3c.dom.NodeList#item(int) - */ - public Node item(int index) - { - if (index < children.size()) - return (Node)children.get(index); - else - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#appendChild(org.w3c.dom.Node) - */ - public Node appendChild(Node newChild) - { - if (newChild == null) - throw new IllegalArgumentException("Child node is null"); - - IIOMetadataNode child = (IIOMetadataNode) newChild; - - children.add(child); - child.parent = this; - return this; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#cloneNode(boolean) - */ - public Node cloneNode(boolean deep) - { - IIOMetadataNode newnode = new IIOMetadataNode(name); - newnode.parent = null; - newnode.obj = obj; - if (deep) - { - for (int i=0; i < children.size(); i++) - newnode.children.add(((Node)children.get(i)).cloneNode(deep)); - } - - // clone attrs - for (Iterator it = attrs.values().iterator(); it.hasNext();) - { - IIOMetadataNodeAttr attr = (IIOMetadataNodeAttr)it.next(); - newnode.attrs.put(attr.name, attr.cloneNode(deep)); - attr.owner = newnode; - } - - return newnode; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getAttributes() - */ - public NamedNodeMap getAttributes() - { - return new IIONamedNodeMap(attrs); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getChildNodes() - */ - public NodeList getChildNodes() - { - return this; - } - - public Object getFeature(String feature, String version) - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getFirstChild() - */ - public Node getFirstChild() - { - return (children.size() > 0) ? (Node)children.get(0) : null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getLastChild() - */ - public Node getLastChild() - { - return (children.size() > 0) ? (Node)children.get(children.size() - 1) - : null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getLocalName() - */ - public String getLocalName() - { - return name; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getNamespaceURI() - */ - public String getNamespaceURI() - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getNextSibling() - */ - public Node getNextSibling() - { - // If this op needs to be faster, add links to prev and next nodes. - if (parent == null) return null; - int idx = parent.children.indexOf(this); - return (idx == parent.children.size() - 1) ? null - : (Node)parent.children.get(idx + 1); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getNodeName() - */ - public String getNodeName() - { - return name; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getNodeType() - */ - public short getNodeType() - { - return ELEMENT_NODE; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getNodeValue() - */ - public String getNodeValue() - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getOwnerDocument() - */ - public Document getOwnerDocument() - { - // IOMetadataNodes have no owner - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getParentNode() - */ - public Node getParentNode() - { - return parent; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getPrefix() - */ - public String getPrefix() - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#getPreviousSibling() - */ - public Node getPreviousSibling() - { - // If this op needs to be faster, add links to prev and next nodes. - if (parent == null) return null; - int idx = parent.children.indexOf(this); - return (idx == 0) ? null - : (Node)parent.children.get(idx - 1); - } - - public TypeInfo getSchemaTypeInfo() - { - return null; - } - - public String getTextContent() - throws DOMException - { - return null; - } - - public Object getUserData(String key) - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#hasAttributes() - */ - public boolean hasAttributes() - { - return !attrs.isEmpty(); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#hasChildNodes() - */ - public boolean hasChildNodes() - { - return !children.isEmpty(); - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node) - */ - public Node insertBefore(Node newChild, Node refChild) - { - if (newChild == null) - throw new IllegalArgumentException(); - - int idx = children.indexOf(refChild); - if (idx == -1) - children.add(newChild); - else - children.add(idx, newChild); - ((IIOMetadataNode)newChild).parent = this; - - return newChild; - } - - public boolean isDefaultNamespace(String namespaceURI) - { - return true; - } - - public boolean isEqualNode(Node arg) - { - return true; - } - - public boolean isSameNode(Node other) - { - return this == other; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#isSupported(java.lang.String, java.lang.String) - */ - public boolean isSupported(String feature, String version) - { - // No DOM features are supported - return false; - } - - public String lookupNamespaceURI(String prefix) - { - return null; - } - - public String lookupPrefix(String namespaceURI) - { - return null; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#normalize() - */ - public void normalize() - { - // No text nodes so no action - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#removeChild(org.w3c.dom.Node) - */ - public Node removeChild(Node oldChild) - { - if (oldChild == null) - throw new IllegalArgumentException(); - children.remove(oldChild); - ((IIOMetadataNode)oldChild).parent = null; - - return oldChild; - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node) - */ - public Node replaceChild(Node newChild, Node oldChild) - { - if (newChild == null) - throw new IllegalArgumentException(); - children.set(children.indexOf(oldChild), newChild); - ((IIOMetadataNode)oldChild).parent = null; - return oldChild; - } - - public void setIdAttribute(String name, boolean isId) - throws DOMException - { - } - - public void setIdAttributeNode(Attr idAttr, boolean isId) - throws DOMException - { - } - - public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) - throws DOMException - { - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#setNodeValue(java.lang.String) - */ - public void setNodeValue(String nodeValue) throws DOMException - { - } - - /* (non-Javadoc) - * @see org.w3c.dom.Node#setPrefix(java.lang.String) - */ - public void setPrefix(String prefix) - { - } - - public void setTextContent(String textContent) - throws DOMException - { - } - - public Object setUserData(String key, Object data, UserDataHandler handler) - { - return null; - } -} |