1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.cache.listeners;
35
36 import info.magnolia.module.cache.Cache;
37 import info.magnolia.module.cache.CacheModule;
38 import info.magnolia.module.cache.ContentCachingConfiguration;
39
40 import java.util.Collections;
41 import java.util.List;
42
43 import org.slf4j.Logger;
44 import org.slf4j.LoggerFactory;
45
46
47
48
49 public abstract class AbstractListeningCacheWrapper implements Cache {
50 private static final Logger log = LoggerFactory.getLogger(AbstractListeningCacheWrapper.class);
51
52 private final CacheModule cacheModule;
53
54 public AbstractListeningCacheWrapper(CacheModule cacheModule) {
55 this.cacheModule = cacheModule;
56 }
57
58 @Override
59 public void put(Object key, Object value) {
60 for (AbstractCacheListener listener : getListeners()) {
61 listener.put(key, value);
62 }
63 }
64
65 @Override
66 public void put(Object key, Object value, int timeToLiveInSeconds) {
67 for (AbstractCacheListener listener : getListeners()) {
68 listener.put(key, value, timeToLiveInSeconds);
69 }
70 }
71
72 @Override
73 public Object get(Object key) {
74 for (AbstractCacheListener listener : getListeners()) {
75 listener.get(key);
76 }
77 return null;
78 }
79
80 @Override
81 public Object getQuiet(Object key) {
82 for (AbstractCacheListener listener : getListeners()) {
83 listener.getQuiet(key);
84 }
85 return null;
86 }
87
88 @Override
89 public void remove(Object key) {
90 for (AbstractCacheListener listener : getListeners()) {
91 listener.remove(key);
92 }
93 }
94
95 @Override
96 public void clear() {
97 for (AbstractCacheListener listener : getListeners()) {
98 listener.clear();
99 }
100 }
101
102 @Override
103 public abstract String getName();
104
105 @Override
106 public abstract int getSize();
107
108 private List<AbstractCacheListener> getListeners() {
109 ContentCachingConfiguration contentCachingConfiguration = this.cacheModule.getContentCaching(this.getName());
110 return contentCachingConfiguration == null ? Collections.<AbstractCacheListener>emptyList() : contentCachingConfiguration.getListeners();
111 }
112
113 }