public class CacheWriterAdapter<K,V> extends Object implements CacheWriter<K,V>
CacheWriter
with empty implementations. Applications can subclass this class and
only override the methods for the events of interest.Constructor and Description |
---|
CacheWriterAdapter() |
Modifier and Type | Method and Description |
---|---|
void |
beforeCreate(EntryEvent<K,V> event)
Called before an entry is created.
|
void |
beforeDestroy(EntryEvent<K,V> event)
Called before an entry is destroyed.
|
void |
beforeRegionClear(RegionEvent<K,V> event)
Called before a region is cleared.
|
void |
beforeRegionDestroy(RegionEvent<K,V> event)
Called before a region is destroyed.
|
void |
beforeUpdate(EntryEvent<K,V> event)
Called before an entry is updated.
|
void |
close()
Called when the region containing this callback is closed or destroyed, when
the cache is closed, or when a callback is removed from a region
using an
AttributesMutator . |
public void beforeCreate(EntryEvent<K,V> event) throws CacheWriterException
CacheWriter
create
, a put
, or a get
.
The CacheWriter
can determine whether this value comes from a
get
or not by evaluating the Operation
's Operation.isLoad()
method.
The entry being created may already exist in the local cache where this CacheWriter
is installed, but it does not yet exist in the cache where the operation was initiated.beforeCreate
in interface CacheWriter<K,V>
event
- an EntryEvent that provides information about the operation in progressCacheWriterException
- if thrown will abort the operation in progress,
and the exception will be propagated back to caller that initiated
the operationRegion.create(Object, Object)
,
Region.put(Object, Object)
,
Region.get(Object)
public void beforeDestroy(EntryEvent<K,V> event) throws CacheWriterException
CacheWriter
Region.localDestroy(Object)
.beforeDestroy
in interface CacheWriter<K,V>
event
- an EntryEvent that provides information about the operation in progressCacheWriterException
- if thrown will abort the operation in progress,
and the exception will be propagated back to caller that initiated
the operationRegion.destroy(Object)
public void beforeRegionDestroy(RegionEvent<K,V> event) throws CacheWriterException
CacheWriter
CacheWriter
will not additionally be called for each entry that is destroyed
in the region as a result of a region destroy. If the region's
subregions have CacheWriter
s installed, then they
will be called for the cascading subregion destroys.
This method is not called as a result of
Region.close()
, Cache.close(boolean)
, or Region.localDestroyRegion()
. However, the
Region.close()
method is invoked regardless of whether a
region is destroyed locally. A non-local region destroy results
in an invocation of CacheWriter.beforeRegionDestroy(com.gemstone.gemfire.cache.RegionEvent<K, V>)
followed by an
invocation of Region.close()
.
WARNING: This method should not destroy or create any regions itself or a deadlock will occur.
beforeRegionDestroy
in interface CacheWriter<K,V>
event
- a RegionEvent that provides information about the operationCacheWriterException
- if thrown, will abort the operation in progress, and the
exception will be propagated back to the caller that
initiated the operationRegion.destroyRegion()
public void beforeRegionClear(RegionEvent<K,V> event) throws CacheWriterException
CacheWriter
CacheWriter
will not additionally be called for each entry that is cleared
in the region as a result of a region clear.
WARNING: This method should not clear/destroy any regions
beforeRegionClear
in interface CacheWriter<K,V>
event
- a RegionEvent that provides information about the operationCacheWriterException
- if thrown, will abort the operation in progress, and the
exception will be propagated back to the caller that
initiated the operationRegion.clear()
public void beforeUpdate(EntryEvent<K,V> event) throws CacheWriterException
CacheWriter
put
or a get
that causes the loader to update an existing entry.
The entry previously existed in the cache where the operation was
initiated, although the old value may have been null. The entry being
updated may or may not exist in the local cache where the CacheWriter is
installed.beforeUpdate
in interface CacheWriter<K,V>
event
- an EntryEvent that provides information about the operation in progressCacheWriterException
- if thrown will abort the operation in progress,
and the exception will be propagated back to caller that initiated
the operationRegion.put(Object, Object)
,
Region.get(Object)
public void close()
CacheCallback
AttributesMutator
.
Implementations should cleanup any external resources such as database connections. Any runtime exceptions this method throws will be logged.
It is possible for this method to be called multiple times on a single callback instance, so implementations must be tolerant of this.
close
in interface CacheCallback
RegionService.close()
,
Region.close()
,
Region.localDestroyRegion()
,
Region.destroyRegion()
,
AttributesMutator
Copyright © 1997-2017 Pivotal Software, Inc. All rights reserved.