Package org.postgresql.util

# Class LruCache<Key,Value extends CanEstimateSize>

java.lang.Object
org.postgresql.util.LruCache<Key,Value>

All Implemented Interfaces:
  `Gettable<Key,Value>`

public class LruCache<Key,Value extends CanEstimateSize> extends Object implements Gettable<Key,Value>
Caches values in simple least-recently-accessed order.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `LruCache.CreateAction<Key,Value>`
  When the entry is not present in cache, this create action is used to create one.
  `static interface`
  `LruCache.EvictAction<Value>`
  Action that is invoked when the entry is removed from the cache.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LruCache(int maxSizeEntries, long maxSizeBytes, boolean accessOrder)`
  `LruCache(int maxSizeEntries, long maxSizeBytes, boolean accessOrder, @Nullable LruCache.CreateAction<Key,Value> createAction, @Nullable LruCache.EvictAction<Value> onEvict)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Value`
  `borrow(Key key)`
  Borrows an entry from the cache.
  `@Nullable Value`
  `get(Key key)`
  Returns an entry from the cache.
  `void`
  `put(Key key, Value value)`
  Returns given value to the cache.
  `void`
  `putAll(Map<Key,Value> m)`
  Puts all the values from the given map into the cache.

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

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

- ## Constructor Details

  - ### LruCache

    public LruCache(int maxSizeEntries, long maxSizeBytes, boolean accessOrder)

  - ### LruCache

    public LruCache(int maxSizeEntries, long maxSizeBytes, boolean accessOrder, @Nullable LruCache.CreateAction<Key,Value> createAction, @Nullable LruCache.EvictAction<Value> onEvict)

- ## Method Details

  - ### get

    public @Nullable Value get(Key key)
    Returns an entry from the cache.
    Specified by:
      `get` in interface `Gettable<Key,Value extends CanEstimateSize>`
    Parameters:
      `key` - cache key
    Returns:
      entry from cache or null if cache does not contain given key.

  - ### borrow

    public Value borrow(Key key) throws SQLException
    Borrows an entry from the cache.
    Parameters:
      `key` - cache key
    Returns:
      entry from cache or newly created entry if cache does not contain given key.
    Throws:
      `SQLException` - if entry creation fails

  - ### put

    public void put(Key key, Value value)
    Returns given value to the cache.
    Parameters:
      `key` - key
      `value` - value

  - ### putAll

    public void putAll(Map<Key,Value> m)
    Puts all the values from the given map into the cache.
    Parameters:
      `m` - The map containing entries to put into the cache