From 4734a2925c8135d51a4e41b8cdf2b0b00cb45400 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 20 Jul 2017 10:32:01 +0200 Subject: [PATCH] =?UTF-8?q?DATAMONGO-1719=20-=20Rename=20blocking=20fluent?= =?UTF-8?q?=20entry=20interfaces=20from=20=E2=80=A6Operation=20to=20Execut?= =?UTF-8?q?able=E2=80=A6=20and=20remove=20Operation=20from=20intermediate?= =?UTF-8?q?=20interfaces.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original Pull Request: #487 --- .../mongodb/core/ProjectionsBenchmark.java | 14 ++++---- .../core/ExecutableAggregationOperation.java | 23 ++++++------- ...ExecutableAggregationOperationSupport.java | 17 +++++----- .../mongodb/core/ExecutableFindOperation.java | 34 +++++++++---------- .../core/ExecutableFindOperationSupport.java | 22 ++++++------ .../core/ExecutableInsertOperation.java | 26 +++++++------- .../ExecutableInsertOperationSupport.java | 15 ++++---- .../core/ExecutableRemoveOperation.java | 23 +++++++------ .../ExecutableRemoveOperationSupport.java | 15 ++++---- .../core/ExecutableUpdateOperation.java | 32 ++++++++--------- .../ExecutableUpdateOperationSupport.java | 25 +++++++------- .../data/mongodb/core/MongoTemplate.java | 23 ++++--------- .../repository/query/AbstractMongoQuery.java | 12 +++---- .../repository/query/MongoQueryExecution.java | 18 +++++----- ...xecutableAggregationOperationExtensions.kt | 10 +++--- .../core/ExecutableFindOperationExtensions.kt | 24 +++++++------ .../ExecutableInsertOperationExtensions.kt | 10 +++--- .../ExecutableRemoveOperationExtensions.kt | 10 +++--- .../ExecutableFindOperationSupportTests.java | 7 ++-- .../query/AbstractMongoQueryUnitTests.java | 12 +++---- .../query/MongoQueryExecutionUnitTests.java | 16 ++++----- .../query/PartTreeMongoQueryUnitTests.java | 4 +-- .../query/StringBasedMongoQueryUnitTests.java | 4 +-- 23 files changed, 199 insertions(+), 197 deletions(-) diff --git a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/ProjectionsBenchmark.java b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/ProjectionsBenchmark.java index 2217c7cf7..103eef071 100644 --- a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/ProjectionsBenchmark.java +++ b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/ProjectionsBenchmark.java @@ -21,8 +21,8 @@ import org.openjdk.jmh.annotations.Setup; import org.openjdk.jmh.annotations.TearDown; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithQuery; -import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery; +import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFind; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.microbenchmark.AbstractMicrobenchmark; @@ -45,12 +45,12 @@ public class ProjectionsBenchmark extends AbstractMicrobenchmark { private Person source; - private FindOperationWithQuery asPerson; - private FindOperationWithQuery asDtoProjection; - private FindOperationWithQuery asClosedProjection; - private FindOperationWithQuery asOpenProjection; + private FindWithQuery asPerson; + private FindWithQuery asDtoProjection; + private FindWithQuery asClosedProjection; + private FindWithQuery asOpenProjection; - private TerminatingFindOperation asPersonWithFieldsRestriction; + private TerminatingFind asPersonWithFieldsRestriction; private Document fields = new Document("firstname", 1); @Setup diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperation.java index 61a49679f..88c780685 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperation.java @@ -31,7 +31,7 @@ import org.springframework.data.util.CloseableIterator; * * aggregateAndReturn(Jedi.class) * .by(newAggregation(Human.class, project("These are not the droids you are looking for"))) - * .get(); + * .all(); * * * @@ -47,10 +47,10 @@ public interface ExecutableAggregationOperation { * input type for he aggregation. * * @param domainType must not be {@literal null}. - * @return new instance of {@link AggregationOperation}. + * @return new instance of {@link ExecutableAggregation}. * @throws IllegalArgumentException if domainType is {@literal null}. */ - AggregationOperation aggregateAndReturn(Class domainType); + ExecutableAggregation aggregateAndReturn(Class domainType); /** * Collection override (Optional). @@ -58,17 +58,17 @@ public interface ExecutableAggregationOperation { * @author Christoph Strobl * @since 2.0 */ - interface AggregationOperationWithCollection { + interface AggregationWithCollection { /** * Explicitly set the name of the collection to perform the query on.
* Skip this step to use the default collection derived from the domain type. * * @param collection must not be {@literal null} nor {@literal empty}. - * @return new instance of {@link AggregationOperationWithAggregation}. + * @return new instance of {@link AggregationWithAggregation}. * @throws IllegalArgumentException if collection is {@literal null}. */ - AggregationOperationWithAggregation inCollection(String collection); + AggregationWithAggregation inCollection(String collection); } /** @@ -77,7 +77,7 @@ public interface ExecutableAggregationOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingAggregationOperation { + interface TerminatingAggregation { /** * Apply pipeline operations as specified and get all matching elements. @@ -102,22 +102,21 @@ public interface ExecutableAggregationOperation { * @author Christoph Strobl * @since 2.0 */ - interface AggregationOperationWithAggregation { + interface AggregationWithAggregation { /** * Set the aggregation to be used. * * @param aggregation must not be {@literal null}. - * @return new instance of {@link TerminatingAggregationOperation}. + * @return new instance of {@link TerminatingAggregation}. * @throws IllegalArgumentException if aggregation is {@literal null}. */ - TerminatingAggregationOperation by(Aggregation aggregation); + TerminatingAggregation by(Aggregation aggregation); } /** * @author Christoph Strobl * @since 2.0 */ - interface AggregationOperation - extends AggregationOperationWithCollection, AggregationOperationWithAggregation {} + interface ExecutableAggregation extends AggregationWithCollection, AggregationWithAggregation {} } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupport.java index 8400a3694..0068e0c99 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupport.java @@ -28,6 +28,7 @@ import org.springframework.util.StringUtils; * Implementation of {@link ExecutableAggregationOperation} operating directly on {@link MongoTemplate}. * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ class ExecutableAggregationOperationSupport implements ExecutableAggregationOperation { @@ -48,11 +49,11 @@ class ExecutableAggregationOperationSupport implements ExecutableAggregationOper } @Override - public AggregationOperation aggregateAndReturn(Class domainType) { + public ExecutableAggregation aggregateAndReturn(Class domainType) { Assert.notNull(domainType, "DomainType must not be null!"); - return new AggregationOperationSupport<>(template, null, domainType, null); + return new ExecutableAggregationSupport<>(template, null, domainType, null); } /** @@ -60,8 +61,8 @@ class ExecutableAggregationOperationSupport implements ExecutableAggregationOper * @since 2.0 */ @RequiredArgsConstructor - static class AggregationOperationSupport - implements AggregationOperationWithAggregation, AggregationOperation, TerminatingAggregationOperation { + static class ExecutableAggregationSupport + implements AggregationWithAggregation, ExecutableAggregation, TerminatingAggregation { private final MongoTemplate template; private final Aggregation aggregation; @@ -69,19 +70,19 @@ class ExecutableAggregationOperationSupport implements ExecutableAggregationOper private final String collection; @Override - public AggregationOperationWithAggregation inCollection(String collection) { + public AggregationWithAggregation inCollection(String collection) { Assert.hasText(collection, "Collection must not be null nor empty!"); - return new AggregationOperationSupport<>(template, aggregation, domainType, collection); + return new ExecutableAggregationSupport<>(template, aggregation, domainType, collection); } @Override - public TerminatingAggregationOperation by(Aggregation aggregation) { + public TerminatingAggregation by(Aggregation aggregation) { Assert.notNull(aggregation, "Aggregation must not be null!"); - return new AggregationOperationSupport<>(template, aggregation, domainType, collection); + return new ExecutableAggregationSupport<>(template, aggregation, domainType, collection); } @Override diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperation.java index 81a9bccae..561fed3c0 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperation.java @@ -54,10 +54,10 @@ public interface ExecutableFindOperation { * Start creating a find operation for the given {@literal domainType}. * * @param domainType must not be {@literal null}. - * @return new instance of {@link FindOperation}. + * @return new instance of {@link ExecutableFind}. * @throws IllegalArgumentException if domainType is {@literal null}. */ - FindOperation query(Class domainType); + ExecutableFind query(Class domainType); /** * Trigger find execution by calling one of the terminating methods. @@ -65,7 +65,7 @@ public interface ExecutableFindOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingFindOperation { + interface TerminatingFind { /** * Get exactly zero or one result. @@ -137,7 +137,7 @@ public interface ExecutableFindOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingFindNearOperation { + interface TerminatingFindNear { /** * Find all matching elements and return them as {@link org.springframework.data.geo.GeoResult}. @@ -153,25 +153,25 @@ public interface ExecutableFindOperation { * @author Christoph Strobl * @since 2.0 */ - interface FindOperationWithQuery extends TerminatingFindOperation { + interface FindWithQuery extends TerminatingFind { /** * Set the filter query to be used. * * @param query must not be {@literal null}. - * @return new instance of {@link TerminatingFindOperation}. + * @return new instance of {@link TerminatingFind}. * @throws IllegalArgumentException if query is {@literal null}. */ - TerminatingFindOperation matching(Query query); + TerminatingFind matching(Query query); /** * Set the filter query for the geoNear execution. * * @param nearQuery must not be {@literal null}. - * @return new instance of {@link TerminatingFindNearOperation}. + * @return new instance of {@link TerminatingFindNear}. * @throws IllegalArgumentException if nearQuery is {@literal null}. */ - TerminatingFindNearOperation near(NearQuery nearQuery); + TerminatingFindNear near(NearQuery nearQuery); } /** @@ -180,17 +180,17 @@ public interface ExecutableFindOperation { * @author Christoph Strobl * @since 2.0 */ - interface FindOperationWithCollection extends FindOperationWithQuery { + interface FindWithCollection extends FindWithQuery { /** * Explicitly set the name of the collection to perform the query on.
* Skip this step to use the default collection derived from the domain type. * * @param collection must not be {@literal null} nor {@literal empty}. - * @return new instance of {@link FindOperationWithProjection}. + * @return new instance of {@link FindWithProjection}. * @throws IllegalArgumentException if collection is {@literal null}. */ - FindOperationWithProjection inCollection(String collection); + FindWithProjection inCollection(String collection); } /** @@ -199,7 +199,7 @@ public interface ExecutableFindOperation { * @author Christoph Strobl * @since 2.0 */ - interface FindOperationWithProjection extends FindOperationWithQuery { + interface FindWithProjection extends FindWithQuery { /** * Define the target type fields should be mapped to.
@@ -207,17 +207,17 @@ public interface ExecutableFindOperation { * * @param resultType must not be {@literal null}. * @param result type. - * @return new instance of {@link FindOperationWithProjection}. + * @return new instance of {@link FindWithProjection}. * @throws IllegalArgumentException if resultType is {@literal null}. */ - FindOperationWithQuery as(Class resultType); + FindWithQuery as(Class resultType); } /** - * {@link FindOperation} provides methods for constructing lookup operations in a fluent way. + * {@link ExecutableFind} provides methods for constructing lookup operations in a fluent way. * * @author Christoph Strobl * @since 2.0 */ - interface FindOperation extends FindOperationWithCollection, FindOperationWithProjection {} + interface ExecutableFind extends FindWithCollection, FindWithProjection {} } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java index c143f9583..4c75891e9 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java @@ -61,11 +61,11 @@ class ExecutableFindOperationSupport implements ExecutableFindOperation { } @Override - public FindOperation query(Class domainType) { + public ExecutableFind query(Class domainType) { Assert.notNull(domainType, "DomainType must not be null!"); - return new FindOperationSupport<>(template, domainType, domainType, null, ALL_QUERY); + return new ExecutableFindSupport<>(template, domainType, domainType, null, ALL_QUERY); } /** @@ -74,8 +74,8 @@ class ExecutableFindOperationSupport implements ExecutableFindOperation { * @since 2.0 */ @RequiredArgsConstructor - static class FindOperationSupport implements FindOperation, FindOperationWithCollection, - FindOperationWithProjection, FindOperationWithQuery { + static class ExecutableFindSupport + implements ExecutableFind, FindWithCollection, FindWithProjection, FindWithQuery { private final MongoTemplate template; private final Class domainType; @@ -84,27 +84,27 @@ class ExecutableFindOperationSupport implements ExecutableFindOperation { private final Query query; @Override - public FindOperationWithProjection inCollection(String collection) { + public FindWithProjection inCollection(String collection) { Assert.hasText(collection, "Collection name must not be null nor empty!"); - return new FindOperationSupport<>(template, domainType, returnType, collection, query); + return new ExecutableFindSupport<>(template, domainType, returnType, collection, query); } @Override - public FindOperationWithQuery as(Class returnType) { + public FindWithQuery as(Class returnType) { Assert.notNull(returnType, "ReturnType must not be null!"); - return new FindOperationSupport<>(template, domainType, returnType, collection, query); + return new ExecutableFindSupport<>(template, domainType, returnType, collection, query); } @Override - public TerminatingFindOperation matching(Query query) { + public TerminatingFind matching(Query query) { Assert.notNull(query, "Query must not be null!"); - return new FindOperationSupport<>(template, domainType, returnType, collection, query); + return new ExecutableFindSupport<>(template, domainType, returnType, collection, query); } @Override @@ -142,7 +142,7 @@ class ExecutableFindOperationSupport implements ExecutableFindOperation { } @Override - public TerminatingFindNearOperation near(NearQuery nearQuery) { + public TerminatingFindNear near(NearQuery nearQuery) { return () -> template.geoNear(nearQuery, domainType, getCollectionName(), returnType); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperation.java index ed445f21e..650106f3d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperation.java @@ -37,6 +37,7 @@ import com.mongodb.bulk.BulkWriteResult; * * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ public interface ExecutableInsertOperation { @@ -45,10 +46,10 @@ public interface ExecutableInsertOperation { * Start creating an insert operation for given {@literal domainType}. * * @param domainType must not be {@literal null}. - * @return new instance of {@link InsertOperation}. + * @return new instance of {@link ExecutableInsert}. * @throws IllegalArgumentException if domainType is {@literal null}. */ - InsertOperation insert(Class domainType); + ExecutableInsert insert(Class domainType); /** * Trigger insert execution by calling one of the terminating methods. @@ -56,7 +57,7 @@ public interface ExecutableInsertOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingInsertOperation extends TerminatingBulkInsertOperation { + interface TerminatingInsert extends TerminatingBulkInsert { /** * Insert exactly one object. @@ -81,7 +82,7 @@ public interface ExecutableInsertOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingBulkInsertOperation { + interface TerminatingBulkInsert { /** * Bulk write collection of objects. @@ -97,41 +98,40 @@ public interface ExecutableInsertOperation { * @author Christoph Strobl * @since 2.0 */ - interface InsertOperation - extends TerminatingInsertOperation, InsertOperationWithCollection, InsertOperationWithBulkMode {} + interface ExecutableInsert extends TerminatingInsert, InsertWithCollection, InsertWithBulkMode {} /** - * Collection override (Optional). + * Collection override (optional). * * @author Christoph Strobl * @since 2.0 */ - interface InsertOperationWithCollection { + interface InsertWithCollection { /** * Explicitly set the name of the collection.
* Skip this step to use the default collection derived from the domain type. * * @param collection must not be {@literal null} nor {@literal empty}. - * @return new instance of {@link InsertOperationWithBulkMode}. + * @return new instance of {@link InsertWithBulkMode}. * @throws IllegalArgumentException if collection is {@literal null}. */ - InsertOperationWithBulkMode inCollection(String collection); + InsertWithBulkMode inCollection(String collection); } /** * @author Christoph Strobl * @since 2.0 */ - interface InsertOperationWithBulkMode extends TerminatingInsertOperation { + interface InsertWithBulkMode extends TerminatingInsert { /** * Define the {@link BulkMode} to use for bulk insert operation. * * @param bulkMode must not be {@literal null}. - * @return new instance of {@link TerminatingBulkInsertOperation}. + * @return new instance of {@link TerminatingBulkInsert}. * @throws IllegalArgumentException if bulkMode is {@literal null}. */ - TerminatingBulkInsertOperation withBulkMode(BulkMode bulkMode); + TerminatingBulkInsert withBulkMode(BulkMode bulkMode); } } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupport.java index 5817e1abb..6e8998b73 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupport.java @@ -30,6 +30,7 @@ import com.mongodb.bulk.BulkWriteResult; * Implementation of {@link ExecutableInsertOperation}. * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ class ExecutableInsertOperationSupport implements ExecutableInsertOperation { @@ -50,11 +51,11 @@ class ExecutableInsertOperationSupport implements ExecutableInsertOperation { } @Override - public InsertOperation insert(Class domainType) { + public ExecutableInsert insert(Class domainType) { Assert.notNull(domainType, "DomainType must not be null!"); - return new InsertOperationSupport<>(template, domainType, null, null); + return new ExecutableInsertSupport<>(template, domainType, null, null); } /** @@ -62,7 +63,7 @@ class ExecutableInsertOperationSupport implements ExecutableInsertOperation { * @since 2.0 */ @RequiredArgsConstructor - static class InsertOperationSupport implements InsertOperation { + static class ExecutableInsertSupport implements ExecutableInsert { private final MongoTemplate template; private final Class domainType; @@ -95,19 +96,19 @@ class ExecutableInsertOperationSupport implements ExecutableInsertOperation { } @Override - public InsertOperationWithBulkMode inCollection(String collection) { + public InsertWithBulkMode inCollection(String collection) { Assert.hasText(collection, "Collection must not be null nor empty."); - return new InsertOperationSupport<>(template, domainType, collection, bulkMode); + return new ExecutableInsertSupport<>(template, domainType, collection, bulkMode); } @Override - public TerminatingBulkInsertOperation withBulkMode(BulkMode bulkMode) { + public TerminatingBulkInsert withBulkMode(BulkMode bulkMode) { Assert.notNull(bulkMode, "BulkMode must not be null!"); - return new InsertOperationSupport<>(template, domainType, collection, bulkMode); + return new ExecutableInsertSupport<>(template, domainType, collection, bulkMode); } private String getCollectionName() { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperation.java index b3fe848cb..46df99faa 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperation.java @@ -39,6 +39,7 @@ import com.mongodb.client.result.DeleteResult; * * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ public interface ExecutableRemoveOperation { @@ -47,36 +48,36 @@ public interface ExecutableRemoveOperation { * Start creating a remove operation for the given {@literal domainType}. * * @param domainType must not be {@literal null}. - * @return new instance of {@link RemoveOperation}. + * @return new instance of {@link ExecutableRemove}. * @throws IllegalArgumentException if domainType is {@literal null}. */ - RemoveOperation remove(Class domainType); + ExecutableRemove remove(Class domainType); /** - * Collection override (Optional). + * Collection override (optional). * * @param * @author Christoph Strobl * @since 2.0 */ - interface RemoveOperationWithCollection extends RemoveOperationWithQuery { + interface RemoveWithCollection extends RemoveWithQuery { /** * Explicitly set the name of the collection to perform the query on.
* Skip this step to use the default collection derived from the domain type. * * @param collection must not be {@literal null} nor {@literal empty}. - * @return new instance of {@link RemoveOperationWithCollection}. + * @return new instance of {@link RemoveWithCollection}. * @throws IllegalArgumentException if collection is {@literal null}. */ - RemoveOperationWithQuery inCollection(String collection); + RemoveWithQuery inCollection(String collection); } /** * @author Christoph Strobl * @since 2.0 */ - interface TerminatingRemoveOperation { + interface TerminatingRemove { /** * Remove all documents matching. @@ -100,21 +101,21 @@ public interface ExecutableRemoveOperation { * @author Christoph Strobl * @since 2.0 */ - interface RemoveOperationWithQuery extends TerminatingRemoveOperation { + interface RemoveWithQuery extends TerminatingRemove { /** * Define the query filtering elements. * * @param query must not be {@literal null}. - * @return new instance of {@link TerminatingRemoveOperation}. + * @return new instance of {@link TerminatingRemove}. * @throws IllegalArgumentException if query is {@literal null}. */ - TerminatingRemoveOperation matching(Query query); + TerminatingRemove matching(Query query); } /** * @author Christoph Strobl * @since 2.0 */ - interface RemoveOperation extends RemoveOperationWithCollection {} + interface ExecutableRemove extends RemoveWithCollection {} } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupport.java index 35a06cb0c..21b74cde7 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupport.java @@ -31,6 +31,7 @@ import com.mongodb.client.result.DeleteResult; * Implementation of {@link ExecutableRemoveOperation}. * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ class ExecutableRemoveOperationSupport implements ExecutableRemoveOperation { @@ -51,11 +52,11 @@ class ExecutableRemoveOperationSupport implements ExecutableRemoveOperation { } @Override - public RemoveOperation remove(Class domainType) { + public ExecutableRemove remove(Class domainType) { Assert.notNull(domainType, "DomainType must not be null!"); - return new RemoveOperationSupport<>(tempate, null, domainType, null); + return new ExecutableRemoveSupport<>(tempate, null, domainType, null); } /** @@ -63,7 +64,7 @@ class ExecutableRemoveOperationSupport implements ExecutableRemoveOperation { * @since 2.0 */ @RequiredArgsConstructor - static class RemoveOperationSupport implements RemoveOperation, RemoveOperationWithCollection { + static class ExecutableRemoveSupport implements ExecutableRemove, RemoveWithCollection { private final MongoTemplate template; private final Query query; @@ -71,19 +72,19 @@ class ExecutableRemoveOperationSupport implements ExecutableRemoveOperation { private final String collection; @Override - public RemoveOperationWithQuery inCollection(String collection) { + public RemoveWithQuery inCollection(String collection) { Assert.hasText(collection, "Collection must not be null nor empty!"); - return new RemoveOperationSupport<>(template, query, domainType, collection); + return new ExecutableRemoveSupport<>(template, query, domainType, collection); } @Override - public TerminatingRemoveOperation matching(Query query) { + public TerminatingRemove matching(Query query) { Assert.notNull(query, "Query must not be null!"); - return new RemoveOperationSupport<>(template, query, domainType, collection); + return new ExecutableRemoveSupport<>(template, query, domainType, collection); } @Override diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperation.java index c244fd449..6b763dc35 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperation.java @@ -42,6 +42,7 @@ import com.mongodb.client.result.UpdateResult; * * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ public interface ExecutableUpdateOperation { @@ -50,17 +51,16 @@ public interface ExecutableUpdateOperation { * Start creating an update operation for the given {@literal domainType}. * * @param domainType must not be {@literal null}. - * @return new instance of {@link UpdateOperation}. + * @return new instance of {@link ExecutableUpdate}. * @throws IllegalArgumentException if domainType is {@literal null}. */ - UpdateOperation update(Class domainType); + ExecutableUpdate update(Class domainType); /** * @author Christoph Strobl * @since 2.0 */ - interface UpdateOperation - extends UpdateOperationWithCollection, UpdateOperationWithQuery, UpdateOperationWithUpdate {} + interface ExecutableUpdate extends UpdateWithCollection, UpdateWithQuery, UpdateWithUpdate {} /** * Declare the {@link Update} to apply. @@ -68,16 +68,16 @@ public interface ExecutableUpdateOperation { * @author Christoph Strobl * @since 2.0 */ - interface UpdateOperationWithUpdate { + interface UpdateWithUpdate { /** * Set the {@link Update} to be applied. * * @param update must not be {@literal null}. - * @return new instance of {@link TerminatingUpdateOperation}. + * @return new instance of {@link TerminatingUpdate}. * @throws IllegalArgumentException if update is {@literal null}. */ - TerminatingUpdateOperation apply(Update update); + TerminatingUpdate apply(Update update); } /** @@ -86,17 +86,17 @@ public interface ExecutableUpdateOperation { * @author Christoph Strobl * @since 2.0 */ - interface UpdateOperationWithCollection { + interface UpdateWithCollection { /** * Explicitly set the name of the collection to perform the query on.
* Skip this step to use the default collection derived from the domain type. * * @param collection must not be {@literal null} nor {@literal empty}. - * @return new instance of {@link UpdateOperationWithCollection}. + * @return new instance of {@link UpdateWithCollection}. * @throws IllegalArgumentException if collection is {@literal null}. */ - UpdateOperationWithQuery inCollection(String collection); + UpdateWithQuery inCollection(String collection); } /** @@ -105,16 +105,16 @@ public interface ExecutableUpdateOperation { * @author Christoph Strobl * @since 2.0 */ - interface UpdateOperationWithQuery extends UpdateOperationWithUpdate { + interface UpdateWithQuery extends UpdateWithUpdate { /** * Filter documents by given {@literal query}. * * @param query must not be {@literal null}. - * @return new instance of {@link UpdateOperationWithQuery}. + * @return new instance of {@link UpdateWithQuery}. * @throws IllegalArgumentException if query is {@literal null}. */ - UpdateOperationWithUpdate matching(Query query); + UpdateWithUpdate matching(Query query); } /** @@ -132,13 +132,13 @@ public interface ExecutableUpdateOperation { * @return new instance of {@link FindAndModifyWithOptions}. * @throws IllegalArgumentException if options is {@literal null}. */ - TerminatingFindAndModifyOperation withOptions(FindAndModifyOptions options); + TerminatingFindAndModify withOptions(FindAndModifyOptions options); } /** * Trigger findAndModify execution by calling one of the terminating methods. */ - interface TerminatingFindAndModifyOperation { + interface TerminatingFindAndModify { /** * Find, modify and return the first matching document. @@ -154,7 +154,7 @@ public interface ExecutableUpdateOperation { * @author Christoph Strobl * @since 2.0 */ - interface TerminatingUpdateOperation extends TerminatingFindAndModifyOperation, FindAndModifyWithOptions { + interface TerminatingUpdate extends TerminatingFindAndModify, FindAndModifyWithOptions { /** * Update all matching documents in the collection. diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupport.java index 54b11e5ed..f2f446012 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupport.java @@ -32,6 +32,7 @@ import com.mongodb.client.result.UpdateResult; * Implementation of {@link ExecutableUpdateOperation}. * * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { @@ -51,11 +52,11 @@ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { } @Override - public UpdateOperation update(Class domainType) { + public ExecutableUpdate update(Class domainType) { Assert.notNull(domainType, "DomainType must not be null!"); - return new UpdateOperationSupport<>(template, null, domainType, null, null, null); + return new ExecutableUpdateSupport<>(template, null, domainType, null, null, null); } /** @@ -63,8 +64,8 @@ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { * @since 2.0 */ @RequiredArgsConstructor - static class UpdateOperationSupport implements UpdateOperation, UpdateOperationWithCollection, - UpdateOperationWithQuery, TerminatingUpdateOperation { + static class ExecutableUpdateSupport + implements ExecutableUpdate, UpdateWithCollection, UpdateWithQuery, TerminatingUpdate { private final MongoTemplate template; private final Query query; @@ -74,19 +75,19 @@ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { private final FindAndModifyOptions options; @Override - public TerminatingUpdateOperation apply(Update update) { + public TerminatingUpdate apply(Update update) { Assert.notNull(update, "Update must not be null!"); - return new UpdateOperationSupport<>(template, query, domainType, update, collection, options); + return new ExecutableUpdateSupport<>(template, query, domainType, update, collection, options); } @Override - public UpdateOperationWithQuery inCollection(String collection) { + public UpdateWithQuery inCollection(String collection) { Assert.hasText(collection, "Collection must not be null nor empty!"); - return new UpdateOperationSupport<>(template, query, domainType, update, collection, options); + return new ExecutableUpdateSupport<>(template, query, domainType, update, collection, options); } @Override @@ -109,11 +110,11 @@ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { } @Override - public UpdateOperationWithUpdate matching(Query query) { + public UpdateWithUpdate matching(Query query) { Assert.notNull(query, "Query must not be null!"); - return new UpdateOperationSupport<>(template, query, domainType, update, collection, options); + return new ExecutableUpdateSupport<>(template, query, domainType, update, collection, options); } @Override @@ -122,11 +123,11 @@ class ExecutableUpdateOperationSupport implements ExecutableUpdateOperation { } @Override - public TerminatingFindAndModifyOperation withOptions(FindAndModifyOptions options) { + public TerminatingFindAndModify withOptions(FindAndModifyOptions options) { Assert.notNull(options, "Options must not be null!"); - return new UpdateOperationSupport<>(template, query, domainType, update, collection, options); + return new ExecutableUpdateSupport<>(template, query, domainType, update, collection, options); } private UpdateResult doUpdate(boolean multi, boolean upsert) { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java index 83d33d16b..4fc8341ed 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java @@ -24,19 +24,8 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Optional; -import java.util.Scanner; -import java.util.Set; import java.util.concurrent.TimeUnit; import org.bson.Document; @@ -1815,7 +1804,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * @see org.springframework.data.mongodb.core.ExecutableFindOperation#query(java.lang.Class) */ @Override - public FindOperation query(Class domainType) { + public ExecutableFind query(Class domainType) { return new ExecutableFindOperationSupport(this).query(domainType); } @@ -1824,7 +1813,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * @see org.springframework.data.mongodb.core.ExecutableUpdateOperation#update(java.lang.Class) */ @Override - public UpdateOperation update(Class domainType) { + public ExecutableUpdate update(Class domainType) { return new ExecutableUpdateOperationSupport(this).update(domainType); } @@ -1833,7 +1822,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * @see org.springframework.data.mongodb.core.ExecutableRemoveOperation#remove(java.lang.Class) */ @Override - public RemoveOperation remove(Class domainType) { + public ExecutableRemove remove(Class domainType) { return new ExecutableRemoveOperationSupport(this).remove(domainType); } @@ -1842,7 +1831,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * @see org.springframework.data.mongodb.core.ExecutableAggregationOperation#aggregateAndReturn(java.lang.Class) */ @Override - public AggregationOperation aggregateAndReturn(Class domainType) { + public ExecutableAggregation aggregateAndReturn(Class domainType) { return new ExecutableAggregationOperationSupport(this).aggregateAndReturn(domainType); } @@ -1851,7 +1840,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#insert(java.lang.Class) */ @Override - public InsertOperation insert(Class domainType) { + public ExecutableInsert insert(Class domainType) { return new ExecutableInsertOperationSupport(this).insert(domainType); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java index 6fce6f06c..35147fadd 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2016 the original author or authors. + * Copyright 2010-2017 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. @@ -15,8 +15,8 @@ */ package org.springframework.data.mongodb.repository.query; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithProjection; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithQuery; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithProjection; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.repository.query.MongoQueryExecution.DeleteExecution; @@ -42,7 +42,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { private final MongoQueryMethod method; private final MongoOperations operations; - private final FindOperationWithProjection findOperationWithProjection; + private final FindWithProjection findOperationWithProjection; /** * Creates a new {@link AbstractMongoQuery} from the given {@link MongoQueryMethod} and {@link MongoOperations}. @@ -87,14 +87,14 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { ResultProcessor processor = method.getResultProcessor().withDynamicProjection(accessor); ReturnedType returnedType = processor.getReturnedType(); - FindOperationWithQuery find = findOperationWithProjection.as(returnedType.getTypeToRead()); + FindWithQuery find = findOperationWithProjection.as(returnedType.getTypeToRead()); MongoQueryExecution execution = getExecution(accessor, find); return processor.processResult(execution.execute(query)); } - private MongoQueryExecution getExecution(ConvertingParameterAccessor accessor, FindOperationWithQuery operation) { + private MongoQueryExecution getExecution(ConvertingParameterAccessor accessor, FindWithQuery operation) { if (isDeleteQuery()) { return new DeleteExecution(operations, method); 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 7a64e4828..20460b4b5 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 @@ -30,8 +30,8 @@ import org.springframework.data.geo.GeoPage; import org.springframework.data.geo.GeoResult; import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Point; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithQuery; -import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery; +import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFind; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.Query; @@ -64,7 +64,7 @@ interface MongoQueryExecution { @RequiredArgsConstructor final class SlicedExecution implements MongoQueryExecution { - private final @NonNull FindOperationWithQuery find; + private final @NonNull FindWithQuery find; private final @NonNull Pageable pageable; /* @@ -96,7 +96,7 @@ interface MongoQueryExecution { @RequiredArgsConstructor final class PagedExecution implements MongoQueryExecution { - private final @NonNull FindOperationWithQuery operation; + private final @NonNull FindWithQuery operation; private final @NonNull Pageable pageable; /* @@ -108,7 +108,7 @@ interface MongoQueryExecution { int overallLimit = query.getLimit(); - TerminatingFindOperation matching = operation.matching(query); + TerminatingFind matching = operation.matching(query); // Apply raw pagination query.with(pageable); @@ -134,7 +134,7 @@ interface MongoQueryExecution { @RequiredArgsConstructor class GeoNearExecution implements MongoQueryExecution { - private final @NonNull FindOperationWithQuery operation; + private final @NonNull FindWithQuery operation; private final @NonNull MongoQueryMethod method; private final @NonNull MongoParameterAccessor accessor; @@ -191,12 +191,12 @@ interface MongoQueryExecution { */ final class PagingGeoNearExecution extends GeoNearExecution { - private final FindOperationWithQuery operation; + private final FindWithQuery operation; private final ConvertingParameterAccessor accessor; private final AbstractMongoQuery mongoQuery; - PagingGeoNearExecution(FindOperationWithQuery operation, MongoQueryMethod method, - ConvertingParameterAccessor accessor, AbstractMongoQuery query) { + PagingGeoNearExecution(FindWithQuery operation, MongoQueryMethod method, ConvertingParameterAccessor accessor, + AbstractMongoQuery query) { super(operation, method, accessor); diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt index 5b43222c4..44e906ef8 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt @@ -21,16 +21,18 @@ import kotlin.reflect.KClass * Extension for [ExecutableAggregationOperation.aggregateAndReturn] providing a [KClass] based variant. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -fun ExecutableAggregationOperation.aggregateAndReturn(entityClass: KClass): ExecutableAggregationOperation.AggregationOperation = - aggregateAndReturn(entityClass.java) +fun ExecutableAggregationOperation.aggregateAndReturn(entityClass: KClass): ExecutableAggregationOperation.ExecutableAggregation = + aggregateAndReturn(entityClass.java) /** * Extension for [ExecutableAggregationOperation.aggregateAndReturn] leveraging reified type parameters. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableAggregationOperation.aggregateAndReturn(): ExecutableAggregationOperation.AggregationOperation = - aggregateAndReturn(T::class.java) \ No newline at end of file +inline fun ExecutableAggregationOperation.aggregateAndReturn(): ExecutableAggregationOperation.ExecutableAggregation = + aggregateAndReturn(T::class.java) \ No newline at end of file diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt index be445235e..f51621f5d 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt @@ -21,37 +21,41 @@ import kotlin.reflect.KClass * Extension for [ExecutableFindOperation.query] providing a [KClass] based variant. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -fun ExecutableFindOperation.query(entityClass: KClass): ExecutableFindOperation.FindOperation = - query(entityClass.java) +fun ExecutableFindOperation.query(entityClass: KClass): ExecutableFindOperation.ExecutableFind = + query(entityClass.java) /** * Extension for [ExecutableFindOperation.query] leveraging reified type parameters. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableFindOperation.query(): ExecutableFindOperation.FindOperation = - query(T::class.java) +inline fun ExecutableFindOperation.query(): ExecutableFindOperation.ExecutableFind = + query(T::class.java) /** - * Extension for [ExecutableFindOperation.FindOperationWithProjection.as] providing a [KClass] based variant. + * Extension for [ExecutableFindOperation.FindWithProjection. as] providing a [KClass] based variant. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -fun ExecutableFindOperation.FindOperationWithProjection.asType(resultType: KClass): ExecutableFindOperation.FindOperationWithQuery = - `as`(resultType.java) +fun ExecutableFindOperation.FindWithProjection.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = + `as`(resultType.java) /** - * Extension for [ExecutableFindOperation.FindOperationWithProjection.as] leveraging reified type parameters. + * Extension for [ExecutableFindOperation.FindWithProjection. as] leveraging reified type parameters. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableFindOperation.FindOperationWithProjection.asType(): ExecutableFindOperation.FindOperationWithQuery = - `as`(T::class.java) +inline fun ExecutableFindOperation.FindWithProjection.asType(): ExecutableFindOperation.FindWithQuery = + `as`(T::class.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt index 1b0f80fcc..5ea288d64 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt @@ -21,16 +21,18 @@ import kotlin.reflect.KClass * Extension for [ExecutableInsertOperation.insert] providing a [KClass] based variant. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -fun ExecutableInsertOperation.insert(entityClass: KClass): ExecutableInsertOperation.InsertOperation = - insert(entityClass.java) +fun ExecutableInsertOperation.insert(entityClass: KClass): ExecutableInsertOperation.ExecutableInsert = + insert(entityClass.java) /** * Extension for [ExecutableInsertOperation.insert] leveraging reified type parameters. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableInsertOperation.insert(): ExecutableInsertOperation.InsertOperation = - insert(T::class.java) \ No newline at end of file +inline fun ExecutableInsertOperation.insert(): ExecutableInsertOperation.ExecutableInsert = + insert(T::class.java) \ No newline at end of file diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt index 5c84e67d6..08235dea9 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt @@ -21,16 +21,18 @@ import kotlin.reflect.KClass * Extension for [ExecutableRemoveOperation.remove] providing a [KClass] based variant. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -fun ExecutableRemoveOperation.remove(entityClass: KClass): ExecutableRemoveOperation.RemoveOperation = - remove(entityClass.java) +fun ExecutableRemoveOperation.remove(entityClass: KClass): ExecutableRemoveOperation.ExecutableRemove = + remove(entityClass.java) /** * Extension for [ExecutableRemoveOperation.remove] leveraging reified type parameters. * * @author Sebastien Deleuze + * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableRemoveOperation.remove(): ExecutableRemoveOperation.RemoveOperation = - remove(T::class.java) \ No newline at end of file +inline fun ExecutableRemoveOperation.remove(): ExecutableRemoveOperation.ExecutableRemove = + remove(T::class.java) \ No newline at end of file diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java index 099f810f3..ffa8b15a2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java @@ -31,7 +31,7 @@ import org.springframework.dao.IncorrectResultSizeDataAccessException; import org.springframework.data.annotation.Id; import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Point; -import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFind; import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; import org.springframework.data.mongodb.core.index.GeospatialIndex; import org.springframework.data.mongodb.core.mapping.Field; @@ -222,7 +222,7 @@ public class ExecutableFindOperationSupportTests { @Test // DATAMONGO-1733 public void streamAllReturningResultsAsClosedInterfaceProjection() { - TerminatingFindOperation operation = template.query(Person.class).as(PersonProjection.class); + TerminatingFind operation = template.query(Person.class).as(PersonProjection.class); assertThat(operation.stream()) // .hasSize(2) // @@ -235,8 +235,7 @@ public class ExecutableFindOperationSupportTests { @Test // DATAMONGO-1733 public void streamAllReturningResultsAsOpenInterfaceProjection() { - TerminatingFindOperation operation = template.query(Person.class) - .as(PersonSpELProjection.class); + TerminatingFind operation = template.query(Person.class).as(PersonSpELProjection.class); assertThat(operation.stream()) // .hasSize(2) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java index 9de3e3d93..b1593ed49 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java @@ -39,9 +39,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.MongoDbFactory; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperation; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithProjection; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithQuery; +import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithProjection; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.Person; import org.springframework.data.mongodb.core.convert.DbRefResolver; @@ -71,9 +71,9 @@ import com.mongodb.client.result.DeleteResult; public class AbstractMongoQueryUnitTests { @Mock MongoOperations mongoOperationsMock; - @Mock FindOperation findOperationMock; - @Mock FindOperationWithProjection withProjectionMock; - @Mock FindOperationWithQuery withQueryMock; + @Mock ExecutableFind findOperationMock; + @Mock FindWithProjection withProjectionMock; + @Mock FindWithQuery withQueryMock; @Mock BasicMongoPersistentEntity persitentEntityMock; @Mock MongoMappingContext mappingContextMock; @Mock DeleteResult deleteResultMock; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java index 80c345766..6379a87a0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java @@ -35,10 +35,10 @@ import org.springframework.data.geo.GeoResult; import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Metrics; import org.springframework.data.geo.Point; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperation; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperationWithQuery; -import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindNearOperation; -import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind; +import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery; +import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFind; +import org.springframework.data.mongodb.core.ExecutableFindOperation.TerminatingFindNear; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.DbRefResolver; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -66,10 +66,10 @@ import org.springframework.util.ReflectionUtils; public class MongoQueryExecutionUnitTests { @Mock MongoOperations mongoOperationsMock; - @Mock FindOperation findOperationMock; - @Mock FindOperationWithQuery operationMock; - @Mock TerminatingFindOperation terminatingMock; - @Mock TerminatingFindNearOperation terminatingGeoMock; + @Mock ExecutableFind findOperationMock; + @Mock FindWithQuery operationMock; + @Mock TerminatingFind terminatingMock; + @Mock TerminatingFindNear terminatingGeoMock; @Mock DbRefResolver dbRefResolver; Point POINT = new Point(10, 20); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java index 97927fb20..5670e3010 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java @@ -34,7 +34,7 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.mongodb.MongoDbFactory; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.DbRefResolver; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; @@ -65,7 +65,7 @@ import com.mongodb.util.JSONParseException; public class PartTreeMongoQueryUnitTests { @Mock MongoOperations mongoOperationsMock; - @Mock FindOperation findOperationMock; + @Mock ExecutableFind findOperationMock; MongoMappingContext mappingContext; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java index fef4ac07a..c12dc9353 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java @@ -38,7 +38,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.data.mongodb.core.DocumentTestUtils; -import org.springframework.data.mongodb.core.ExecutableFindOperation.FindOperation; +import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.DbRefResolver; import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper; @@ -70,7 +70,7 @@ public class StringBasedMongoQueryUnitTests { SpelExpressionParser PARSER = new SpelExpressionParser(); @Mock MongoOperations operations; - @Mock FindOperation findOperation; + @Mock ExecutableFind findOperation; @Mock DbRefResolver factory; MongoConverter converter;