Class CacheUtils

java.lang.Object
ubic.gemma.persistence.cache.CacheUtils

public class CacheUtils extends Object
Created by tesarst on 04/04/17. Provides common methods for cache manipulation.
  • Constructor Details

    • CacheUtils

      public CacheUtils()
  • Method Details

    • getCache

      public static org.springframework.cache.Cache getCache(org.springframework.cache.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(org.springframework.cache.Cache cache)
    • containsKey

      public static boolean containsKey(org.springframework.cache.Cache cache, Object key)
      Check if a cache contains a given key.
    • getKeys

      public static Collection<?> getKeys(org.springframework.cache.Cache cache)
      Obtain the keys of all elements of a cache.
    • evictIf

      public static void evictIf(org.springframework.cache.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(org.springframework.cache.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(org.springframework.cache.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