1 package org.sapia.regis.cache; 2 3 import java.io.Serializable ; 4 import java.util.Collection ; 5 import java.util.HashMap ; 6 import java.util.Map ; 7 import java.util.Set ; 8 9 public class RemoteMapProxy implements Serializable , Map { 10 11 Map _cache = new HashMap (); 12 Map _remote; 13 14 public RemoteMapProxy(Map delegate){ 15 if(delegate instanceof RemoteMap){ 16 _remote = delegate; 17 } 18 else{ 19 _remote = new RemoteMap(delegate); 20 } 21 } 22 23 public void clear() { 24 _cache.clear(); 25 _remote.clear(); 26 } 27 28 public boolean containsKey(Object key) { 29 if(_cache.containsKey(key)){ 30 return true; 31 } 32 else{ 33 return _remote.containsKey(key); 34 } 35 } 36 37 public boolean containsValue(Object value) { 38 if(_cache.containsValue(value)){ 39 return true; 40 } 41 else{ 42 return _remote.containsValue(value); 43 } 44 } 45 46 public Set entrySet() { 47 return _remote.entrySet(); 48 } 49 50 public Object get(Object key) { 51 Object o = _cache.get(key); 52 if(o == null) return _remote.get(key); 53 return o; 54 } 55 56 public boolean isEmpty() { 57 return _remote.isEmpty(); 58 } 59 60 public Set keySet() { 61 return _remote.keySet(); 62 } 63 64 public Object put(Object arg0, Object arg1) { 65 _cache.put(arg0, arg1); 66 return _remote.put(arg0, arg1); 67 } 68 69 public void putAll(Map arg0) { 70 _cache.putAll(arg0); 71 _remote.putAll(arg0); 72 } 73 74 public Object remove(Object key) { 75 _cache.remove(key); 76 return _remote.remove(key); 77 } 78 79 public int size() { 80 return _remote.size(); 81 } 82 83 public Collection values() { 84 return _remote.values(); 85 } 86 87 } 88 | Popular Tags |