View Javadoc

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  }