Interface CacheLoaderWriter<K,V>
-
- Type Parameters:
K- the key type processed by this loader-writerV- the value type processed by this loader-writer
public interface CacheLoaderWriter<K,V>A CacheLoaderWriter is used to keep aCachein sync with another system.Instances of this class should be thread safe.
Any
Exceptionthrown by the loading methods of this interface will be wrapped into aCacheLoadingExceptionby theCacheand will need to be handled by the user. Anyjava.lang.Exceptionthrown by the writing methods will be wrapped into aCacheWritingException.A similar thing will happen for the bulk version of the loading and writing methods and create the bulk version of the related exceptions.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voiddelete(K key)Deletes a single mapping.default voiddeleteAll(java.lang.Iterable<? extends K> keys)Deletes multiple mappings.Vload(K key)Loads a single value.default java.util.Map<K,V>loadAll(java.lang.Iterable<? extends K> keys)Loads multiple values.voidwrite(K key, V value)Writes a single mapping.default voidwriteAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)Writes multiple mappings.
-
-
-
Method Detail
-
load
V load(K key) throws java.lang.Exception
Loads a single value.When used with a cache any exception thrown by this method will be thrown back to the user as a
CacheLoadingException.- Parameters:
key- the key for which to load the value- Returns:
- the loaded value
- Throws:
java.lang.Exception- if the value cannot be loaded
-
loadAll
default java.util.Map<K,V> loadAll(java.lang.Iterable<? extends K> keys) throws BulkCacheLoadingException, java.lang.Exception
Loads multiple values.The returned
Mapshould containnullvalues for the keys that could not be found.When used with a cache the mappings that will be installed are the keys as found in
keysmapped to the results ofloadAllResult.get(key). Any other mappings will be ignored.By using a
BulkCacheLoadingExceptionimplementors can report partial success. Any other exceptions will be thrown back to theCacheuser through aBulkCacheLoadingExceptionindicating a complete failure.- Parameters:
keys- the keys to load //Which null or not present?- Returns:
- the
Mapof values for each key passed in, where no mapping means no value to map. - Throws:
BulkCacheLoadingException- in case of partial successjava.lang.Exception- in case no values could be loaded
-
write
void write(K key, V value) throws java.lang.Exception
Writes a single mapping.The write may represent a brand new value or an update to an existing value.
When used with a
Cacheany exception thrown by this method will be thrown back to the user through aCacheWritingException.- Parameters:
key- the key to writevalue- the value to write- Throws:
java.lang.Exception- if the write operation failed
-
writeAll
default void writeAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries) throws BulkCacheWritingException, java.lang.Exception
Writes multiple mappings.The writes may represent a mix of brand new values and updates to existing values.
By using a
BulkCacheWritingExceptionimplementors can report partial success. Any other exception will be thrown back to theCacheuser through aBulkCacheWritingExceptionindicating a complete failure.- Parameters:
entries- the mappings to write- Throws:
BulkCacheWritingException- in case of partial successjava.lang.Exception- in case no values could be written
-
delete
void delete(K key) throws java.lang.Exception
Deletes a single mapping.- Parameters:
key- the key to delete- Throws:
java.lang.Exception- if the write operation failed
-
deleteAll
default void deleteAll(java.lang.Iterable<? extends K> keys) throws BulkCacheWritingException, java.lang.Exception
Deletes multiple mappings.By using a
BulkCacheWritingExceptionimplementors can report partial success. Any other exception will be thrown back to theCacheuser through aBulkCacheWritingExceptionindicating all deletes failed.- Parameters:
keys- the keys to delete- Throws:
BulkCacheWritingException- in case of partial successjava.lang.Exception- in case no values can be loaded
-
-