GemFire 7.0

com.gemstone.gemfire.cache.util
Class CacheWriterAdapter<K,V>

java.lang.Object
  extended by com.gemstone.gemfire.cache.util.CacheWriterAdapter<K,V>
All Implemented Interfaces:
CacheCallback, CacheWriter<K,V>

public class CacheWriterAdapter<K,V>
extends Object
implements CacheWriter<K,V>

Utility class that implements all methods in CacheWriter with empty implementations. Applications can subclass this class and only override the methods for the events of interest.

Since:
3.0

Constructor Summary
CacheWriterAdapter()
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CacheWriterAdapter

public CacheWriterAdapter()
Method Detail

beforeCreate

public void beforeCreate(EntryEvent<K,V> event)
                  throws CacheWriterException
Description copied from interface: CacheWriter
Called before an entry is created. Entry creation is initiated by a 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.

Specified by:
beforeCreate in interface CacheWriter<K,V>
Parameters:
event - an EntryEvent that provides information about the operation in progress
Throws:
CacheWriterException - if thrown will abort the operation in progress, and the exception will be propagated back to caller that initiated the operation
See Also:
Region.create(Object, Object), Region.put(Object, Object), Region.get(Object)

beforeDestroy

public void beforeDestroy(EntryEvent<K,V> event)
                   throws CacheWriterException
Description copied from interface: CacheWriter
Called before an entry is destroyed. The entry being destroyed may or may not exist in the local cache where the CacheWriter is installed. This method is not called as a result of expiration or Region.localDestroy(Object).

Specified by:
beforeDestroy in interface CacheWriter<K,V>
Parameters:
event - an EntryEvent that provides information about the operation in progress
Throws:
CacheWriterException - if thrown will abort the operation in progress, and the exception will be propagated back to caller that initiated the operation
See Also:
Region.destroy(Object)

beforeRegionDestroy

public void beforeRegionDestroy(RegionEvent<K,V> event)
                         throws CacheWriterException
Description copied from interface: CacheWriter
Called before a region is destroyed. The 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 CacheWriters installed, then they will be called for the cascading subregion destroys. This method is not called as a result of expiration 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) followed by an invocation of Region.close().

WARNING: This method should not destroy or create any regions itself or a deadlock will occur.

Specified by:
beforeRegionDestroy in interface CacheWriter<K,V>
Parameters:
event - a RegionEvent that provides information about the operation
Throws:
CacheWriterException - if thrown, will abort the operation in progress, and the exception will be propagated back to the caller that initiated the operation
See Also:
Region.destroyRegion()

beforeRegionClear

public void beforeRegionClear(RegionEvent<K,V> event)
                       throws CacheWriterException
Description copied from interface: CacheWriter
Called before a region is cleared. The 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

Specified by:
beforeRegionClear in interface CacheWriter<K,V>
Parameters:
event - a RegionEvent that provides information about the operation
Throws:
CacheWriterException - if thrown, will abort the operation in progress, and the exception will be propagated back to the caller that initiated the operation
See Also:
Region.clear()

beforeUpdate

public void beforeUpdate(EntryEvent<K,V> event)
                  throws CacheWriterException
Description copied from interface: CacheWriter
Called before an entry is updated. The entry update is initiated by a 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.

Specified by:
beforeUpdate in interface CacheWriter<K,V>
Parameters:
event - an EntryEvent that provides information about the operation in progress
Throws:
CacheWriterException - if thrown will abort the operation in progress, and the exception will be propagated back to caller that initiated the operation
See Also:
Region.put(Object, Object), Region.get(Object)

close

public void close()
Description copied from interface: CacheCallback
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.

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.

Specified by:
close in interface CacheCallback
See Also:
RegionService.close(), Region.close(), Region.localDestroyRegion(), Region.destroyRegion(), AttributesMutator

GemFire 7.0

Copyright © 1997-2012 VMware, Inc. All rights reserved.