From a94ea17e0eeedbed8afaa99d76cb6a7227e9d275 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 14 Apr 2023 08:36:55 +0200 Subject: [PATCH] Polishing. Reformat code. Remove unused fields, modifiers and documentation artifacts. See #4088 Original pull request: #4341 --- .../repository/query/MongoQueryExecution.java | 2 - .../query/ReactiveMongoQueryExecution.java | 6 +-- .../query/ReactiveStringBasedAggregation.java | 41 ++++++------------- .../query/StringBasedAggregation.java | 40 +++--------------- 4 files changed, 20 insertions(+), 69 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryExecution.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryExecution.java index a512fd6e0..e99c3fec7 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryExecution.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryExecution.java @@ -293,7 +293,6 @@ interface MongoQueryExecution { final class UpdateExecution implements MongoQueryExecution { private final ExecutableUpdate updateOps; - private final MongoQueryMethod method; private Supplier updateDefinitionSupplier; private final MongoParameterAccessor accessor; @@ -301,7 +300,6 @@ interface MongoQueryExecution { MongoParameterAccessor accessor) { this.updateOps = updateOps; - this.method = method; this.updateDefinitionSupplier = updateSupplier; this.accessor = accessor; } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecution.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecution.java index 764d14fc4..dff957142 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecution.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecution.java @@ -61,7 +61,7 @@ interface ReactiveMongoQueryExecution { * * @author Mark Paluch */ - class GeoNearExecution implements ReactiveMongoQueryExecution { + final class GeoNearExecution implements ReactiveMongoQueryExecution { private final ReactiveMongoOperations operations; private final MongoParameterAccessor accessor; @@ -83,7 +83,7 @@ interface ReactiveMongoQueryExecution { } @SuppressWarnings({ "unchecked", "rawtypes" }) - protected Flux> doExecuteQuery(@Nullable Query query, Class type, String collection) { + private Flux> doExecuteQuery(@Nullable Query query, Class type, String collection) { Point nearLocation = accessor.getGeoNearLocation(); NearQuery nearQuery = NearQuery.near(nearLocation); @@ -154,7 +154,6 @@ interface ReactiveMongoQueryExecution { final class UpdateExecution implements ReactiveMongoQueryExecution { private final ReactiveUpdate updateOps; - private final MongoQueryMethod method; private final MongoParameterAccessor accessor; private Mono update; @@ -162,7 +161,6 @@ interface ReactiveMongoQueryExecution { Mono update) { this.updateOps = updateOps; - this.method = method; this.accessor = accessor; this.update = update; } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregation.java index b55bbf6fe..fd40440c9 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregation.java @@ -15,8 +15,6 @@ */ package org.springframework.data.mongodb.repository.query; -import org.springframework.data.mongodb.core.aggregation.AggregationPipeline; -import org.springframework.data.util.ReflectionUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -28,12 +26,15 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.AggregationOperation; import org.springframework.data.mongodb.core.aggregation.AggregationOptions; +import org.springframework.data.mongodb.core.aggregation.AggregationPipeline; import org.springframework.data.mongodb.core.aggregation.TypedAggregation; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.mapping.MongoSimpleTypes; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.ResultProcessor; +import org.springframework.data.util.ReflectionUtils; +import org.springframework.data.util.TypeInformation; import org.springframework.expression.ExpressionParser; import org.springframework.util.ClassUtils; @@ -70,10 +71,6 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery { this.evaluationContextProvider = evaluationContextProvider; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#doExecute(org.springframework.data.mongodb.repository.query.ReactiveMongoQueryMethod, org.springframework.data.repository.query.ResultProcessor, org.springframework.data.mongodb.repository.query.ConvertingParameterAccessor, java.lang.Class) - */ @Override protected Publisher doExecute(ReactiveMongoQueryMethod method, ResultProcessor processor, ConvertingParameterAccessor accessor, Class typeToRead) { @@ -99,7 +96,7 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery { TypedAggregation aggregation = new TypedAggregation<>(sourceType, pipeline.getOperations(), options); Flux flux = reactiveMongoOperations.aggregate(aggregation, targetType); - if(ReflectionUtils.isVoid(typeToRead)) { + if (ReflectionUtils.isVoid(typeToRead)) { return flux.then(); } @@ -126,7 +123,8 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery { return parseAggregationPipeline(getQueryMethod().getAnnotatedAggregation(), accessor); } - private AggregationOptions computeOptions(MongoQueryMethod method, ConvertingParameterAccessor accessor, AggregationPipeline pipeline) { + private AggregationOptions computeOptions(MongoQueryMethod method, ConvertingParameterAccessor accessor, + AggregationPipeline pipeline) { AggregationOptions.Builder builder = Aggregation.newAggregationOptions(); @@ -134,53 +132,38 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery { expressionParser, evaluationContextProvider); AggregationUtils.applyMeta(builder, method); AggregationUtils.applyHint(builder, method); - if(ReflectionUtils.isVoid(method.getReturnType().getComponentType().getType()) && pipeline.isOutOrMerge()) { + + TypeInformation returnType = method.getReturnType(); + if (returnType.getComponentType() != null) { + returnType = returnType.getRequiredComponentType(); + } + if (ReflectionUtils.isVoid(returnType.getType()) && pipeline.isOutOrMerge()) { builder.skipOutput(); } return builder.build(); } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#createQuery(org.springframework.data.mongodb.repository.query.ConvertingParameterAccessor) - */ @Override protected Mono createQuery(ConvertingParameterAccessor accessor) { throw new UnsupportedOperationException("No query support for aggregation"); } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#isCountQuery() - */ @Override protected boolean isCountQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#isExistsQuery() - */ @Override protected boolean isExistsQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#isDeleteQuery() - */ @Override protected boolean isDeleteQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#isLimiting() - */ @Override protected boolean isLimiting() { return false; diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedAggregation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedAggregation.java index f69a49149..3f118d0fa 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedAggregation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedAggregation.java @@ -21,16 +21,13 @@ import java.util.function.LongUnaryOperator; import java.util.stream.Stream; import org.bson.Document; - import org.springframework.data.domain.Pageable; import org.springframework.data.domain.SliceImpl; import org.springframework.data.mongodb.InvalidMongoDbApiUsageException; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.aggregation.Aggregation; -import org.springframework.data.mongodb.core.aggregation.AggregationOperation; import org.springframework.data.mongodb.core.aggregation.AggregationOptions; import org.springframework.data.mongodb.core.aggregation.AggregationPipeline; -import org.springframework.data.mongodb.core.aggregation.AggregationOptions.Builder; import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.data.mongodb.core.aggregation.TypedAggregation; import org.springframework.data.mongodb.core.convert.MongoConverter; @@ -42,8 +39,6 @@ import org.springframework.data.util.ReflectionUtils; import org.springframework.expression.ExpressionParser; import org.springframework.lang.Nullable; import org.springframework.util.ClassUtils; -import org.springframework.util.CollectionUtils; -import org.springframework.util.ObjectUtils; /** * {@link AbstractMongoQuery} implementation to run string-based aggregations using @@ -66,8 +61,8 @@ public class StringBasedAggregation extends AbstractMongoQuery { * * @param method must not be {@literal null}. * @param mongoOperations must not be {@literal null}. - * @param expressionParser - * @param evaluationContextProvider + * @param expressionParser must not be {@literal null}. + * @param evaluationContextProvider must not be {@literal null}. */ public StringBasedAggregation(MongoQueryMethod method, MongoOperations mongoOperations, ExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) { @@ -85,10 +80,6 @@ public class StringBasedAggregation extends AbstractMongoQuery { this.evaluationContextProvider = evaluationContextProvider; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery#doExecute(org.springframework.data.mongodb.repository.query.MongoQueryMethod, org.springframework.data.repository.query.ResultProcessor, org.springframework.data.mongodb.repository.query.ConvertingParameterAccessor, java.lang.Class) - */ @Override @Nullable protected Object doExecute(MongoQueryMethod method, ResultProcessor resultProcessor, @@ -133,7 +124,7 @@ public class StringBasedAggregation extends AbstractMongoQuery { } AggregationResults result = (AggregationResults) mongoOperations.aggregate(aggregation, targetType); - if(ReflectionUtils.isVoid(typeToRead)) { + if (ReflectionUtils.isVoid(typeToRead)) { return null; } @@ -181,7 +172,8 @@ public class StringBasedAggregation extends AbstractMongoQuery { return new AggregationPipeline(parseAggregationPipeline(method.getAnnotatedAggregation(), accessor)); } - private AggregationOptions computeOptions(MongoQueryMethod method, ConvertingParameterAccessor accessor, AggregationPipeline pipeline) { + private AggregationOptions computeOptions(MongoQueryMethod method, ConvertingParameterAccessor accessor, + AggregationPipeline pipeline) { AggregationOptions.Builder builder = Aggregation.newAggregationOptions(); @@ -190,53 +182,33 @@ public class StringBasedAggregation extends AbstractMongoQuery { AggregationUtils.applyMeta(builder, method); AggregationUtils.applyHint(builder, method); - if(ReflectionUtils.isVoid(method.getReturnType().getType()) && pipeline.isOutOrMerge()) { + if (ReflectionUtils.isVoid(method.getReturnType().getType()) && pipeline.isOutOrMerge()) { builder.skipOutput(); } return builder.build(); } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#createQuery(org.springframework.data.mongodb.repository.query.ConvertingParameterAccessor) - */ @Override protected Query createQuery(ConvertingParameterAccessor accessor) { throw new UnsupportedOperationException("No query support for aggregation"); } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#isCountQuery() - */ @Override protected boolean isCountQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#isExistsQuery() - */ @Override protected boolean isExistsQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#isDeleteQuery() - */ @Override protected boolean isDeleteQuery() { return false; } - /* - * (non-Javascript) - * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#isLimiting() - */ @Override protected boolean isLimiting() { return false;