| | |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | @Override |
| | | public <T> T get(Object key, Class<T> type) { |
| | | Object o = CAFFEINE.get(getUniqueKey(key), k -> cache.get(key, type)); |
| | | return (T) o; |
| | |
| | | cache.put(key, value); |
| | | } |
| | | |
| | | @Override |
| | | public ValueWrapper putIfAbsent(Object key, Object value) { |
| | | CAFFEINE.invalidate(getUniqueKey(key)); |
| | | return cache.putIfAbsent(key, value); |
| | |
| | | evictIfPresent(key); |
| | | } |
| | | |
| | | @Override |
| | | public boolean evictIfPresent(Object key) { |
| | | boolean b = cache.evictIfPresent(key); |
| | | if (b) { |
| | |
| | | cache.clear(); |
| | | } |
| | | |
| | | @Override |
| | | public boolean invalidate() { |
| | | return cache.invalidate(); |
| | | } |