1 package net.sf.ehcache.writer;
2
3 import java.util.Collection;
4 import java.util.HashMap;
5 import java.util.Map;
6 import java.util.Properties;
7
8 import net.sf.ehcache.CacheEntry;
9 import net.sf.ehcache.CacheException;
10 import net.sf.ehcache.Element;
11
12 public class TestCacheWriter extends AbstractTestCacheWriter {
13 private final Properties properties;
14 private final Map<Object, Element> writtenElements = new HashMap<Object, Element>();
15 private final Map<Object, Element> deletedElements = new HashMap<Object, Element>();
16
17 public TestCacheWriter(Properties properties) {
18 this.properties = properties;
19 }
20
21 public Properties getProperties() {
22 return properties;
23 }
24
25 public Map<Object, Element> getWrittenElements() {
26 return writtenElements;
27 }
28
29 public Map<Object, Element> getDeletedElements() {
30 return deletedElements;
31 }
32
33 private String getAdaptedKey(Object key) {
34 String keyPrefix = properties.getProperty("key.prefix", "");
35 String keySuffix = properties.getProperty("key.suffix", "");
36 return keyPrefix + key + keySuffix;
37 }
38
39 @Override
40 public synchronized void write(Element element) throws CacheException {
41 writtenElements.put(getAdaptedKey(element.getObjectKey()), element);
42 }
43
44 @Override
45 public synchronized void writeAll(Collection<Element> elements) throws CacheException {
46 for (Element element : elements) {
47 writtenElements.put(getAdaptedKey(element.getObjectKey()) + "-batched", element);
48 }
49 }
50
51 @Override
52 public synchronized void delete(CacheEntry entry) throws CacheException {
53 deletedElements.put(getAdaptedKey(entry.getKey()), entry.getElement());
54 }
55
56 @Override
57 public synchronized void deleteAll(Collection<CacheEntry> entries) throws CacheException {
58 for (CacheEntry entry : entries) {
59 deletedElements.put(getAdaptedKey(entry.getKey()) + "-batched", entry.getElement());
60 }
61 }
62 }