Skip to content

Commit 4f5103f

Browse files
committed
Adapt to changes in entity creation metadata APIs in Spring Data Commons.
1 parent 78c4d21 commit 4f5103f

File tree

3 files changed

+21
-22
lines changed

3 files changed

+21
-22
lines changed

src/main/java/org/springframework/data/neo4j/core/mapping/DefaultNeo4jEntityConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
import org.springframework.core.KotlinDetector;
4747
import org.springframework.data.mapping.AssociationHandler;
4848
import org.springframework.data.mapping.MappingException;
49+
import org.springframework.data.mapping.Parameter;
4950
import org.springframework.data.mapping.PersistentPropertyAccessor;
50-
import org.springframework.data.mapping.PreferredConstructor;
5151
import org.springframework.data.mapping.PropertyHandler;
5252
import org.springframework.data.mapping.model.EntityInstantiators;
5353
import org.springframework.data.mapping.model.ParameterValueProvider;
@@ -328,7 +328,7 @@ private <ET> void populateProperties(MapAccessor queryResult, Neo4jPersistentEnt
328328

329329
PersistentPropertyAccessor<ET> propertyAccessor = concreteNodeDescription.getPropertyAccessor(mappedObject);
330330
Predicate<Neo4jPersistentProperty> isConstructorParameter = concreteNodeDescription
331-
.getPersistenceConstructor()::isConstructorParameter;
331+
.getInstanceCreatorMetadata()::isCreatorParameter;
332332

333333
// if the object were mapped before, we assume that at least all properties are populated
334334
if (!objectAlreadyMapped) {
@@ -412,7 +412,7 @@ private <ET> ET instantiate(Neo4jPersistentEntity<ET> nodeDescription, MapAccess
412412

413413
@SuppressWarnings("unchecked") // Needed for the last cast. It's easier that way than using the parameter type info and checking for primitives
414414
@Override
415-
public <T> T getParameterValue(PreferredConstructor.Parameter<T, Neo4jPersistentProperty> parameter) {
415+
public <T> T getParameterValue(Parameter<T, Neo4jPersistentProperty> parameter) {
416416
Neo4jPersistentProperty matchingProperty = nodeDescription.getRequiredPersistentProperty(parameter.getName());
417417

418418
Object result;

src/main/java/org/springframework/data/neo4j/core/mapping/DtoInstantiatingConverter.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@
2727
import org.springframework.core.CollectionFactory;
2828
import org.springframework.core.convert.converter.Converter;
2929
import org.springframework.core.log.LogAccessor;
30+
import org.springframework.data.mapping.InstanceCreatorMetadata;
3031
import org.springframework.data.mapping.MappingException;
32+
import org.springframework.data.mapping.Parameter;
3133
import org.springframework.data.mapping.PersistentEntity;
3234
import org.springframework.data.mapping.PersistentProperty;
3335
import org.springframework.data.mapping.PersistentPropertyAccessor;
34-
import org.springframework.data.mapping.PreferredConstructor;
35-
import org.springframework.data.mapping.PreferredConstructor.Parameter;
3636
import org.springframework.data.mapping.SimplePropertyHandler;
3737
import org.springframework.data.mapping.model.ParameterValueProvider;
3838
import org.springframework.data.util.ClassTypeInformation;
@@ -76,8 +76,7 @@ public Object convertDirectly(Object entityInstance) {
7676

7777
Neo4jPersistentEntity<?> targetEntity = context.addPersistentEntity(ClassTypeInformation.from(targetType)).orElse(null);
7878
Assert.notNull(targetEntity, "Target entity could not be created for a DTO");
79-
PreferredConstructor<?, Neo4jPersistentProperty> constructor = targetEntity
80-
.getPersistenceConstructor();
79+
InstanceCreatorMetadata<?> creator = targetEntity.getInstanceCreatorMetadata();
8180

8281
Object dto = context.getInstantiatorFor(targetEntity)
8382
.createInstance(targetEntity,
@@ -89,7 +88,7 @@ public Object convertDirectly(Object entityInstance) {
8988
PersistentPropertyAccessor<Object> dtoAccessor = targetEntity.getPropertyAccessor(dto);
9089
targetEntity.doWithProperties((SimplePropertyHandler) property -> {
9190

92-
if (constructor != null && constructor.isConstructorParameter(property)) {
91+
if (creator != null && creator.isCreatorParameter(property)) {
9392
return;
9493
}
9594

@@ -130,9 +129,9 @@ public Object convert(@Nullable EntityInstanceWithSource entityInstanceAndSource
130129
PersistentPropertyAccessor<Object> sourceAccessor = sourceEntity.getPropertyAccessor(entityInstance);
131130

132131
Neo4jPersistentEntity<?> targetEntity = context.addPersistentEntity(ClassTypeInformation.from(targetType))
133-
.orElseThrow(() -> new MappingException("Could not add a persistent entity for the projection target type '" + targetType.getName() + "'."));
134-
PreferredConstructor<?, ? extends PersistentProperty<?>> constructor = targetEntity
135-
.getPersistenceConstructor();
132+
.orElseThrow(() -> new MappingException(
133+
"Could not add a persistent entity for the projection target type '" + targetType.getName() + "'."));
134+
InstanceCreatorMetadata<? extends PersistentProperty<?>> creator = targetEntity.getInstanceCreatorMetadata();
136135

137136
Object dto = context.getInstantiatorFor(targetEntity)
138137
.createInstance(targetEntity,
@@ -142,8 +141,8 @@ public Object convert(@Nullable EntityInstanceWithSource entityInstanceAndSource
142141
);
143142

144143
PersistentPropertyAccessor<Object> dtoAccessor = targetEntity.getPropertyAccessor(dto);
145-
targetEntity.doWithAll(property ->
146-
setPropertyOnDtoObject(entityInstanceAndSource, sourceEntity, sourceAccessor, constructor, dtoAccessor, property));
144+
targetEntity.doWithAll(property -> setPropertyOnDtoObject(entityInstanceAndSource, sourceEntity, sourceAccessor,
145+
creator, dtoAccessor, property));
147146

148147
return dto;
149148
}
@@ -171,11 +170,12 @@ public <T> T getParameterValue(Parameter<T, Neo4jPersistentProperty> parameter)
171170
};
172171
}
173172

174-
private void setPropertyOnDtoObject(EntityInstanceWithSource entityInstanceAndSource, PersistentEntity<?, ?> sourceEntity,
175-
PersistentPropertyAccessor<Object> sourceAccessor, @Nullable PreferredConstructor<?, ?> constructor,
176-
PersistentPropertyAccessor<Object> dtoAccessor, Neo4jPersistentProperty property) {
173+
private void setPropertyOnDtoObject(EntityInstanceWithSource entityInstanceAndSource,
174+
PersistentEntity<?, ?> sourceEntity, PersistentPropertyAccessor<Object> sourceAccessor,
175+
@Nullable InstanceCreatorMetadata<?> creator, PersistentPropertyAccessor<Object> dtoAccessor,
176+
Neo4jPersistentProperty property) {
177177

178-
if (constructor != null && constructor.isConstructorParameter(property)) {
178+
if (creator != null && creator.isCreatorParameter(property)) {
179179
return;
180180
}
181181

src/main/java/org/springframework/data/neo4j/core/mapping/EntityFromDtoInstantiatingConverter.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
import org.apiguardian.api.API;
2323
import org.springframework.core.CollectionFactory;
2424
import org.springframework.core.convert.converter.Converter;
25+
import org.springframework.data.mapping.InstanceCreatorMetadata;
2526
import org.springframework.data.mapping.MappingException;
27+
import org.springframework.data.mapping.Parameter;
2628
import org.springframework.data.mapping.PersistentEntity;
2729
import org.springframework.data.mapping.PersistentProperty;
2830
import org.springframework.data.mapping.PersistentPropertyAccessor;
29-
import org.springframework.data.mapping.PreferredConstructor;
30-
import org.springframework.data.mapping.PreferredConstructor.Parameter;
3131
import org.springframework.data.mapping.model.ParameterValueProvider;
3232
import org.springframework.data.util.ClassTypeInformation;
3333
import org.springframework.data.util.ReflectionUtils;
@@ -74,8 +74,7 @@ public T convert(Object dtoInstance) {
7474
PersistentPropertyAccessor<Object> sourceAccessor = sourceEntity.getPropertyAccessor(dtoInstance);
7575

7676
PersistentEntity<?, ?> targetEntity = context.getPersistentEntity(targetEntityType);
77-
PreferredConstructor<?, ? extends PersistentProperty<?>> constructor = targetEntity
78-
.getPersistenceConstructor();
77+
InstanceCreatorMetadata<?> creator = targetEntity.getInstanceCreatorMetadata();
7978

8079
@SuppressWarnings({ "rawtypes", "unchecked" })
8180
T entity = (T) context.getInstantiatorFor(targetEntity)
@@ -93,7 +92,7 @@ public Object getParameterValue(Parameter parameter) {
9392

9493
PersistentPropertyAccessor<Object> dtoAccessor = targetEntity.getPropertyAccessor(entity);
9594
targetEntity.doWithAll(property -> {
96-
if (constructor.isConstructorParameter(property)) {
95+
if (creator.isCreatorParameter(property)) {
9796
return;
9897
}
9998

0 commit comments

Comments
 (0)