Interface CacheWriter<K,V>
- Type Parameters:
K
- the most general type of keys this writer can write; for exampleObject
if any key is acceptableV
- the most general type of values this write can write; for exampleObject
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 TypeMethodDescriptionvoid
delete
(K key, V value, RemovalCause cause) Deletes the value corresponding to thekey
from the external resource.static <K,
V> CacheWriter<K, V> Returns a writer that does nothing.void
Writes the value corresponding to thekey
to the external resource.
-
Method Details
-
write
Writes the value corresponding to thekey
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 writtenvalue
- the value associated withkey
that should be written- Throws:
RuntimeException
- or Error, in which case the mapping is unchanged
-
delete
Deletes the value corresponding to thekey
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 removedvalue
- the value associated withkey
, ornull
if collectedcause
- the reason for which the entry was removed- Throws:
RuntimeException
- or Error, in which case the mapping is unchanged
-
disabledWriter
Returns a writer that does nothing.- Type Parameters:
K
- the type of keysV
- the type of values- Returns:
- a writer that performs no operations
-