org.springframework.cache.guava

## Class GuavaCache

- java.lang.Object
- - org.springframework.cache.guava.GuavaCache

- All Implemented Interfaces:
    Cache

      public class GuavaCache
      extends Object
      implements Cache

  Spring `Cache` adapter implementation on top of a Guava `Cache` instance.

  Requires Google Guava 12.0 or higher.

  Since:
    4.0
  Author:
    Juergen Hoeller

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.springframework.cache.Cache

      `Cache.ValueWrapper`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GuavaCache(String name, com.google.common.cache.Cache<Object,Object> cache)` Create a `GuavaCache` instance.
    `GuavaCache(String name, com.google.common.cache.Cache<Object,Object> cache, boolean allowNullValues)` Create a `GuavaCache` instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Remove all mappings from the cache.
    `void` | `evict(Object key)` Evict the mapping for this key from this cache if it is present.
    `protected Object` | `fromStoreValue(Object storeValue)` Convert the given value from the internal store to a user value returned from the get method (adapting `null`).
    `Cache.ValueWrapper` | `get(Object key)` Return the value to which this cache maps the specified key.
    `<T> T` | `get(Object key, Class<T> type)` Return the value to which this cache maps the specified key, generically specifying a type that return value will be cast to.
    `String` | `getName()` Return the cache name.
    `com.google.common.cache.Cache<Object,Object>` | `getNativeCache()` Return the the underlying native cache provider.
    `boolean` | `isAllowNullValues()`
    `void` | `put(Object key, Object value)` Associate the specified value with the specified key in this cache.
    `protected Object` | `toStoreValue(Object userValue)` Convert the given user value, as passed into the put method, to a value in the internal store (adapting `null`).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GuavaCache

          public GuavaCache(String name,
                            com.google.common.cache.Cache<Object,Object> cache)

      Create a `GuavaCache` instance.
      Parameters:
        `name` - the name of the cache
        `cache` - backing Guava Cache instance

    - #### GuavaCache

          public GuavaCache(String name,
                            com.google.common.cache.Cache<Object,Object> cache,
                            boolean allowNullValues)

      Create a `GuavaCache` instance.
      Parameters:
        `name` - the name of the cache
        `cache` - backing Guava Cache instance
        `allowNullValues` - whether to accept and convert null values for this cache

  - ### Method Detail

    - #### getName

          public final String getName()

      Description copied from interface: `Cache`
      Return the cache name.
      Specified by:
        `getName` in interface `Cache`

    - #### getNativeCache

          public final com.google.common.cache.Cache<Object,Object> getNativeCache()

      Description copied from interface: `Cache`
      Return the the underlying native cache provider.
      Specified by:
        `getNativeCache` in interface `Cache`

    - #### isAllowNullValues

          public final boolean isAllowNullValues()

    - #### get

          public Cache.ValueWrapper get(Object key)

      Description copied from interface: `Cache`
      Return the value to which this cache maps the specified key.

      Returns `null` if the cache contains no mapping for this key; otherwise, the cached value (which may be `null` itself) will be returned in a `Cache.ValueWrapper`.

      Specified by:
        `get` in interface `Cache`
      Parameters:
        `key` - the key whose associated value is to be returned
      Returns:
        the value to which this cache maps the specified key, contained within a `Cache.ValueWrapper` which may also hold a cached `null` value. A straight `null` being returned means that the cache contains no mapping for this key.
      See Also:
        `Cache.get(Object, Class)`

    - #### get

          public <T> T get(Object key,
                           Class<T> type)

      Description copied from interface: `Cache`
      Return the value to which this cache maps the specified key, generically specifying a type that return value will be cast to.

      Note: This variant of `get` does not allow for differentiating between a cached `null` value and no cache entry found at all. Use the standard `Cache.get(Object)` variant for that purpose instead.

      Specified by:
        `get` in interface `Cache`
      Parameters:
        `key` - the key whose associated value is to be returned
        `type` - the required type of the returned value (may be `null` to bypass a type check; in case of a `null` value found in the cache, the specified type is irrelevant)
      Returns:
        the value to which this cache maps the specified key (which may be `null` itself), or also `null` if the cache contains no mapping for this key
      See Also:
        `Cache.get(Object)`

    - #### put

          public void put(Object key,
                          Object value)

      Description copied from interface: `Cache`
      Associate the specified value with the specified key in this cache.

      If the cache previously contained a mapping for this key, the old value is replaced by the specified value.

      Specified by:
        `put` in interface `Cache`
      Parameters:
        `key` - the key with which the specified value is to be associated
        `value` - the value to be associated with the specified key

    - #### evict

          public void evict(Object key)

      Description copied from interface: `Cache`
      Evict the mapping for this key from this cache if it is present.
      Specified by:
        `evict` in interface `Cache`
      Parameters:
        `key` - the key whose mapping is to be removed from the cache

    - #### clear

          public void clear()

      Description copied from interface: `Cache`
      Remove all mappings from the cache.
      Specified by:
        `clear` in interface `Cache`

    - #### fromStoreValue

          protected Object fromStoreValue(Object storeValue)

      Convert the given value from the internal store to a user value returned from the get method (adapting `null`).
      Parameters:
        `storeValue` - the store value
      Returns:
        the value to return to the user

    - #### toStoreValue

          protected Object toStoreValue(Object userValue)

      Convert the given user value, as passed into the put method, to a value in the internal store (adapting `null`).
      Parameters:
        `userValue` - the given user value
      Returns:
        the value to store