From d46f4bed742a0fa5d9fb29ee0e4921900b02a644 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Mon, 6 Sep 2021 14:32:12 +0200 Subject: [PATCH] Remove EvaluationContextProvider from MPE & MPP --- .../mapping/BasicMongoPersistentEntity.java | 6 ++-- .../mapping/BasicMongoPersistentProperty.java | 29 ++++++++----------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java index 9bdb1aee2..6840fce5b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java @@ -24,7 +24,6 @@ import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import org.springframework.data.annotation.Id; import org.springframework.data.mapping.Association; @@ -34,7 +33,6 @@ import org.springframework.data.mapping.PropertyHandler; import org.springframework.data.mapping.model.BasicPersistentEntity; import org.springframework.data.mongodb.MongoCollectionUtils; import org.springframework.data.mongodb.util.encryption.EncryptionUtils; -import org.springframework.data.spel.EvaluationContextProvider; import org.springframework.data.spel.ExpressionDependencies; import org.springframework.data.util.Lazy; import org.springframework.data.util.TypeInformation; @@ -60,7 +58,7 @@ import org.springframework.util.StringUtils; * @author Mark Paluch */ public class BasicMongoPersistentEntity extends BasicPersistentEntity - implements MongoPersistentEntity, EvaluationContextProvider { + implements MongoPersistentEntity { private static final String AMBIGUOUS_FIELD_MAPPING = "Ambiguous field mapping detected! Both %s and %s map to the same field name %s! Disambiguate using @Field annotation!"; private static final SpelExpressionParser PARSER = new SpelExpressionParser(); @@ -382,7 +380,7 @@ public class BasicMongoPersistentEntity extends BasicPersistentEntity - implements MongoPersistentProperty, EvaluationContextProvider { + implements MongoPersistentProperty { private static final Logger LOG = LoggerFactory.getLogger(BasicMongoPersistentProperty.class); @@ -311,22 +309,19 @@ public class BasicMongoPersistentProperty extends AnnotationBasedPersistentPrope return isAnnotationPresent(TextScore.class); } - @Override - public EvaluationContext getEvaluationContext(Object rootObject, ExpressionDependencies dependencies) { - - if (getOwner() instanceof EvaluationContextProvider) { - return ((EvaluationContextProvider) getOwner()).getEvaluationContext(rootObject, dependencies); - } - return new StandardEvaluationContext(); - } - - @Override - public EvaluationContext getEvaluationContext(Object rootObject) { + /** + * Obtain the {@link EvaluationContext} for a specific root object. + * + * @param rootObject can be {@literal null}. + * @return never {@literal null}. + * @since 3.3 + */ + public EvaluationContext getEvaluationContext(@Nullable Object rootObject) { - if (getOwner() instanceof EvaluationContextProvider) { - return ((EvaluationContextProvider) getOwner()).getEvaluationContext(rootObject); + if (getOwner() instanceof BasicMongoPersistentEntity) { + return ((BasicMongoPersistentEntity) getOwner()).getEvaluationContext(rootObject); } - return new StandardEvaluationContext(); + return rootObject != null ? new StandardEvaluationContext(rootObject) : new StandardEvaluationContext(); } @Override