From dcab00de1c57a71fce173179f1325c0ca499a7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladimi=CC=81r=20Orany=CC=81?= Date: Mon, 24 Mar 2014 08:54:05 +0100 Subject: [PATCH] turned get methods in EntityTransformationHelper to be compiled static --- .../datastore/DatastoreEntityCoercion.java | 17 +++++++++++++ .../EntityTransformationHelper.groovy | 24 +++++++++---------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/core/src/main/groovyx/gaelyk/datastore/DatastoreEntityCoercion.java b/core/src/main/groovyx/gaelyk/datastore/DatastoreEntityCoercion.java index db78071c..d26f7309 100644 --- a/core/src/main/groovyx/gaelyk/datastore/DatastoreEntityCoercion.java +++ b/core/src/main/groovyx/gaelyk/datastore/DatastoreEntityCoercion.java @@ -9,6 +9,23 @@ public class DatastoreEntityCoercion { + public static enum Proxy { + INSTANCE; + + Entity convert(DatastoreEntity dsEntity){ + return DatastoreEntityCoercion.convert(dsEntity); + } + + public static Object convert(Entity en, Class dsEntityClass, DatastoreEntity dsEntity) throws InstantiationException, IllegalAccessException{ + return DatastoreEntityCoercion.convert(en, dsEntityClass, dsEntity); + } + + public static Object convert(Entity en, Class dsEntityClass) throws InstantiationException, IllegalAccessException{ + return DatastoreEntityCoercion.convert(en, dsEntityClass); + } + + } + public static Entity convert(DatastoreEntity dsEntity){ if(dsEntity == null) return null; diff --git a/core/src/main/groovyx/gaelyk/datastore/EntityTransformationHelper.groovy b/core/src/main/groovyx/gaelyk/datastore/EntityTransformationHelper.groovy index c56de412..86b65064 100644 --- a/core/src/main/groovyx/gaelyk/datastore/EntityTransformationHelper.groovy +++ b/core/src/main/groovyx/gaelyk/datastore/EntityTransformationHelper.groovy @@ -49,37 +49,37 @@ class EntityTransformationHelper { DatastoreExtensions.delete((Entity)DatastoreExtensions.asType(pogo, Entity)) } - @CompileStatic(TypeCheckingMode.SKIP) - static

P get(Class

pogoClass, long key) { + static

> P get(Class

pogoClass, long key) { try { - return DatastoreExtensions.asType(DatastoreExtensions.get(KeyFactory.createKey(pogoClass.simpleName, key)), pogoClass) + Entity entity = DatastoreExtensions.get(KeyFactory.createKey(pogoClass.simpleName, key)) + return (P) DatastoreEntityCoercion.Proxy.INSTANCE.convert(entity, pogoClass) } catch (EntityNotFoundException e) { return null } } - @CompileStatic(TypeCheckingMode.SKIP) - static

P get(Class

pogoClass, String key) { + static

> P get(Class

pogoClass, String key) { try { - return DatastoreExtensions.asType(DatastoreExtensions.get(KeyFactory.createKey(pogoClass.simpleName, key)), pogoClass) + Entity entity = DatastoreExtensions.get(KeyFactory.createKey(pogoClass.simpleName, key)) + return (P) DatastoreEntityCoercion.Proxy.INSTANCE.convert(entity, pogoClass) } catch (EntityNotFoundException e) { return null } } - @CompileStatic(TypeCheckingMode.SKIP) - static

P get(Class

pogoClass, Key parentKey, long key) { + static

> P get(Class

pogoClass, Key parentKey, long key) { try { - return DatastoreExtensions.asType(DatastoreExtensions.get(KeyFactory.createKey(parentKey, pogoClass.simpleName, key)), pogoClass) + Entity entity = DatastoreExtensions.get(KeyFactory.createKey(parentKey, pogoClass.simpleName, key)) + return (P) DatastoreEntityCoercion.Proxy.INSTANCE.convert(entity, pogoClass) } catch (EntityNotFoundException e) { return null } } - @CompileStatic(TypeCheckingMode.SKIP) - static

P get(Class

pogoClass, Key parentKey, String key) { + static

> P get(Class

pogoClass, Key parentKey, String key) { try { - return DatastoreExtensions.asType(DatastoreExtensions.get(KeyFactory.createKey(parentKey, pogoClass.simpleName, key)), pogoClass) + Entity entity = DatastoreExtensions.get(KeyFactory.createKey(parentKey, pogoClass.simpleName, key)) + return (P) DatastoreEntityCoercion.Proxy.INSTANCE.convert(entity, pogoClass) } catch (EntityNotFoundException e) { return null }