# Package org.codehaus.groovy.runtime.memoize

- Interface Summary
  Interface | Description
  --- | ---
  EvictableCache | Represents an evictable memoize cache with its essential methods
  EvictableCache.Action | Represents the action to deal with the cache
  FlexibleCache | An EvictableCache supporting a getAndPut variant with additional control over caching.
  MemoizeCache | Represents a memoize cache with its essential methods
  MemoizeCache.ValueProvider | Represents a provider used to create value
  ValueConvertable | To support caches whose values are convertable, e.g.

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

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