Class Cache<K,V>
java.lang.Object
org.glassfish.jersey.internal.util.collection.Cache<K,V>
- Type Parameters:
K
- The type of the key of the cacheV
- The type of the values in the cache
- All Implemented Interfaces:
Function<K,
V>
Cache implementation that relies on FutureTask.
Desired value will only be computed once and computed value stored in the cache.
The implementation is based on an example from the "Java Concurrency in Practice" book
authored by Brian Goetz and company.
- Author:
- Jakub Podlesak
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Should a cycle be detected during computation of a value for given key, this interface allows client code to register a callback that would get invoked in such a case. -
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Cache
Create new cache with given computable to compute values. Detected cycles will be ignored as there is a no-op cycle handler registered by default.- Parameters:
computable
- function generated the new value.
-
Cache
Create new cache with given computable and cycle handler.- Parameters:
computable
- function generated the new value.cycleHandler
- handler used if the thread cycle is met.
-
-
Method Details
-
apply
-
clear
public void clear()Empty cache. -
keys
Get the cache keys- Returns:
-
containsKey
Returns true if the key has already been cached.- Parameters:
key
- item key.- Returns:
- true if given key is present in the cache.
-
remove
Remove item from the cache.- Parameters:
key
- item key.
-
size
public int size()Returns the size of the cache- Returns:
- The number of elements in the cache
-