From 9bfe0f5b69905f85ac91e8f16e4091908cf9f188 Mon Sep 17 00:00:00 2001 From: costin Date: Thu, 15 Jul 2010 21:34:21 +0300 Subject: [PATCH] + various improvements to gemfire template --- .../springframework/data/gemfire/GemfireCallback.java | 3 ++- .../springframework/data/gemfire/GemfireTemplate.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/GemfireCallback.java b/src/main/java/org/springframework/data/gemfire/GemfireCallback.java index 73f11dfe..5b8877cc 100644 --- a/src/main/java/org/springframework/data/gemfire/GemfireCallback.java +++ b/src/main/java/org/springframework/data/gemfire/GemfireCallback.java @@ -40,5 +40,6 @@ public interface GemfireCallback { * @param region GemFire Region * @return a result object, or null if none */ - T doInGemfire(Region region) throws GemFireCheckedException, GemFireException; + @SuppressWarnings("unchecked") + T doInGemfire(Region region) throws GemFireCheckedException, GemFireException; } diff --git a/src/main/java/org/springframework/data/gemfire/GemfireTemplate.java b/src/main/java/org/springframework/data/gemfire/GemfireTemplate.java index 56b33d1b..76d4b8cb 100644 --- a/src/main/java/org/springframework/data/gemfire/GemfireTemplate.java +++ b/src/main/java/org/springframework/data/gemfire/GemfireTemplate.java @@ -28,6 +28,7 @@ import org.springframework.util.ClassUtils; import com.gemstone.gemfire.GemFireCheckedException; import com.gemstone.gemfire.GemFireException; import com.gemstone.gemfire.cache.Region; +import com.gemstone.gemfire.cache.query.SelectResults; /** * Helper class that simplifies GemFire data access code and converts {@link GemFireCheckedException} and @@ -85,6 +86,14 @@ public class GemfireTemplate extends GemfireAccessor { return this.exposeNativeRegion; } + public SelectResults query(final String query) { + return execute(new GemfireCallback>() { + @SuppressWarnings("unchecked") + public SelectResults doInGemfire(Region region) throws GemFireCheckedException, GemFireException { + return region.query(query); + } + }); + } public T execute(GemfireCallback action) throws DataAccessException { return execute(action, isExposeNativeRegion()); @@ -152,7 +161,7 @@ public class GemfireTemplate extends GemfireAccessor { return (proxy == args[0]); } else if (method.getName().equals("hashCode")) { - // Use hashCode of PersistenceManager proxy. + // Use hashCode of region proxy. return System.identityHashCode(proxy); } else if (method.getName().equals("close")) {