public class GemfireTemplate extends GemfireAccessor implements GemfireOperations
GemFireCheckedException
and
GemFireException
into Spring DataAccessException
, following the org.springframework.dao
exception hierarchy.
The central method is execute, supporting GemFire access code implementing the GemfireCallback interface.
It provides dedicated handling such that neither the GemfireCallback implementation nor the calling code needs to
explicitly care about handling Region
life-cycle exceptions.
Typically used to implement data access or business logic services that use GemFire within their implementation but
are GemFire-agnostic in their interface. The latter or code calling the latter only have to deal with business
objects, query objects, and org.springframework.dao exceptions.Map
,
GemfireAccessor
,
GemfireOperations
,
Region
,
Query
,
QueryService
,
SelectResults
log
Constructor and Description |
---|
GemfireTemplate() |
GemfireTemplate(Region<K,V> region) |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
boolean |
containsKey(Object key) |
boolean |
containsKeyOnServer(Object key) |
boolean |
containsValue(Object value) |
boolean |
containsValueForKey(Object key) |
<K,V> void |
create(K key,
V value) |
protected <K,V> Region<K,V> |
createRegionProxy(Region<K,V> region)
Create a close-suppressing proxy for the given GemFire Cache
Region . |
<T> T |
execute(GemfireCallback<T> action)
Execute the action specified by the given action object within a Region.
|
<T> T |
execute(GemfireCallback<T> action,
boolean exposeNativeRegion)
Execute the action specified by the given action object within a Region.
|
<E> SelectResults<E> |
find(String queryString,
Object... params)
Executes a GemFire query with the given (optional) parameters and returns the result.
|
<T> T |
findUnique(String queryString,
Object... params)
Executes a GemFire query with the given (optional) parameters and returns the result.
|
<K,V> V |
get(K key) |
<K,V> Map<K,V> |
getAll(Collection<?> keys) |
boolean |
isExposeNativeRegion()
Returns whether to expose the native GemFire Cache Region or a Region proxy to the GemfireCallback code.
|
protected QueryService |
lookupQueryService(Region<?,?> region)
Returns the query service used by the template in its find methods.
|
<K,V> V |
put(K key,
V value) |
<K,V> void |
putAll(Map<? extends K,? extends V> map) |
<K,V> V |
putIfAbsent(K key,
V value) |
<E> SelectResults<E> |
query(String query)
Shortcut for
Region.query(String) method. |
<K,V> V |
remove(K key) |
<K,V> V |
replace(K key,
V value) |
<K,V> boolean |
replace(K key,
V oldValue,
V newValue) |
void |
setExposeNativeRegion(boolean exposeNativeRegion)
Sets whether to expose the native Gemfire Region to GemfireCallback code.
|
convertGemFireAccessException, convertGemFireAccessException, convertGemFireQueryException, getRegion, setRegion
public GemfireTemplate()
public GemfireTemplate(Region<K,V> region)
public void afterPropertiesSet()
afterPropertiesSet
in interface InitializingBean
afterPropertiesSet
in class GemfireAccessor
public void setExposeNativeRegion(boolean exposeNativeRegion)
close
calls.
As there is often a need to cast to a interface, the exposed proxy implements all interfaces
implemented by the original Region
. If this is not sufficient, turn this flag to "true".
exposeNativeRegion
- a boolean value to indicate whether the native GemFire Cache Region should be exposed
to the GemfireCallback.GemfireCallback
public boolean isExposeNativeRegion()
public boolean containsKey(Object key)
containsKey
in interface GemfireOperations
public boolean containsKeyOnServer(Object key)
containsKeyOnServer
in interface GemfireOperations
public boolean containsValue(Object value)
containsValue
in interface GemfireOperations
public boolean containsValueForKey(Object key)
containsValueForKey
in interface GemfireOperations
public <K,V> void create(K key, V value)
create
in interface GemfireOperations
public <K,V> V get(K key)
get
in interface GemfireOperations
public <K,V> Map<K,V> getAll(Collection<?> keys)
getAll
in interface GemfireOperations
public <K,V> V put(K key, V value)
put
in interface GemfireOperations
public <K,V> void putAll(Map<? extends K,? extends V> map)
putAll
in interface GemfireOperations
public <K,V> V putIfAbsent(K key, V value)
putIfAbsent
in interface GemfireOperations
public <K,V> V remove(K key)
remove
in interface GemfireOperations
public <K,V> V replace(K key, V value)
replace
in interface GemfireOperations
public <K,V> boolean replace(K key, V oldValue, V newValue)
replace
in interface GemfireOperations
public <E> SelectResults<E> query(String query)
GemfireOperations
Region.query(String)
method. Filters the values of this region using the predicate given as a string with the syntax of the WHERE clause of the query language.
The predefined variable this may be used inside the predicate to denote the current element being filtered.
This method evaluates the passed in where clause and returns results. It is supported on servers as well as clients.
When executed on a client, this method always runs on the server and returns results.
When invoking this method from the client, applications can pass in a where clause or a complete query.query
in interface GemfireOperations
E
- type parameter specifying the type of the select results.query
- an OQL Query language boolean query predicate.Region.query(String)
public <E> SelectResults<E> find(String queryString, Object... params) throws InvalidDataAccessApiUsageException
GemfireOperations
GemfireOperations.findUnique(String, Object...)
.
As oppose, to the GemfireOperations.query(String)
method, this method allows for more generic queries (against multiple regions even) to be executed.
Note that the local query service is used if the region is configured as a client without any pool configuration or server connectivity - otherwise the query service on the default pool
is being used.find
in interface GemfireOperations
E
- type parameter specifying the type of the select results.queryString
- the OQL query statement to execute.params
- an array of Object values used as arguments to bind to the OQL query parameters (such as $1).SelectResults
instance holding the objects matching the queryInvalidDataAccessApiUsageException
- in case the query returns a single result (not a SelectResults
).QueryService.newQuery(String)
,
Query.execute(Object[])
,
SelectResults
public <T> T findUnique(String queryString, Object... params) throws InvalidDataAccessApiUsageException
GemfireOperations
GemfireOperations.find(String, Object...)
.
As oppose, to the GemfireOperations.query(String)
method, this method allows for more generic queries (against multiple regions even) to be executed.
Note that the local query service is used if the region is configured as a client without any pool configuration or server connectivity - otherwise the query service on the default pool
is being used.findUnique
in interface GemfireOperations
T
- type parameter specifying the returned result type.queryString
- the OQL query statement to execute.params
- an array of Object values used as arguments to bind to the OQL query parameters (such as $1).InvalidDataAccessApiUsageException
- in case the query returns multiple objects (through SelectResults
).QueryService.newQuery(String)
,
Query.execute(Object[])
protected QueryService lookupQueryService(Region<?,?> region)
region
- region to find the local query service fromRegion
,
Region.getRegionService()
,
RegionService.getQueryService()
,
ClientCache.getLocalQueryService()
public <T> T execute(GemfireCallback<T> action) throws DataAccessException
GemfireOperations
execute
in interface GemfireOperations
T
- type parameter specifying the returned result type.action
- callback object that specifies the Gemfire action to execute.null
.DataAccessException
- in case of GemFire errors.public <T> T execute(GemfireCallback<T> action, boolean exposeNativeRegion) throws DataAccessException
GemfireOperations
execute
in interface GemfireOperations
T
- type parameter specifying the returned result type.action
- callback object that specifies the Gemfire action to execute.exposeNativeRegion
- whether to expose the native GemFire region to callback code.null
.DataAccessException
- in case of GemFire errors.protected <K,V> Region<K,V> createRegionProxy(Region<K,V> region)
Region
.
Called by the execute
method.K
- the Region key class type.V
- the Region value class type.region
- the GemFire Cache Region to create a proxy for.Region.close()
,
execute(GemfireCallback, boolean)