DATACMNS-1322 - Generified PersistentPropertyAccessor API.

PersistentPropertyAccessor is now generic to be able to retain the type information about the object it was created for and the return type of ….getBean(). Adapted client APIs.
This commit is contained in:
Oliver Gierke
2018-06-18 19:06:45 +02:00
parent d1ebfcfc5e
commit 1f4d494f83
12 changed files with 38 additions and 39 deletions

View File

@@ -193,7 +193,7 @@ public class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
Entity value = new Entity();
PersistentPropertyAccessor accessor = entity.getPropertyAccessor(value);
PersistentPropertyAccessor<Entity> accessor = entity.getPropertyAccessor(value);
assertThat(accessor).isInstanceOf(BeanWrapper.class);
assertThat(accessor.getBean()).isEqualTo(value);

View File

@@ -42,11 +42,11 @@ import org.springframework.data.mapping.context.SamplePersistentProperty;
@RunWith(Parameterized.class)
public class PersistentPropertyAccessorTests {
private final static SampleMappingContext mappingContext = new SampleMappingContext();
private final static SampleMappingContext MAPPING_CONTEXT = new SampleMappingContext();
private final Function<Object, PersistentPropertyAccessor> propertyAccessorFunction;
private final Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction;
public PersistentPropertyAccessorTests(Function<Object, PersistentPropertyAccessor> propertyAccessor,
public PersistentPropertyAccessorTests(Function<Object, PersistentPropertyAccessor<?>> propertyAccessor,
String displayName) {
this.propertyAccessorFunction = propertyAccessor;
@@ -60,9 +60,9 @@ public class PersistentPropertyAccessorTests {
ClassGeneratingPropertyAccessorFactory factory = new ClassGeneratingPropertyAccessorFactory();
Function<Object, PersistentPropertyAccessor> beanWrapper = BeanWrapper::new;
Function<Object, PersistentPropertyAccessor> classGenerating = it -> factory
.getPropertyAccessor(mappingContext.getRequiredPersistentEntity(it.getClass()), it);
Function<Object, PersistentPropertyAccessor<?>> beanWrapper = BeanWrapper::new;
Function<Object, PersistentPropertyAccessor<?>> classGenerating = it -> factory
.getPropertyAccessor(MAPPING_CONTEXT.getRequiredPersistentEntity(it.getClass()), it);
parameters.add(new Object[] { beanWrapper, "BeanWrapper" });
parameters.add(new Object[] { classGenerating, "ClassGeneratingPropertyAccessorFactory" });
@@ -147,8 +147,7 @@ public class PersistentPropertyAccessorTests {
}
private static SamplePersistentProperty getProperty(Object bean, String propertyName) {
return mappingContext.getRequiredPersistentEntity(bean.getClass()).getRequiredPersistentProperty(propertyName);
return MAPPING_CONTEXT.getRequiredPersistentEntity(bean.getClass()).getRequiredPersistentProperty(propertyName);
}
@Data