Class GuavaCacheStoreAdapter

java.lang.Object
org.craftercms.core.cache.impl.store.guava.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
  • Field Details

  • Constructor Details

    • GuavaCacheStoreAdapter

      public GuavaCacheStoreAdapter()
  • Method Details

    • 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
    • hasScope

      public boolean hasScope(String scope)
      Description copied from interface: CacheStoreAdapter
      Returns true if the specified scope exists in the cache.
      Specified by:
      hasScope in interface CacheStoreAdapter
    • getScopes

      public Collection<String> getScopes()
      Returns the scopes managed by the underlying store.
      Specified by:
      getScopes in interface CacheStoreAdapter
    • 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
    • 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
    • put

      public void put(CacheItem item)
      Puts an item in a scope. The scope is obtained through CacheItem.getScope().
      Specified by:
      put in interface CacheStoreAdapter
      Parameters:
      item - the item to put
    • 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