mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			710 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			710 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Java
		
	
	
	
| /* 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;
 | |
|   }
 | |
| }
 |