KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > shiftone > cache > adaptor > EHCacheCache


1 package org.shiftone.cache.adaptor;
2
3
4
5 import net.sf.ehcache.CacheManager;
6 import net.sf.ehcache.Element;
7 import org.shiftone.cache.Cache;
8 import org.shiftone.cache.util.Log;
9
10 import java.io.Serializable JavaDoc;
11
12
13 /**
14  * Makes a ehcache cache look like a shiftone cache.
15  *
16  * @version $Revision: 1.6 $
17  * @author <a HREF="mailto:jeff@shiftone.org">Jeff Drost</a>
18  */

19 public class EHCacheCache implements Cache
20 {
21
22     private static final Log LOG = new Log(EHCacheCache.class);
23     private net.sf.ehcache.Cache cache;
24
25     public EHCacheCache(String JavaDoc name) throws Exception JavaDoc
26     {
27
28         CacheManager cacheManager = CacheManager.getInstance();
29
30         cache = cacheManager.getCache(name);
31
32         if (cache == null)
33         {
34             cacheManager.addCache(name);
35
36             cache = cacheManager.getCache(name);
37         }
38     }
39
40
41     public EHCacheCache(net.sf.ehcache.Cache cache)
42     {
43         this.cache = cache;
44     }
45
46
47     private final Serializable JavaDoc ser(Object JavaDoc o)
48     {
49
50         Serializable JavaDoc serializable;
51
52         try
53         {
54             serializable = (Serializable JavaDoc) o;
55         }
56         catch (ClassCastException JavaDoc e)
57         {
58             throw new ClassCastException JavaDoc("unable to cast " + o.getClass().getName() + " to Serializable");
59         }
60
61         return serializable;
62     }
63
64
65     public final void addObject(Object JavaDoc userKey, Object JavaDoc cacheObject)
66     {
67
68         Serializable JavaDoc k = ser(userKey);
69         Serializable JavaDoc v = ser(cacheObject);
70
71         cache.put(new Element(k, v));
72     }
73
74
75     public final Object JavaDoc getObject(Object JavaDoc key)
76     {
77
78         Element element = null;
79
80         try
81         {
82             element = cache.get((Serializable JavaDoc) key);
83         }
84         catch (Exception JavaDoc e)
85         {
86             LOG.error("getObject", e);
87         }
88
89         return (element == null)
90                ? null
91                : element.getValue();
92     }
93
94
95     public final int size()
96     {
97         return cache.getSize();
98     }
99
100
101     public final void remove(Object JavaDoc key)
102     {
103         cache.remove((Serializable JavaDoc) key);
104     }
105
106
107     public final void clear()
108     {
109
110         try
111         {
112             cache.removeAll();
113         }
114         catch (Exception JavaDoc e)
115         {
116             LOG.error("clear", e);
117         }
118     }
119
120
121     public String JavaDoc toString()
122     {
123         return "EHCacheCache[" + cache.getName() + ":" + cache.getMaxElementsInMemory() + "]";
124     }
125 }
126
Popular Tags