Class CacheInterceptorAdapter<K,V>
- java.lang.Object
-
- org.apache.ignite.cache.CacheInterceptorAdapter<K,V>
-
- All Implemented Interfaces:
Serializable
,CacheInterceptor<K,V>
public class CacheInterceptorAdapter<K,V> extends Object implements CacheInterceptor<K,V>
Cache interceptor convenience adapter. It provides no-op implementations for all interceptor callbacks.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CacheInterceptorAdapter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
onAfterPut(javax.cache.Cache.Entry<K,V> entry)
This method is called after new value has been stored.void
onAfterRemove(javax.cache.Cache.Entry<K,V> entry)
This method is called after value has been removed.V
onBeforePut(javax.cache.Cache.Entry<K,V> entry, V newVal)
This method is called withinIgniteCache.put(Object, Object)
and similar operations before new value is stored in cache.@Nullable IgniteBiTuple<Boolean,V>
onBeforeRemove(javax.cache.Cache.Entry<K,V> entry)
This method is called withinIgniteCache.remove(Object)
and similar operations to provide control over returned value.V
onGet(K key, V val)
This method is called withinIgniteCache.get(Object)
and similar operations to provide control over returned value.
-
-
-
Method Detail
-
onGet
@Nullable public V onGet(K key, V val)
This method is called withinIgniteCache.get(Object)
and similar operations to provide control over returned value.If this method returns
null
, thenget()
operation results innull
as well.This method should not throw any exception.
- Specified by:
onGet
in interfaceCacheInterceptor<K,V>
- Parameters:
key
- Key.val
- Value mapped tokey
at the moment ofget()
operation.- Returns:
- The new value to be returned as result of
get()
operation. - See Also:
Cache.get(Object)
-
onBeforePut
@Nullable public V onBeforePut(javax.cache.Cache.Entry<K,V> entry, V newVal)
This method is called withinIgniteCache.put(Object, Object)
and similar operations before new value is stored in cache.Implementations should not execute any complex logic, including locking, networking or cache operations, as it may lead to deadlock, since this method is called from sensitive synchronization blocks.
This method should not throw any exception.
IMPORTANT: for this method to take affect,
newVal
and the returned value have to be different instances. I.e., you should not mutatenewVal
directly, but instead create a copy, update it and then return from the interceptor.- Specified by:
onBeforePut
in interfaceCacheInterceptor<K,V>
- Parameters:
entry
- Old entry. IfCacheConfiguration.isCopyOnRead()
istrue
, then is copy.newVal
- New value.- Returns:
- Value to be put to cache. Returning
null
cancels the update. - See Also:
IgniteCache.put(Object, Object)
-
onAfterPut
public void onAfterPut(javax.cache.Cache.Entry<K,V> entry)
This method is called after new value has been stored.Implementations should not execute any complex logic, including locking, networking or cache operations, as it may lead to deadlock, since this method is called from sensitive synchronization blocks.
This method should not throw any exception.
- Specified by:
onAfterPut
in interfaceCacheInterceptor<K,V>
- Parameters:
entry
- Current entry. IfCacheConfiguration.isCopyOnRead()
istrue
then entry is a copy.
-
onBeforeRemove
@Nullable public @Nullable IgniteBiTuple<Boolean,V> onBeforeRemove(javax.cache.Cache.Entry<K,V> entry)
This method is called withinIgniteCache.remove(Object)
and similar operations to provide control over returned value.Implementations should not execute any complex logic, including locking, networking or cache operations, as it may lead to deadlock, since this method is called from sensitive synchronization blocks.
This method should not throw any exception.
- Specified by:
onBeforeRemove
in interfaceCacheInterceptor<K,V>
- Parameters:
entry
- Old entry. IfCacheConfiguration.isCopyOnRead()
istrue
then entry is a copy.- Returns:
- Tuple. The first value is the flag whether remove should be cancelled or not.
The second is the value to be returned as result of
remove()
operation, may benull
. - See Also:
IgniteCache.remove(Object)
-
onAfterRemove
public void onAfterRemove(javax.cache.Cache.Entry<K,V> entry)
This method is called after value has been removed.Implementations should not execute any complex logic, including locking, networking or cache operations, as it may lead to deadlock, since this method is called from sensitive synchronization blocks.
This method should not throw any exception.
- Specified by:
onAfterRemove
in interfaceCacheInterceptor<K,V>
- Parameters:
entry
- Removed entry. IfCacheConfiguration.isCopyOnRead()
istrue
then entry is a copy.
-
-