Interface CacheWriter<K,V>

Type Parameters:
K - the most general type of keys this writer can write; for example Object if any key is acceptable
V - the most general type of values this write can write; for example Object if any value is acceptable
All Known Implementing Classes:
DisabledWriter

@ThreadSafe public interface CacheWriter<K,V>
Communicates the write or deletion of a value, based on a key, to an external resource. A writer is notified by the cache each time an entry is explicitly created or modified, or removed for any reason. The writer is not notified when an entry is loaded or computed.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    delete(K key, V value, RemovalCause cause)
    Deletes the value corresponding to the key from the external resource.
    static <K, V> CacheWriter<K,V>
    Returns a writer that does nothing.
    void
    write(K key, V value)
    Writes the value corresponding to the key to the external resource.
  • Method Details

    • write

      void write(@Nonnull K key, @Nonnull V value)
      Writes the value corresponding to the key to the external resource. The cache will communicate a write when an entry in the cache is inserted or updated explicitly. The implicit creation of an entry due to being loaded when absent is not communicated.
      Parameters:
      key - the non-null key whose value should be written
      value - the value associated with key that should be written
      Throws:
      RuntimeException - or Error, in which case the mapping is unchanged
    • delete

      void delete(@Nonnull K key, @Nullable V value, @Nonnull RemovalCause cause)
      Deletes the value corresponding to the key from the external resource. The cache will communicate a delete when the entry is explicitly removed or evicted.
      Parameters:
      key - the non-null key whose value was removed
      value - the value associated with key, or null if collected
      cause - the reason for which the entry was removed
      Throws:
      RuntimeException - or Error, in which case the mapping is unchanged
    • disabledWriter

      @Nonnull static <K, V> CacheWriter<K,V> disabledWriter()
      Returns a writer that does nothing.
      Type Parameters:
      K - the type of keys
      V - the type of values
      Returns:
      a writer that performs no operations