Package io.micronaut.cache
Class DelegatingAsyncCache<C>
java.lang.Object
io.micronaut.cache.DelegatingAsyncCache<C>
- Type Parameters:
C
- The cache type
- All Implemented Interfaces:
AsyncCache<C>
,Cache<C>
An asynchronous cache that delegates blocking cache operations
to the provided executor.
- Since:
- 1.3.0
- Author:
- James Kleeh
-
Constructor Summary
ConstructorDescriptionDelegatingAsyncCache
(SyncCache<C> delegate, ExecutorService executorService) -
Method Summary
Modifier and TypeMethodDescription<T> CompletableFuture<Optional<T>>
Resolve the given value for the given key.<T> CompletableFuture<T>
Resolve the given value for the given key.getName()
invalidate
(Object key) Invalidate the value for the given key.Invalidate all cached values within this cache.Cache the specified value using the specified key.<T> CompletableFuture<Optional<T>>
putIfAbsent
(Object key, T value) Cache the specified value using the specified key if it is not already present.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.cache.AsyncCache
get, get
Methods inherited from interface io.micronaut.cache.Cache
getCacheInfo
-
Constructor Details
-
DelegatingAsyncCache
- Parameters:
delegate
- The delegate blocking cacheexecutorService
- The executor service to run the blocking operations on
-
-
Method Details
-
get
public <T> CompletableFuture<Optional<T>> get(Object key, io.micronaut.core.type.Argument<T> requiredType) Description copied from interface:AsyncCache
Resolve the given value for the given key.- Specified by:
get
in interfaceAsyncCache<C>
- Type Parameters:
T
- The concrete type- Parameters:
key
- The cache keyrequiredType
- The required type- Returns:
- An optional containing the value if it exists and is able to be converted to the specified type
-
get
public <T> CompletableFuture<T> get(Object key, io.micronaut.core.type.Argument<T> requiredType, Supplier<T> supplier) Description copied from interface:AsyncCache
Resolve the given value for the given key. If the value is not found the specifiedSupplier
will be invoked and the return value cached.- Specified by:
get
in interfaceAsyncCache<C>
- Type Parameters:
T
- The concrete type- Parameters:
key
- The cache keyrequiredType
- The required typesupplier
- The supplier that should be invoked if the value is not found- Returns:
- An optional containing the value if it exists and is able to be converted to the specified type
-
putIfAbsent
Description copied from interface:AsyncCache
Cache the specified value using the specified key if it is not already present.
- Specified by:
putIfAbsent
in interfaceAsyncCache<C>
- Type Parameters:
T
- The concrete type- Parameters:
key
- The key with which the specified value is to be associatedvalue
- The value to be associated with the specified key- Returns:
- An optional of the existing value or
Optional.empty()
if the specified value parameter was cached
-
getName
-
getNativeCache
- Specified by:
getNativeCache
in interfaceCache<C>
- Returns:
- The native cache implementation
-
put
Description copied from interface:AsyncCache
Cache the specified value using the specified key.
- Specified by:
put
in interfaceAsyncCache<C>
- Parameters:
key
- The key with which the specified value is to be associatedvalue
- The value to be associated with the specified key- Returns:
- A future with a boolean indicating whether the operation was successful or not
-
invalidate
Description copied from interface:AsyncCache
Invalidate the value for the given key.- Specified by:
invalidate
in interfaceAsyncCache<C>
- Parameters:
key
- The key to invalid- Returns:
- A future with a boolean indicating whether the operation was succesful or not
-
invalidateAll
Description copied from interface:AsyncCache
Invalidate all cached values within this cache.- Specified by:
invalidateAll
in interfaceAsyncCache<C>
- Returns:
- A future with a boolean indicating whether the operation was succesful or not
-