Class DefaultSimpleCache<K extends Serializable,​V>

  • All Implemented Interfaces:
    SimpleCache<K,​V>, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware

    public final class DefaultSimpleCache<K extends Serializable,​V>
    extends Object
    implements SimpleCache<K,​V>, org.springframework.beans.factory.BeanNameAware
    SimpleCache implementation backed by a Google Cache implementation.
    Author:
    Matt Ward
    • Constructor Detail

      • DefaultSimpleCache

        public DefaultSimpleCache​(int maxItems,
                                  boolean useMaxItems,
                                  int ttlSecs,
                                  int maxIdleSecs,
                                  String cacheName)
        Construct a cache using the specified capacity and name.
        Parameters:
        maxItems - The cache capacity. 0 = use DEFAULT_CAPACITY
        useMaxItems - Whether the maxItems value should be applied as a size-cap for the cache.
        cacheName - An arbitrary cache name.
      • DefaultSimpleCache

        public DefaultSimpleCache​(int maxItems,
                                  String cacheName)
        Create a size limited, named cache with no other features enabled.
        Parameters:
        maxItems - int
        cacheName - String
      • DefaultSimpleCache

        public DefaultSimpleCache()
        Default constructor. Initialises the cache with no size limit and no name.
    • Method Detail

      • putAndCheckUpdate

        public boolean putAndCheckUpdate​(K key,
                                         V value)
        put method that may be used to check for updates in a thread-safe manner.
        Returns:
        true if the put resulted in a change in value, false otherwise.
      • putAndCheckUpdate

        public boolean putAndCheckUpdate​(K key,
                                         V value,
                                         boolean includeNewCheck)
        put method that may be used to check for updates in a thread-safe manner.
        Parameters:
        includeNewCheck - if true then we include the new value in the check
        Returns:
        true if the put resulted in a change in value, or if includeNewCheck is true and the put resulted in a new value, false otherwise.
      • getMaxItems

        public int getMaxItems()
        Gets the maximum number of items that the cache will hold.
        Returns:
        maxItems
      • isUseMaxItems

        public boolean isUseMaxItems()
        Is a size-cap in use?
        Returns:
        useMaxItems
      • getTTLSecs

        public int getTTLSecs()
        Get the time-to-live setting in seconds.
        Returns:
        ttlSecs
      • getMaxIdleSecs

        public int getMaxIdleSecs()
        Get the time-to-idle setting in seconds.
        Returns:
        maxIdleSecs
      • getCacheName

        public String getCacheName()
        Retrieve the name of this cache.
        Returns:
        the cacheName
        See Also:
        setCacheName(String)
      • setCacheName

        public void setCacheName​(String cacheName)
        Since there are many cache instances, it is useful to be able to associate a name with each one.
        Parameters:
        cacheName - String
        See Also:
        setBeanName(String)
      • setBeanName

        public void setBeanName​(String cacheName)
        Since there are many cache instances, it is useful to be able to associate a name with each one.
        Specified by:
        setBeanName in interface org.springframework.beans.factory.BeanNameAware
        Parameters:
        cacheName - Set automatically by Spring, but can be set manually if required.