Created by yfyuan on 2016/11/7.
| 8 | * Created by yfyuan on 2016/11/7. |
| 9 | */ |
| 10 | public class HeapCacheManager<T> implements CacheManager<T> { |
| 11 | |
| 12 | private ConcurrentMap<String, CacheObject> cache = new ConcurrentHashMap<>(); |
| 13 | |
| 14 | @Override |
| 15 | public void put(String key, T data, long expire) { |
| 16 | cache.put(key, new CacheObject(new Date().getTime(), expire, data)); |
| 17 | } |
| 18 | |
| 19 | @Override |
| 20 | public T get(String key) { |
| 21 | CacheObject o = cache.get(key); |
| 22 | if (o == null || new Date().getTime() >= o.getT1() + o.getExpire()) |
| 23 | return null; |
| 24 | else { |
| 25 | return (T) o.getD(); |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | @Override |
| 30 | public void remove(String key) { |
| 31 | cache.remove(key); |
| 32 | } |
| 33 | |
| 34 | } |
nothing calls this directly
no outgoing calls
no test coverage detected