diff --git a/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java b/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java
index c04eb292..ff7dde84 100644
--- a/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java
+++ b/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 the original author or authors.
+ * Copyright 2012-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,39 +13,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.data.gemfire.repository.query;
import java.io.Serializable;
import org.springframework.data.gemfire.mapping.GemfirePersistentEntity;
-import org.springframework.data.mapping.PersistentProperty;
-import org.springframework.data.repository.core.support.AbstractEntityInformation;
-import org.springframework.data.repository.core.support.DelegatingEntityInformation;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
+import org.springframework.data.mapping.PersistentEntity;
+import org.springframework.data.repository.core.support.PersistentEntityInformation;
/**
- * Implementation of {@link GemfireEntityInformation} using reflection to lookup entity properties and type information.
+ * Implementation of {@link GemfireEntityInformation} to return the region name stored in the backing
+ * {@link PersistentEntity}.
*
* @author Oliver Gierke
* @author John Blum
* @see org.springframework.data.gemfire.mapping.GemfirePersistentEntity
* @see org.springframework.data.gemfire.repository.query.GemfireEntityInformation
- * @see org.springframework.data.repository.core.support.DelegatingEntityInformation
+ * @see org.springframework.data.repository.core.support.PersistentEntityInformation
*/
-public class DefaultGemfireEntityInformation extends DelegatingEntityInformation
+public class DefaultGemfireEntityInformation extends PersistentEntityInformation
implements GemfireEntityInformation {
private final GemfirePersistentEntity entity;
/**
* Creates a new {@link DefaultGemfireEntityInformation}.
- *
+ *
* @param entity must not be {@literal null}.
*/
public DefaultGemfireEntityInformation(GemfirePersistentEntity entity) {
- //super(new ReflectionEntityInformation(entity.getType()));
- super(new PersistentEntityBasedEntityInformation(entity));
+ super(entity);
this.entity = entity;
}
@@ -58,44 +56,4 @@ public class DefaultGemfireEntityInformation extends
return entity.getRegionName();
}
- /*
- * (non-Javadoc)
- * @see org.springframework.data.repository.core.support.AbstractEntityInformation
- */
- protected static class PersistentEntityBasedEntityInformation
- extends AbstractEntityInformation {
-
- private final GemfirePersistentEntity persistentEntity;
-
- public PersistentEntityBasedEntityInformation(final GemfirePersistentEntity persistentEntity) {
- super(persistentEntity.getType());
- this.persistentEntity = persistentEntity;
- }
-
- protected GemfirePersistentEntity getPersistentEntity() {
- return persistentEntity;
- }
-
- protected PersistentProperty getEntityIdProperty() {
- Assert.state(getPersistentEntity().hasIdProperty(), String.format(
- "The ID property of entity type (%1$s) was not properly discovered!",
- getPersistentEntity().getType()));
-
- return getPersistentEntity().getIdProperty();
- }
-
- @SuppressWarnings("unchecked")
- public ID getId(final T entity) {
- PersistentProperty idProperty = getEntityIdProperty();
-
- return (ID) (idProperty.usePropertyAccess() ? ReflectionUtils.invokeMethod(idProperty.getGetter(), entity)
- : ReflectionUtils.getField(idProperty.getField(), entity));
- }
-
- @SuppressWarnings("unchecked")
- public Class getIdType() {
- return (Class) getEntityIdProperty().getRawType();
- }
- }
-
}
diff --git a/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java b/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java
index a4d8ae42..b4d8f5c7 100644
--- a/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java
+++ b/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java
@@ -112,7 +112,6 @@ public class DefaultGemfireEntityInformationTest {
}
@Test
- // Uh, WOW!
public void testConfusedDomainEntityHavingStringId() {
GemfireEntityInformation entityInfo = createEntityInformation(
createPersistentEntity(MyConfusedDomainEntity.class));
@@ -122,8 +121,8 @@ public class DefaultGemfireEntityInformationTest {
assertEquals(MyConfusedDomainEntity.class, entityInfo.getJavaType());
//assertEquals(String.class, entityInfo.getIdType());
assertTrue(Long.class.equals(entityInfo.getIdType()));
- //assertEquals("123", entityInfo.getId(new MyConfusedDomainEntity(123l)));
- assertEquals(123l, entityInfo.getId(new MyConfusedDomainEntity("123")));
+ assertEquals(123l, entityInfo.getId(new MyConfusedDomainEntity(123l)));
+ assertEquals(248l, entityInfo.getId(new MyConfusedDomainEntity("248")));
}
@SuppressWarnings("unused")