Class AbstractMapBasedSyncCache<C extends Map<Object,Object>>

java.lang.Object
io.micronaut.cache.AbstractMapBasedSyncCache<C>
Type Parameters:
C - the native cache object, such that C extends Map.
All Implemented Interfaces:
Cache<C>, SyncCache<C>
Direct Known Subclasses:
HazelcastSyncCache, InfinispanSyncCache

public abstract class AbstractMapBasedSyncCache<C extends Map<Object,Object>> extends Object implements SyncCache<C>
Abstract SyncCache implementation that relies on a cache object that implements the Map interface.
Since:
1.3.0
Author:
Álvaro Sánchez-Mariscal
  • Constructor Details

    • AbstractMapBasedSyncCache

      public AbstractMapBasedSyncCache(io.micronaut.core.convert.ConversionService conversionService, C nativeCache)
      Parameters:
      conversionService - the conversion service
      nativeCache - the native cache
  • Method Details

    • getConversionService

      public io.micronaut.core.convert.ConversionService getConversionService()
      Returns:
      The conversion service
    • get

      @NonNull public <T> Optional<T> get(@NonNull Object key, @NonNull io.micronaut.core.type.Argument<T> requiredType)
      Description copied from interface: SyncCache
      Resolve the given value for the given key.
      Specified by:
      get in interface SyncCache<C extends Map<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - The cache key
      requiredType - 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> T get(@NonNull Object key, @NonNull io.micronaut.core.type.Argument<T> requiredType, @NonNull Supplier<T> supplier)
      Description copied from interface: SyncCache
      Resolve the given value for the given key. If the value is not found the specified Supplier will be invoked and the return value cached.
      Specified by:
      get in interface SyncCache<C extends Map<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - The cache key
      requiredType - The required type
      supplier - 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

      @NonNull public <T> Optional<T> putIfAbsent(@NonNull Object key, @NonNull T value)
      Description copied from interface: SyncCache

      Cache the specified value using the specified key if it is not already present.

      Specified by:
      putIfAbsent in interface SyncCache<C extends Map<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - the key with which the specified value is to be associated
      value - 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
    • putIfAbsent

      @NonNull public <T> T putIfAbsent(@NonNull Object key, @NonNull Supplier<T> value)
      Description copied from interface: SyncCache

      Cache the supplied value using the specified key if it is not already present.

      Specified by:
      putIfAbsent in interface SyncCache<C extends Map<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - the key with which the specified value is to be associated
      value - the value supplier to be associated with the specified key
      Returns:
      An optional of the existing value or the new value returned by the supplier
    • put

      public void put(@NonNull Object key, @NonNull Object value)
      Description copied from interface: SyncCache

      Cache the specified value using the specified key.

      Specified by:
      put in interface SyncCache<C extends Map<Object,Object>>
      Parameters:
      key - the key with which the specified value is to be associated
      value - the value to be associated with the specified key
    • invalidate

      public void invalidate(@NonNull Object key)
      Description copied from interface: SyncCache
      Invalidate the value for the given key.
      Specified by:
      invalidate in interface SyncCache<C extends Map<Object,Object>>
      Parameters:
      key - The key to invalid
    • invalidateAll

      public void invalidateAll()
      Description copied from interface: SyncCache
      Invalidate all cached values within this cache.
      Specified by:
      invalidateAll in interface SyncCache<C extends Map<Object,Object>>
    • getName

      public abstract String getName()
      Specified by:
      getName in interface Cache<C extends Map<Object,Object>>
      Returns:
      The name of the cache
    • getNativeCache

      public C getNativeCache()
      Specified by:
      getNativeCache in interface Cache<C extends Map<Object,Object>>
      Returns:
      The native cache implementation