# Package org.codehaus.groovy.runtime.memoize

- Interface Summary
  Interface | Description
  --- | ---
  ConcurrentCommonCache.Action<K,V,R> |
  EvictableCache<K,V> | Represents an evictable memoize cache with its essential methods
  MemoizeCache<K,V> | Represents a memoize cache with its essential methods
  MemoizeCache.ValueProvider<K,V> | Represents a provider used to create value
  ValueConvertable<V1,V2> | To support caches whose values are convertable, e.g.

- Class Summary
  Class | Description
  --- | ---
  CommonCache<K,V> | Represents a simple key-value cache, which is NOT thread safe and backed by a `Map` instance
  ConcurrentCommonCache<K,V> | Represents a simple key-value cache, which is thread safe and backed by a `Map` instance
  ConcurrentSoftCache<K,V> | Represents concurrent cache holding SoftReference instance as value
  LRUCache<K,V> | A cache backed by a ConcurrentLinkedHashMap
  Memoize | Implements memoize for Closures.
  NullProtectionStorage | A NullObject pattern implementation for ProtectionStorage Doesn't protect any resources.
  UnlimitedConcurrentCache<K,V> | A cache backed by a ConcurrentHashMap

- Enum Summary
  Enum | Description
  --- | ---
  EvictableCache.EvictionStrategy | Represents a eviction strategy for the cache with limited size