Clover coverage report -
Coverage timestamp: Thu Jul 5 2007 20:02:32 EDT
file stats: LOC: 75   Methods: 13
NCLOC: 51   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ThreadLocalMap.java 100% 47.1% 30.8% 43.8%
coverage coverage
 1    package org.jboss.cache.lock;
 2   
 3    import java.util.Collection;
 4    import java.util.HashMap;
 5    import java.util.Map;
 6    import java.util.Set;
 7   
 8    /**
 9    * Map which reduces concurrency and potential memory leaks for non-static ThreadLocals.
 10    * http://www.me.umn.edu/~shivane/blogs/cafefeed/2004/06/of-non-static-threadlocals-and-memory.html
 11    * @author Brian Dueck
 12    * @version $Id: ThreadLocalMap.java,v 1.1 2005/06/17 05:49:03 bela Exp $
 13    */
 14    public class ThreadLocalMap implements Map {
 15   
 16    private ThreadLocal threadLocal = new ThreadLocal();
 17   
 18  24005 private Map getThreadLocalMap() {
 19  24005 Map map = (Map) threadLocal.get();
 20  24005 if (map == null) {
 21  159 map = new HashMap();
 22  159 threadLocal.set(map);
 23    }
 24  24005 return map;
 25    }
 26   
 27  11999 public Object put(Object key, Object value) {
 28  11999 return getThreadLocalMap().put(key, value);
 29    }
 30   
 31  7 public Object get(Object key) {
 32  7 return getThreadLocalMap().get(key);
 33    }
 34   
 35  11999 public Object remove(Object key) {
 36  11999 return getThreadLocalMap().remove(key);
 37    }
 38   
 39  0 public int size() {
 40  0 return getThreadLocalMap().size();
 41    }
 42   
 43  0 public void clear() {
 44  0 getThreadLocalMap().clear();
 45    }
 46   
 47  0 public boolean isEmpty() {
 48  0 return getThreadLocalMap().isEmpty();
 49    }
 50   
 51  0 public boolean containsKey(Object arg0) {
 52  0 return getThreadLocalMap().containsKey(arg0);
 53    }
 54   
 55  0 public boolean containsValue(Object arg0) {
 56  0 return getThreadLocalMap().containsValue(arg0);
 57    }
 58   
 59  0 public Collection values() {
 60  0 return getThreadLocalMap().values();
 61    }
 62   
 63  0 public void putAll(Map arg0) {
 64  0 getThreadLocalMap().putAll(arg0);
 65    }
 66   
 67  0 public Set entrySet() {
 68  0 return getThreadLocalMap().entrySet();
 69    }
 70   
 71  0 public Set keySet() {
 72  0 return getThreadLocalMap().keySet();
 73    }
 74   
 75    }