01: package org.shiftone.cache.decorator.cluster;
02:
03: import org.shiftone.cache.Cache;
04: import org.shiftone.cache.util.Log;
05:
06: /**
07: * @author <a href="mailto:jeff@shiftone.org">Jeff Drost</a>
08: * @version $Revision: 1.8 $
09: */
10: public class ClusterCache implements Cache {
11:
12: private final Log LOG = new Log(ClusterCache.class);
13: private final ClusterCacheFactory factory;
14: private final Cache cache;
15: private final String name;
16:
17: public ClusterCache(String name, Cache cache,
18: ClusterCacheFactory factory) {
19:
20: this .factory = factory;
21: this .cache = cache;
22: this .name = name;
23: }
24:
25: public void addObject(Object userKey, Object cacheObject) {
26:
27: // remove(userKey);
28: cache.addObject(userKey, cacheObject);
29: }
30:
31: public Object getObject(Object key) {
32: return cache.getObject(key);
33: }
34:
35: public int size() {
36: return cache.size();
37: }
38:
39: public void remove(Object key) {
40: cache.remove(key);
41: factory.sendRemoveNotification(name, key);
42: }
43:
44: public void clear() {
45: cache.clear();
46: factory.sendClearNotification(name);
47: }
48:
49: //-----------------------------------------------------------
50: public Cache getCache() {
51: return cache;
52: }
53:
54: public String getName() {
55: return name;
56: }
57:
58: //-----------------------------------------------------------
59: public final String toString() {
60: return "ClusterCache->" + cache;
61: }
62: }
|