Package ubic.gemma.persistence.util
Class CacheUtils
- java.lang.Object
-
- ubic.gemma.persistence.util.CacheUtils
-
public class CacheUtils extends Object
Created by tesarst on 04/04/17. Provides common methods for cache manipulation.
-
-
Constructor Summary
Constructors Constructor Description CacheUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static CacheKeyLock.LockAcquisitionacquireReadLock(Cache cache, Object key)Acquire a read-only lock on the given key in the cache.static CacheKeyLock.LockAcquisitionacquireWriteLock(Cache cache, Object key)Acquire an exclusive write lock on the given key in the cache.static booleancontainsKey(Cache cache, Object key)Check if a cache contains a given key.static voidevictIf(Cache cache, Predicate<Object> predicate)Evict entries from the cache where the key is matching a given predicate.static CachegetCache(CacheManager cacheManager, String cacheName)Obtain a cache by its name, raising an exception if unavailable.static Collection<?>getKeys(Cache cache)Obtain the keys of all elements of a cache.static intgetSize(Cache cache)
-
-
-
Method Detail
-
getCache
public static Cache getCache(CacheManager cacheManager, String cacheName) throws RuntimeException
Obtain a cache by its name, raising an exception if unavailable.- Throws:
RuntimeException- if the cache identified by name is missing
-
getSize
public static int getSize(Cache cache)
-
containsKey
public static boolean containsKey(Cache cache, Object key)
Check if a cache contains a given key.
-
getKeys
public static Collection<?> getKeys(Cache cache)
Obtain the keys of all elements of a cache.
-
evictIf
public static void evictIf(Cache cache, Predicate<Object> predicate)
Evict entries from the cache where the key is matching a given predicate.If keys cannot be enumerated by the cache provider, all entries are cleared.
-
acquireReadLock
public static CacheKeyLock.LockAcquisition acquireReadLock(Cache cache, Object key) throws InterruptedException
Acquire a read-only lock on the given key in the cache.- Returns:
- an acquired read lock on the given cache key
- Throws:
InterruptedException- if the current thread is interrupted while waiting for the lock
-
acquireWriteLock
public static CacheKeyLock.LockAcquisition acquireWriteLock(Cache cache, Object key) throws InterruptedException
Acquire an exclusive write lock on the given key in the cache.- Returns:
- an acquired write lock on the given cache key
- Throws:
InterruptedException- if the current thread is interrupted while waiting for the lock
-
-