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 54e45014e..30b4bbcd7 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 @@ -315,6 +315,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { prepareIndexCreator(applicationContext); @@ -380,6 +381,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * * @return */ + @Override public MongoConverter getConverter() { return this.mongoConverter; } @@ -519,6 +521,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#execute(org.springframework.data.mongodb.core.DbCallback) */ + @Override public T execute(DbCallback action) { Assert.notNull(action, "DbCallback must not be null!"); @@ -535,6 +538,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#execute(java.lang.Class, org.springframework.data.mongodb.core.DbCallback) */ + @Override public T execute(Class entityClass, CollectionCallback callback) { Assert.notNull(entityClass, "EntityClass must not be null!"); @@ -545,6 +549,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#execute(java.lang.String, org.springframework.data.mongodb.core.DbCallback) */ + @Override public T execute(String collectionName, CollectionCallback callback) { Assert.notNull(collectionName, "CollectionName must not be null!"); @@ -597,6 +602,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#createCollection(java.lang.Class) */ + @Override public MongoCollection createCollection(Class entityClass) { return createCollection(entityClass, operations.forType(entityClass).getCollectionOptions()); } @@ -605,6 +611,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#createCollection(java.lang.Class, org.springframework.data.mongodb.core.CollectionOptions) */ + @Override public MongoCollection createCollection(Class entityClass, @Nullable CollectionOptions collectionOptions) { @@ -623,6 +630,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#createCollection(java.lang.String) */ + @Override public MongoCollection createCollection(String collectionName) { Assert.notNull(collectionName, "CollectionName must not be null!"); @@ -634,6 +642,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#createCollection(java.lang.String, org.springframework.data.mongodb.core.CollectionOptions) */ + @Override public MongoCollection createCollection(String collectionName, @Nullable CollectionOptions collectionOptions) { @@ -645,6 +654,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#getCollection(java.lang.String) */ + @Override @SuppressWarnings("ConstantConditions") public MongoCollection getCollection(String collectionName) { @@ -657,6 +667,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#getCollection(java.lang.Class) */ + @Override public boolean collectionExists(Class entityClass) { return collectionExists(getCollectionName(entityClass)); } @@ -665,6 +676,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#getCollection(java.lang.String) */ + @Override @SuppressWarnings("ConstantConditions") public boolean collectionExists(String collectionName) { @@ -685,6 +697,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#dropCollection(java.lang.Class) */ + @Override public void dropCollection(Class entityClass) { dropCollection(getCollectionName(entityClass)); } @@ -693,6 +706,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#dropCollection(java.lang.String) */ + @Override public void dropCollection(String collectionName) { Assert.notNull(collectionName, "CollectionName must not be null!"); @@ -716,6 +730,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#indexOps(java.lang.String) */ + @Override public IndexOperations indexOps(String collectionName, @Nullable Class type) { return new DefaultIndexOperations(this, collectionName, type); } @@ -724,6 +739,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#indexOps(java.lang.Class) */ + @Override public IndexOperations indexOps(Class entityClass) { return indexOps(getCollectionName(entityClass), entityClass); } @@ -732,6 +748,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#bulkOps(org.springframework.data.mongodb.core.BulkMode, java.lang.String) */ + @Override public BulkOperations bulkOps(BulkMode bulkMode, String collectionName) { return bulkOps(bulkMode, null, collectionName); } @@ -740,6 +757,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#bulkOps(org.springframework.data.mongodb.core.BulkMode, java.lang.Class) */ + @Override public BulkOperations bulkOps(BulkMode bulkMode, Class entityClass) { return bulkOps(bulkMode, entityClass, getCollectionName(entityClass)); } @@ -748,6 +766,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#bulkOps(org.springframework.data.mongodb.core.BulkMode, java.lang.Class, java.lang.String) */ + @Override public BulkOperations bulkOps(BulkMode mode, @Nullable Class entityType, String collectionName) { Assert.notNull(mode, "BulkMode must not be null!"); @@ -1109,6 +1128,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoOperations#count(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public long count(Query query, @Nullable Class entityClass, String collectionName) { Assert.notNull(query, "Query must not be null!"); @@ -1915,10 +1935,12 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, return mappedResults; } + @Override public GroupByResults group(String inputCollectionName, GroupBy groupBy, Class entityClass) { return group(null, inputCollectionName, groupBy, entityClass); } + @Override public GroupByResults group(@Nullable Criteria criteria, String inputCollectionName, GroupBy groupBy, Class entityClass) { @@ -2325,6 +2347,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.ExecutableInsertOperation#getCollectionNames() */ + @Override @SuppressWarnings("ConstantConditions") public Set getCollectionNames() { return execute(db -> { @@ -2974,6 +2997,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, this.collation = collation; } + @Override public FindIterable doInCollection(MongoCollection collection) throws MongoException, DataAccessException { @@ -3033,6 +3057,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, this.collation = Optional.ofNullable(collation); } + @Override public Document doInCollection(MongoCollection collection) throws MongoException, DataAccessException { FindOneAndDeleteOptions opts = new FindOneAndDeleteOptions().sort(sort).projection(fields); @@ -3062,6 +3087,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, this.options = options; } + @Override public Document doInCollection(MongoCollection collection) throws MongoException, DataAccessException { FindOneAndUpdateOptions opts = new FindOneAndUpdateOptions(); @@ -3174,6 +3200,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, this.collectionName = collectionName; } + @Override public T doWith(Document document) { maybeEmitEvent(new AfterLoadEvent<>(document, type, collectionName)); @@ -3218,6 +3245,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.MongoTemplate.DocumentCallback#doWith(org.bson.Document) */ + @Override @SuppressWarnings("unchecked") public T doWith(Document document) { @@ -3258,6 +3286,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, * (non-Javadoc) * @see org.springframework.data.mongodb.core.CursorPreparer#prepare(com.mongodb.DBCursor) */ + @Override public FindIterable prepare(FindIterable iterable) { FindIterable cursorToUse = iterable; @@ -3376,6 +3405,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, this.metric = metric; } + @Override public GeoResult doWith(Document object) { double distance = Double.NaN; diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java index c7ad7af1b..b173bea7f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java @@ -340,6 +340,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { prepareIndexCreator(applicationContext); @@ -406,6 +407,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * * @return */ + @Override public MongoConverter getConverter() { return this.mongoConverter; } @@ -414,6 +416,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#reactiveIndexOps(java.lang.String) */ + @Override public ReactiveIndexOperations indexOps(String collectionName) { return new DefaultReactiveIndexOperations(this, collectionName, this.queryMapper); } @@ -422,10 +425,12 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#reactiveIndexOps(java.lang.Class) */ + @Override public ReactiveIndexOperations indexOps(Class entityClass) { return new DefaultReactiveIndexOperations(this, getCollectionName(entityClass), this.queryMapper, entityClass); } + @Override public String getCollectionName(Class entityClass) { return operations.determineCollectionName(entityClass); } @@ -434,6 +439,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#executeCommand(java.lang.String) */ + @Override public Mono executeCommand(String jsonCommand) { Assert.notNull(jsonCommand, "Command must not be empty!"); @@ -445,6 +451,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#executeCommand(org.bson.Document) */ + @Override public Mono executeCommand(Document command) { return executeCommand(command, null); } @@ -453,6 +460,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#executeCommand(org.bson.Document, com.mongodb.ReadPreference) */ + @Override public Mono executeCommand(Document command, @Nullable ReadPreference readPreference) { Assert.notNull(command, "Command must not be null!"); @@ -483,6 +491,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#execute(java.lang.String, org.springframework.data.mongodb.core.ReactiveCollectionCallback) */ + @Override public Flux execute(String collectionName, ReactiveCollectionCallback callback) { Assert.notNull(callback, "ReactiveCollectionCallback must not be null!"); @@ -580,6 +589,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#withSession(com.mongodb.session.ClientSession) */ + @Override public ReactiveMongoOperations withSession(ClientSession session) { return new ReactiveSessionBoundMongoTemplate(session, ReactiveMongoTemplate.this); } @@ -665,6 +675,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#createCollection(java.lang.Class) */ + @Override public Mono> createCollection(Class entityClass) { return createCollection(entityClass, operations.forType(entityClass).getCollectionOptions()); } @@ -673,6 +684,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#createCollection(java.lang.Class, org.springframework.data.mongodb.core.CollectionOptions) */ + @Override public Mono> createCollection(Class entityClass, @Nullable CollectionOptions collectionOptions) { @@ -691,6 +703,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#createCollection(java.lang.String) */ + @Override public Mono> createCollection(String collectionName) { return doCreateCollection(collectionName, new CreateCollectionOptions()); } @@ -699,6 +712,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#createCollection(java.lang.String, org.springframework.data.mongodb.core.CollectionOptions) */ + @Override public Mono> createCollection(String collectionName, @Nullable CollectionOptions collectionOptions) { return doCreateCollection(collectionName, convertToCreateCollectionOptions(collectionOptions)); @@ -708,6 +722,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#getCollection(java.lang.String) */ + @Override public Mono> getCollection(String collectionName) { Assert.notNull(collectionName, "Collection name must not be null!"); @@ -719,6 +734,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#collectionExists(java.lang.Class) */ + @Override public Mono collectionExists(Class entityClass) { return collectionExists(getCollectionName(entityClass)); } @@ -727,6 +743,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#collectionExists(java.lang.String) */ + @Override public Mono collectionExists(String collectionName) { return createMono(db -> Flux.from(db.listCollectionNames()) // .filter(s -> s.equals(collectionName)) // @@ -738,6 +755,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#dropCollection(java.lang.Class) */ + @Override public Mono dropCollection(Class entityClass) { return dropCollection(getCollectionName(entityClass)); } @@ -746,6 +764,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#dropCollection(java.lang.String) */ + @Override public Mono dropCollection(String collectionName) { return createMono(collectionName, MongoCollection::drop).doOnSuccess(success -> { @@ -759,6 +778,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#getCollectionNames() */ + @Override public Flux getCollectionNames() { return createFlux(MongoDatabase::listCollectionNames); } @@ -775,6 +795,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findOne(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Mono findOne(Query query, Class entityClass) { return findOne(query, entityClass, getCollectionName(entityClass)); } @@ -783,6 +804,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findOne(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Mono findOne(Query query, Class entityClass, String collectionName) { if (ObjectUtils.isEmpty(query.getSortObject())) { @@ -798,6 +820,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#exists(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Mono exists(Query query, Class entityClass) { return exists(query, entityClass, getCollectionName(entityClass)); } @@ -806,6 +829,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#exists(org.springframework.data.mongodb.core.query.Query, java.lang.String) */ + @Override public Mono exists(Query query, String collectionName) { return exists(query, null, collectionName); } @@ -814,6 +838,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#exists(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Mono exists(Query query, @Nullable Class entityClass, String collectionName) { if (query == null) { @@ -842,6 +867,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#find(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Flux find(Query query, Class entityClass) { return find(query, entityClass, getCollectionName(entityClass)); } @@ -850,6 +876,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#find(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Flux find(@Nullable Query query, Class entityClass, String collectionName) { if (query == null) { @@ -864,6 +891,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findById(java.lang.Object, java.lang.Class) */ + @Override public Mono findById(Object id, Class entityClass) { return findById(id, entityClass, getCollectionName(entityClass)); } @@ -872,6 +900,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findById(java.lang.Object, java.lang.Class, java.lang.String) */ + @Override public Mono findById(Object id, Class entityClass, String collectionName) { String idKey = operations.getIdPropertyName(entityClass); @@ -883,6 +912,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findDistinct(org.springframework.data.mongodb.core.query.Query, java.lang.String, java.lang.Class, java.lang.Class) */ + @Override public Flux findDistinct(Query query, String field, Class entityClass, Class resultClass) { return findDistinct(query, field, getCollectionName(entityClass), entityClass, resultClass); } @@ -891,6 +921,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findDistinct(org.springframework.data.mongodb.core.query.Query, java.lang.String, java.lang.String, java.lang.Class, java.lang.Class) */ + @Override @SuppressWarnings("unchecked") public Flux findDistinct(Query query, String field, String collectionName, Class entityClass, Class resultClass) { @@ -1073,6 +1104,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndModify(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class) */ + @Override public Mono findAndModify(Query query, UpdateDefinition update, Class entityClass) { return findAndModify(query, update, new FindAndModifyOptions(), entityClass, getCollectionName(entityClass)); } @@ -1081,6 +1113,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndModify(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class, java.lang.String) */ + @Override public Mono findAndModify(Query query, UpdateDefinition update, Class entityClass, String collectionName) { return findAndModify(query, update, new FindAndModifyOptions(), entityClass, collectionName); } @@ -1089,6 +1122,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndModify(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, org.springframework.data.mongodb.core.FindAndModifyOptions, java.lang.Class) */ + @Override public Mono findAndModify(Query query, UpdateDefinition update, FindAndModifyOptions options, Class entityClass) { return findAndModify(query, update, options, entityClass, getCollectionName(entityClass)); @@ -1098,6 +1132,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndModify(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, org.springframework.data.mongodb.core.FindAndModifyOptions, java.lang.Class, java.lang.String) */ + @Override public Mono findAndModify(Query query, UpdateDefinition update, FindAndModifyOptions options, Class entityClass, String collectionName) { @@ -1174,6 +1209,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndRemove(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Mono findAndRemove(Query query, Class entityClass) { return findAndRemove(query, entityClass, getCollectionName(entityClass)); } @@ -1182,6 +1218,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAndRemove(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Mono findAndRemove(Query query, Class entityClass, String collectionName) { operations.forType(entityClass).getCollation(query); @@ -1194,6 +1231,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#count(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Mono count(Query query, Class entityClass) { Assert.notNull(entityClass, "Entity class must not be null!"); @@ -1205,6 +1243,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#count(org.springframework.data.mongodb.core.query.Query, java.lang.String) */ + @Override public Mono count(Query query, String collectionName) { return count(query, null, collectionName); } @@ -1213,6 +1252,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#count(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Mono count(Query query, @Nullable Class entityClass, String collectionName) { Assert.notNull(query, "Query must not be null!"); @@ -1298,6 +1338,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#insert(java.lang.Object) */ + @Override public Mono insert(T objectToSave) { Assert.notNull(objectToSave, "Object to insert must not be null!"); @@ -1310,6 +1351,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#insert(java.lang.Object, java.lang.String) */ + @Override public Mono insert(T objectToSave, String collectionName) { Assert.notNull(objectToSave, "Object to insert must not be null!"); @@ -1352,6 +1394,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#insert(java.util.Collection, java.lang.Class) */ + @Override public Flux insert(Collection batchToSave, Class entityClass) { return doInsertBatch(getCollectionName(entityClass), batchToSave, this.mongoConverter); } @@ -1360,6 +1403,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#insert(java.util.Collection, java.lang.String) */ + @Override public Flux insert(Collection batchToSave, String collectionName) { return doInsertBatch(collectionName, batchToSave, this.mongoConverter); } @@ -1368,6 +1412,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#insertAll(java.util.Collection) */ + @Override public Flux insertAll(Collection objectsToSave) { return doInsertAll(objectsToSave, this.mongoConverter); } @@ -1468,6 +1513,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#save(java.lang.Object) */ + @Override public Mono save(T objectToSave) { Assert.notNull(objectToSave, "Object to save must not be null!"); @@ -1478,6 +1524,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#save(java.lang.Object, java.lang.String) */ + @Override public Mono save(T objectToSave, String collectionName) { Assert.notNull(objectToSave, "Object to save must not be null!"); @@ -1672,6 +1719,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#upsert(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class) */ + @Override public Mono upsert(Query query, UpdateDefinition update, Class entityClass) { return doUpdate(getCollectionName(entityClass), query, update, entityClass, true, false); } @@ -1680,6 +1728,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#upsert(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.String) */ + @Override public Mono upsert(Query query, UpdateDefinition update, String collectionName) { return doUpdate(collectionName, query, update, null, true, false); } @@ -1688,6 +1737,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#upsert(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class, java.lang.String) */ + @Override public Mono upsert(Query query, UpdateDefinition update, Class entityClass, String collectionName) { return doUpdate(collectionName, query, update, entityClass, true, false); } @@ -1696,6 +1746,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc)) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateFirst(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class) */ + @Override public Mono updateFirst(Query query, UpdateDefinition update, Class entityClass) { return doUpdate(getCollectionName(entityClass), query, update, entityClass, false, false); } @@ -1704,6 +1755,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateFirst(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.String) */ + @Override public Mono updateFirst(Query query, UpdateDefinition update, String collectionName) { return doUpdate(collectionName, query, update, null, false, false); } @@ -1712,6 +1764,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateFirst(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class, java.lang.String) */ + @Override public Mono updateFirst(Query query, UpdateDefinition update, Class entityClass, String collectionName) { return doUpdate(collectionName, query, update, entityClass, false, false); @@ -1721,6 +1774,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateMulti(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class) */ + @Override public Mono updateMulti(Query query, UpdateDefinition update, Class entityClass) { return doUpdate(getCollectionName(entityClass), query, update, entityClass, false, true); } @@ -1729,6 +1783,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateMulti(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.String) */ + @Override public Mono updateMulti(Query query, UpdateDefinition update, String collectionName) { return doUpdate(collectionName, query, update, null, false, true); } @@ -1737,6 +1792,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#updateMulti(org.springframework.data.mongodb.core.query.Query, org.springframework.data.mongodb.core.query.UpdateDefinition, java.lang.Class, java.lang.String) */ + @Override public Mono updateMulti(Query query, UpdateDefinition update, Class entityClass, String collectionName) { return doUpdate(collectionName, query, update, entityClass, false, true); @@ -1870,6 +1926,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#remove(java.lang.Object) */ + @Override public Mono remove(Object object) { Assert.notNull(object, "Object must not be null!"); @@ -1881,6 +1938,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#remove(java.lang.Object, java.lang.String) */ + @Override public Mono remove(Object object, String collectionName) { Assert.notNull(object, "Object must not be null!"); @@ -1914,6 +1972,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#remove(org.springframework.data.mongodb.core.query.Query, java.lang.String) */ + @Override public Mono remove(Query query, String collectionName) { return remove(query, null, collectionName); } @@ -1922,6 +1981,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#remove(org.springframework.data.mongodb.core.query.Query, java.lang.Class) */ + @Override public Mono remove(Query query, Class entityClass) { return remove(query, entityClass, getCollectionName(entityClass)); } @@ -1930,6 +1990,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#remove(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ + @Override public Mono remove(Query query, @Nullable Class entityClass, String collectionName) { return doRemove(collectionName, query, entityClass); } @@ -1988,6 +2049,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAll(java.lang.Class) */ + @Override public Flux findAll(Class entityClass) { return findAll(entityClass, getCollectionName(entityClass)); } @@ -1996,6 +2058,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#findAll(java.lang.Class, java.lang.String) */ + @Override public Flux findAll(Class entityClass, String collectionName) { return executeFindMultiInternal(new FindCallback(null), FindPublisherPreparer.NO_OP_PREPARER, new ReadDocumentCallback<>(mongoConverter, entityClass, collectionName), collectionName); @@ -2115,6 +2178,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#mapReduce(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.Class, java.lang.String, java.lang.String, org.springframework.data.mongodb.core.mapreduce.MapReduceOptions) */ + @Override public Flux mapReduce(Query filterQuery, Class domainType, Class resultType, String mapFunction, String reduceFunction, MapReduceOptions options) { @@ -2126,6 +2190,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#mapReduce(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, org.springframework.data.mongodb.core.mapreduce.MapReduceOptions) */ + @Override public Flux mapReduce(Query filterQuery, Class domainType, String inputCollectionName, Class resultType, String mapFunction, String reduceFunction, MapReduceOptions options) { @@ -3147,6 +3212,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati */ interface ReactiveCollectionQueryCallback extends ReactiveCollectionCallback { + @Override FindPublisher doInCollection(MongoCollection collection) throws MongoException, DataAccessException; } @@ -3173,6 +3239,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati this.collectionName = collectionName; } + @Override public Mono doWith(Document document) { maybeEmitEvent(new AfterLoadEvent<>(document, type, collectionName)); @@ -3213,6 +3280,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati this.collectionName = collectionName; } + @Override @SuppressWarnings("unchecked") public Mono doWith(Document document) { @@ -3267,6 +3335,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati this.metric = metric; } + @Override public Mono> doWith(Document object) { double distance = getDistance(object); @@ -3298,6 +3367,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati this.type = type; } + @Override public FindPublisher prepare(FindPublisher findPublisher) { FindPublisher findPublisherToUse = operations.forType(type) //