Clover coverage report - JBind Project
Coverage timestamp: Fr Mai 28 2004 11:17:36 CEST
file stats: LOC: 137   Methods: 17
NCLOC: 99   Classes: 1
This license of Clover is provided to support the development of JBind only. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover.
 
 Source file Conditionals Statements Methods TOTAL
DomNamedNodeMap.java 0% 0% 0% 0%
 1   
 /*
 2   
  * JBind
 3   
  *
 4   
  * Copyright (c) by Stefan Wachter. All rights reserved.
 5   
  *
 6   
  * Usage, modification, and redistribution is subject to license terms that are
 7   
  * available at 'http://www.jbind.org'. The JBind license is like the
 8   
  * 'Apache Software License V 1.1'.
 9   
  */
 10   
 package org.jbind.xml.dom3.core;
 11   
 
 12   
 import java.util.ArrayList;
 13   
 import java.util.HashMap;
 14   
 import java.util.Iterator;
 15   
 import java.util.List;
 16   
 import java.util.Map;
 17   
 
 18   
 import org.jbind.xml.dom3.types.IDomDocument;
 19   
 import org.jbind.xml.dom3.types.IDomNamedNodeMap;
 20   
 import org.jbind.xml.dom3.types.IDomNode;
 21   
 import org.w3c.dom.Node;
 22   
 
 23   
 public class DomNamedNodeMap extends DomObject implements IDomNamedNodeMap {
 24   
 
 25   
   private List myList = null;
 26   
   private Map myMap = new HashMap();
 27   
 
 28  0
   public DomNamedNodeMap(IDomDocument aDomDocument) {
 29  0
     super(aDomDocument);
 30   
   }
 31   
 
 32  0
   public DomNamedNodeMap(IDomNamedNodeMap aMap, boolean aDeep) {
 33  0
     super(aMap, aDeep);
 34  0
     for (Iterator i = iterNodes(); i.hasNext(); ) {
 35  0
       IDomNode n = (IDomNode)i.next();
 36  0
       if (aDeep) {
 37  0
         setNamedItem(n.cloneNode(aDeep));
 38   
       } else {
 39  0
         setNamedItem(n);
 40   
       }
 41   
     }
 42   
   }
 43   
 
 44  0
   public int getLength() {
 45  0
     doSetDefaults();
 46  0
     return myMap.size();
 47   
   }
 48   
 
 49  0
   public Node getNamedItem(String aName) {
 50  0
     return getNamedItemNS(null, aName);
 51   
   }
 52   
 
 53  0
   public Node getNamedItemNS(String aNamespaceUri, String aLocalName) {
 54  0
     Object key = DomUtil.createKey(aNamespaceUri, aLocalName);
 55  0
     Node res = (Node)myMap.get(key);
 56  0
     if (null == res) {
 57  0
       res = doGetDefault(aNamespaceUri, aLocalName);
 58   
     }
 59  0
     return res;
 60   
   }
 61   
 
 62  0
   private List getList() {
 63  0
     if (null == myList) {
 64  0
       doSetDefaults();
 65  0
       myList = new ArrayList();
 66  0
       myList.addAll(myMap.values());
 67   
     }
 68  0
     return myList;
 69   
   }
 70   
 
 71  0
   public Node item(int anIndex) {
 72  0
     Node res = null;
 73  0
     List l = getList();
 74  0
     if ((anIndex >= 0) && (anIndex < l.size())) {
 75  0
       res = (Node)l.get(anIndex);
 76   
     }
 77  0
     return res;
 78   
   }
 79   
 
 80  0
   public Node removeNamedItem(String aName) throws DomException {
 81  0
     return removeNamedItemNS(null, aName);
 82   
   }
 83   
 
 84  0
   public Node removeNamedItemNS(String aNamespaceUri, String aName) throws DomException {
 85  0
     Object key = DomUtil.createKey(aNamespaceUri, aName);
 86  0
     return remove(key);
 87   
   }
 88   
 
 89  0
   public void removeNode(Node aNode) throws DomException {
 90  0
     Object key = DomUtil.createKey(aNode);
 91  0
     remove(key);
 92   
   }
 93   
 
 94  0
   private Node remove(Object aKey) {
 95  0
     Node res = (Node)myMap.get(aKey);
 96  0
     if (null != res) {
 97  0
       myMap.remove(aKey);
 98  0
       myList = null;
 99   
     }
 100  0
     return res;
 101   
   }
 102   
 
 103  0
   public Node setNamedItem(Node aNode) throws DomException {
 104  0
     checkMutability();
 105  0
     checkOwnerDocument((IDomNode)aNode);
 106  0
     myList = null;
 107  0
     Object key = DomUtil.createKey(aNode);
 108  0
     IDomNode res = (IDomNode)myMap.put(key, aNode);
 109  0
     doAfterSet(aNode);
 110  0
     return res;
 111   
   }
 112   
 
 113  0
   public Node setNamedItemNS(Node aNode) throws DomException {
 114  0
     return setNamedItem(aNode);
 115   
   }
 116   
 
 117  0
   public Iterator iterNodes() {
 118  0
     doSetDefaults();
 119  0
     return myMap.values().iterator();
 120   
   }
 121   
 
 122  0
   protected void doAfterSet(Node aNode) {}
 123   
 
 124  0
   protected void doSetDefaults() {}
 125   
 
 126   
   /**
 127   
    * Gets a default value.
 128   
    *
 129   
    * @param aNamespace <i>(optional)</i>.
 130   
    * @param aName <i>(required)</i>.
 131   
    * @return <i>(optional)</i>.
 132   
    */
 133  0
   protected Node doGetDefault(String aNamespace, String aName) {
 134  0
     return null;
 135   
   }
 136   
 }
 137