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 Detail

      • 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:
        java.lang.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:
        java.lang.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