1 package com.protomatter.util; 2 3 52 53 import java.util.*; 54 import java.lang.ref.*; 55 56 62 public class SoftReferenceCache 63 implements Cache 64 { 65 private Map map = null; 66 67 70 public SoftReferenceCache() 71 { 72 clear(); 73 } 74 75 79 public void put(Object key, Object val) 80 { 81 map.put(key, new SoftReference(val)); 82 } 83 84 89 public Object get(Object key) 90 { 91 SoftReference ref = (SoftReference)map.get(key); 92 if (ref != null) 93 { 94 Object o = ref.get(); 95 if (o == null) 96 clear(key); 97 return o; 98 } 99 return null; 100 } 101 102 105 public void clear(Object key) 106 { 107 this.map.remove(key); 108 } 109 110 113 public void clear() 114 { 115 this.map = new HashMap(); 116 } 117 } 118 | Popular Tags |