Interface Cache<K,V>

Type Parameters:
K - the type of keys maintained by this cache
V - the type of mapped values
All Known Implementing Classes:
CaffeineCache

public interface Cache<K,V>
A semi-persistent mapping from keys to values.
Author:
Simon Legner
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    get(K key)
    Fetches the key from the cache
    static <K, V> Cache<K,V>
    newCache(int timeout)
    Creates a new cache with the specified timeout.
    void
    put(K key, V value)
    Stores a binding for the key and the value in the cache
    void
    remove(K key)
    Removes the binding for the key from the cache
    int
    Returns the number of bindings in this cache
  • Method Details

    • newCache

      static <K, V> Cache<K,V> newCache(int timeout) throws NoSuchElementException
      Creates a new cache with the specified timeout.

      The cache implementation is obtained using ServiceLoader. To create your own implementation, implement CacheSupplier and register it using the /META-INF/services/waffle.util.cache.CacheSupplier file on your classpath.

      Type Parameters:
      K - the type of keys maintained by this cache
      V - the type of mapped values
      Parameters:
      timeout - timeout in seconds
      Returns:
      a new cache
      Throws:
      NoSuchElementException - if no cache can be instantiated, use Throwable.getSuppressed() to obtain details.
    • get

      V get(K key)
      Fetches the key from the cache
      Parameters:
      key - the key
      Returns:
      the corresponding value
      See Also:
    • put

      void put(K key, V value)
      Stores a binding for the key and the value in the cache
      Parameters:
      key - the key
      value - the value
      See Also:
    • remove

      void remove(K key)
      Removes the binding for the key from the cache
      Parameters:
      key - the key
      See Also:
    • size

      int size()
      Returns the number of bindings in this cache
      Returns:
      the size
      See Also: