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