##### Coverage Report - org.webmacro.resource.SimpleCacheManager

Classes in this File | Line Coverage | Branch Coverage | Complexity
SimpleCacheManager |
66% | 16/24
100% | 2/2
| 1.1;1.1

1 |  |
     package org.webmacro.resource;
2 |  |
3 |  |
     import java.util.Map;
4 |  |
5 |  |
     import org.slf4j.Logger;
6 |  |
     import org.slf4j.LoggerFactory;
7 |  |
8 |  |
     import org.webmacro.Broker;
9 |  |
     import org.webmacro.InitException;
10 |  |
     import org.webmacro.ResourceException;
11 |  |
     import org.webmacro.util.Settings;
12 |  |
13 |  |
     import java.util.concurrent.ConcurrentHashMap;
14 |  |
15 |  |
     /**
16 |  |
      * SimpleCacheManager -- a basic cache manager backed by ConcurrentHashMap
17 |  |
      * which does not support reloading, or expiration.
18 |  |
      *
19 |  |
      * @author Brian Goetz
20 |  |
      */
21 |  |
     public class SimpleCacheManager implements CacheManager {
22 |  |
23 | 2 |
         static Logger _log =  LoggerFactory.getLogger(SimpleCacheManager.class);
24 |  |
25 |  |
         private static final String NAME = "SimpleCacheManager";
26 | 18 |
         private final Map _cache = new ConcurrentHashMap();
27 |  |
28 |  |
         private String _resourceType;
29 |  |
30 | 18 |
         public SimpleCacheManager() {
31 | 18 |
         }
32 |  |
33 |  |
         public void init(Broker b, Settings config, String resourceType)
34 |  |
                 throws InitException {
35 |  |
36 | 18 |
             _resourceType = resourceType;
37 |  |
38 | 18 |
             _log.info(NAME + "." + _resourceType);
39 | 18 |
         }
40 |  |
41 |  |
         /**
42 |  |
          * Clear the cache.
43 |  |
          */
44 |  |
         public void flush() {
45 | 0 |
             _cache.clear();
46 | 0 |
         }
47 |  |
48 |  |
         /**
49 |  |
          * Close down the provider.
50 |  |
          */
51 |  |
         public void destroy() {
52 | 0 |
             _cache.clear();
53 | 0 |
         }
54 |  |
55 |  |
         public boolean supportsReload() {
56 | 0 |
             return false;
57 |  |
         }
58 |  |
59 |  |
         /**
60 |  |
          * Get the object associated with the specific query, first
61 |  |
          * trying to look it up in a cache. If it's not there, then
62 |  |
          * call load(String) to load it into the cache.
63 |  |
          */
64 |  |
         public Object get(final Object query, ResourceLoader helper)
65 |  |
                 throws ResourceException {
66 | 56066 |
             Object o = null;
67 |  |
68 | 56066 |
             o = _cache.get(query);
69 | 56066 |
             if (o == null) {
70 | 532 |
                 o = helper.load(query, null);
71 | 532 |
                 _cache.put(query, o);
72 |  |
             }
73 | 56066 |
             return o;
74 |  |
         }
75 |  |
76 |  |
         /**
77 |  |
          * Get the object associated with the specific query,
78 |  |
          * trying to look it up in a cache. If it's not there, return null.
79 |  |
          */
80 |  |
         public Object get(final Object query) {
81 | 133540 |
             return _cache.get(query);
82 |  |
         }
83 |  |
84 |  |
         /**
85 |  |
          * Put an object in the cache.
86 |  |
          */
87 |  |
         public void put(final Object query, Object resource) {
88 | 540 |
             _cache.put(query, resource);
89 | 540 |
         }
90 |  |
91 |  |
         /**
92 |  |
          * Remove an element.
93 |  |
          */
94 |  |
         public void invalidate(final Object query) {
95 | 0 |
             _cache.remove(query);
96 | 0 |
         }
97 |  |
98 |  |
         public String toString() {
99 | 0 |
             return NAME + "(type = " + _resourceType + ")";
100 |  |
         }
101 |  |
     }