1 package org.shiftone.cache.adaptor; 2 3 4 5 import org.apache.commons.lang.exception.NestableRuntimeException; 6 import org.apache.jcs.JCS; 7 import org.apache.jcs.access.CacheAccess; 8 import org.apache.jcs.access.exception.CacheException; 9 import org.apache.jcs.engine.behavior.ICompositeCacheAttributes; 10 import org.shiftone.cache.Cache; 11 12 13 17 public class JcsCache implements Cache 18 { 19 20 private final CacheAccess cache; 21 22 public JcsCache() 23 { 24 this("default"); 25 } 26 27 public JcsCache(CacheAccess access) 28 { 29 this.cache = access; 30 } 31 32 public JcsCache(String name) 33 { 34 35 try 36 { 37 cache = JCS.getInstance(name); 38 } 39 catch (CacheException e) 40 { 41 throw new NestableRuntimeException("new JcsCache : " + name, e); 42 } 43 } 44 45 46 public void addObject(Object userKey, Object cacheObject) 47 { 48 49 try 50 { 51 cache.put(userKey, cacheObject); 52 } 53 catch (CacheException e) 54 { 55 throw new NestableRuntimeException("addObject", e); 56 } 57 } 58 59 60 public Object getObject(Object key) 61 { 62 return cache.get(key); 63 } 64 65 66 69 public int size() 70 { 71 return -1; 72 } 73 74 75 public void remove(Object key) 76 { 77 78 try 79 { 80 cache.remove(key); 81 } 82 catch (CacheException e) 83 { 84 throw new NestableRuntimeException("remove", e); 85 } 86 } 87 88 89 public void clear() 90 { 91 92 try 93 { 94 cache.remove(); 95 } 96 catch (CacheException e) 97 { 98 throw new NestableRuntimeException("remove", e); 99 } 100 } 101 102 103 public String toString() 104 { 105 106 ICompositeCacheAttributes attributes = cache.getCacheAttributes(); 107 108 return "JCS[" + attributes.getCacheName() + ":" + attributes.getMemoryCacheName() + ":" + attributes.getMaxObjects() + "]"; 111 } 112 } 113 | Popular Tags |