Class GuavaCacheStoreAdapter

  • All Implemented Interfaces:
    CacheStoreAdapter, org.springframework.beans.factory.DisposableBean

    public class GuavaCacheStoreAdapter
    extends Object
    implements CacheStoreAdapter, org.springframework.beans.factory.DisposableBean
    Implementation of a CacheStoreAdapter using Guava Caches.
    Author:
    joseross
    • Constructor Detail

      • GuavaCacheStoreAdapter

        public GuavaCacheStoreAdapter()
    • Method Detail

      • destroy

        public void destroy()
        Destroy method, called by the Spring container. Calls Cache.cleanUp() for all instances.
        Specified by:
        destroy in interface org.springframework.beans.factory.DisposableBean
      • addScope

        public void addScope​(String scope,
                             int maxItemsInMemory)
        Adds a new scope. The scope is an instance of Guava's Cache.
        Specified by:
        addScope in interface CacheStoreAdapter
        Parameters:
        scope - the name of the scope
        maxItemsInMemory - the maximum number of items in memory, before they are evicted
        Throws:
        Exception
      • removeScope

        public void removeScope​(String scope)
        Removes an existing scope and all the items that are in it.
        Specified by:
        removeScope in interface CacheStoreAdapter
        Parameters:
        scope - scope to remove
      • getSize

        public int getSize​(String scope)
        Returns the quantity of items present in the specified scope.
        Specified by:
        getSize in interface CacheStoreAdapter
        Returns:
        the size of the scope (quantity of items)
      • getKeys

        public Collection<Object> getKeys​(String scope)
        Returns a list of the keys of the items present in the specified scope.
        Specified by:
        getKeys in interface CacheStoreAdapter
        Returns:
        a list of the keys of the available items in the scope
      • hasKey

        public boolean hasKey​(String scope,
                              Object key)
        Returns true if there's and item with the specified key in the specified scope.
        Specified by:
        hasKey in interface CacheStoreAdapter
        Returns:
        true if the key exists in the scope, false otherwise
      • get

        public CacheItem get​(String scope,
                             Object key)
        Retrieves an item from a scope.
        Specified by:
        get in interface CacheStoreAdapter
        Parameters:
        scope - scope to get the item from
        key - unique key for the item within this scope
        Returns:
        the requested item if found, null otherwise
      • remove

        public boolean remove​(String scope,
                              Object key)
        Removes an item from a scope.
        Specified by:
        remove in interface CacheStoreAdapter
        Parameters:
        scope - scope to remove the item from
        key - unique key for the item within this scope
        Returns:
        true if the removal was successful, false otherwise
      • clearAll

        public void clearAll()
        Clears the contents of the entire store.
        Specified by:
        clearAll in interface CacheStoreAdapter
      • clearScope

        public void clearScope​(String scope)
        Clears the contents of the specified scope in the underlying store.
        Specified by:
        clearScope in interface CacheStoreAdapter
        Parameters:
        scope - scope to clear
      • getStatistics

        public CacheStatistics getStatistics​(String scope)
        Returns the statistics of the specified scope from the underlying store.
        Specified by:
        getStatistics in interface CacheStoreAdapter
        Parameters:
        scope - scope to inspect
        Returns:
        the statistics