1 package org.apache.commons.jcs.auxiliary;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.jcs.engine.behavior.ICacheElement;
23 import org.apache.commons.jcs.engine.behavior.IElementSerializer;
24 import org.apache.commons.jcs.engine.logging.CacheEvent;
25 import org.apache.commons.jcs.engine.logging.behavior.ICacheEvent;
26 import org.apache.commons.jcs.engine.logging.behavior.ICacheEventLogger;
27 import org.apache.commons.jcs.engine.match.KeyMatcherPatternImpl;
28 import org.apache.commons.jcs.engine.match.behavior.IKeyMatcher;
29 import org.apache.commons.jcs.utils.serialization.StandardSerializer;
30
31
32 public abstract class AbstractAuxiliaryCache<K, V>
33 implements AuxiliaryCache<K, V>
34 {
35
36 private ICacheEventLogger cacheEventLogger;
37
38
39 private IElementSerializer elementSerializer = new StandardSerializer();
40
41
42 private IKeyMatcher<K> keyMatcher = new KeyMatcherPatternImpl<K>();
43
44
45
46
47
48
49
50
51 protected ICacheEvent<K> createICacheEvent( ICacheElement<K, V> item, String eventName )
52 {
53 if ( cacheEventLogger == null )
54 {
55 return new CacheEvent<K>();
56 }
57 String diskLocation = getEventLoggingExtraInfo();
58 String regionName = null;
59 K key = null;
60 if ( item != null )
61 {
62 regionName = item.getCacheName();
63 key = item.getKey();
64 }
65 return cacheEventLogger.createICacheEvent( getAuxiliaryCacheAttributes().getName(), regionName, eventName,
66 diskLocation, key );
67 }
68
69
70
71
72
73
74
75
76
77 protected <T> ICacheEvent<T> createICacheEvent( String regionName, T key, String eventName )
78 {
79 if ( cacheEventLogger == null )
80 {
81 return new CacheEvent<T>();
82 }
83 String diskLocation = getEventLoggingExtraInfo();
84 return cacheEventLogger.createICacheEvent( getAuxiliaryCacheAttributes().getName(), regionName, eventName,
85 diskLocation, key );
86
87 }
88
89
90
91
92
93
94 protected <T> void logICacheEvent( ICacheEvent<T> cacheEvent )
95 {
96 if ( cacheEventLogger != null )
97 {
98 cacheEventLogger.logICacheEvent( cacheEvent );
99 }
100 }
101
102
103
104
105
106
107
108
109 protected void logApplicationEvent( String source, String eventName, String optionalDetails )
110 {
111 if ( cacheEventLogger != null )
112 {
113 cacheEventLogger.logApplicationEvent( source, eventName, optionalDetails );
114 }
115 }
116
117
118
119
120
121
122
123
124 protected void logError( String source, String eventName, String errorMessage )
125 {
126 if ( cacheEventLogger != null )
127 {
128 cacheEventLogger.logError( source, eventName, errorMessage );
129 }
130 }
131
132
133
134
135
136
137 public abstract String getEventLoggingExtraInfo();
138
139
140
141
142
143
144 @Override
145 public void setCacheEventLogger( ICacheEventLogger cacheEventLogger )
146 {
147 this.cacheEventLogger = cacheEventLogger;
148 }
149
150
151
152
153
154
155 public ICacheEventLogger getCacheEventLogger()
156 {
157 return this.cacheEventLogger;
158 }
159
160
161
162
163
164
165
166
167
168 @Override
169 public void setElementSerializer( IElementSerializer elementSerializer )
170 {
171 if ( elementSerializer != null )
172 {
173 this.elementSerializer = elementSerializer;
174 }
175 }
176
177
178
179
180
181
182 public IElementSerializer getElementSerializer()
183 {
184 return this.elementSerializer;
185 }
186
187
188
189
190
191
192 @Override
193 public void setKeyMatcher( IKeyMatcher<K> keyMatcher )
194 {
195 if ( keyMatcher != null )
196 {
197 this.keyMatcher = keyMatcher;
198 }
199 }
200
201
202
203
204
205
206 public IKeyMatcher<K> getKeyMatcher()
207 {
208 return this.keyMatcher;
209 }
210 }