Skip to content

Commit 5388025

Browse files
committed
DATAMONGO-2138 - Replace use of Query by GenericQuery
1 parent 11829bb commit 5388025

File tree

1 file changed

+64
-63
lines changed

1 file changed

+64
-63
lines changed

spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensions.kt

Lines changed: 64 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.mapreduce.GroupByResults
2929
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions
3030
import org.springframework.data.mongodb.core.mapreduce.MapReduceResults
3131
import org.springframework.data.mongodb.core.query.Criteria
32+
import org.springframework.data.mongodb.core.query.GenericQuery
3233
import org.springframework.data.mongodb.core.query.NearQuery
3334
import org.springframework.data.mongodb.core.query.Query
3435
import org.springframework.data.mongodb.core.query.Update
@@ -68,18 +69,18 @@ inline fun <reified T : Any> MongoOperations.execute(action: CollectionCallback<
6869
* @author Sebastien Deleuze
6970
* @since 2.0
7071
*/
71-
inline fun <reified T : Any> MongoOperations.stream(query: Query): CloseableIterator<T> =
72-
stream(query, T::class.java)
72+
inline fun <reified T : Any> MongoOperations.stream(genericQuery: GenericQuery<T>): CloseableIterator<T> =
73+
stream(genericQuery.query, T::class.java)
7374

7475
/**
7576
* Extension for [MongoOperations.stream] leveraging reified type parameters.
7677
*
7778
* @author Sebastien Deleuze
7879
* @since 2.0
7980
*/
80-
inline fun <reified T : Any> MongoOperations.stream(query: Query, collectionName: String? = null): CloseableIterator<T> =
81-
if (collectionName != null) stream(query, T::class.java, collectionName)
82-
else stream(query, T::class.java)
81+
inline fun <reified T : Any> MongoOperations.stream(genericQuery: GenericQuery<T>, collectionName: String? = null): CloseableIterator<T> =
82+
if (collectionName != null) stream(genericQuery.query, T::class.java, collectionName)
83+
else stream(genericQuery.query, T::class.java)
8384

8485
/**
8586
* Extension for [MongoOperations.createCollection] providing a [KClass] based variant.
@@ -258,9 +259,9 @@ inline fun <reified T : Any> MongoOperations.mapReduce(collectionName: String, m
258259
* @author Sebastien Deleuze
259260
* @since 52.0
260261
*/
261-
inline fun <reified T : Any> MongoOperations.mapReduce(query: Query, collectionName: String, mapFunction: String, reduceFunction: String, options: MapReduceOptions? = null): MapReduceResults<T> =
262-
if (options != null) mapReduce(query, collectionName, mapFunction, reduceFunction, options, T::class.java)
263-
else mapReduce(query, collectionName, mapFunction, reduceFunction, T::class.java)
262+
inline fun <reified T : Any> MongoOperations.mapReduce(genericQuery: GenericQuery<T>, collectionName: String, mapFunction: String, reduceFunction: String, options: MapReduceOptions? = null): MapReduceResults<T> =
263+
if (options != null) mapReduce(genericQuery.query, collectionName, mapFunction, reduceFunction, options, T::class.java)
264+
else mapReduce(genericQuery.query, collectionName, mapFunction, reduceFunction, T::class.java)
264265

265266
/**
266267
* Extension for [MongoOperations.geoNear] leveraging reified type parameters.
@@ -278,18 +279,18 @@ inline fun <reified T : Any> MongoOperations.geoNear(near: NearQuery, collection
278279
* @author Sebastien Deleuze
279280
* @since 2.0
280281
*/
281-
inline fun <reified T : Any> MongoOperations.findOne(query: Query, collectionName: String? = null): T? =
282-
if (collectionName != null) findOne(query, T::class.java, collectionName) else findOne(query, T::class.java)
282+
inline fun <reified T : Any> MongoOperations.findOne(genericQuery: GenericQuery<T>, collectionName: String? = null): T? =
283+
if (collectionName != null) findOne(genericQuery.query, T::class.java, collectionName) else findOne(genericQuery.query, T::class.java)
283284

284285
/**
285286
* Extension for [MongoOperations.exists] providing a [KClass] based variant.
286287
*
287288
* @author Sebastien Deleuze
288289
* @since 2.0
289290
*/
290-
fun <T : Any> MongoOperations.exists(query: Query, entityClass: KClass<T>, collectionName: String? = null): Boolean =
291-
if (collectionName != null) exists(query, entityClass.java, collectionName)
292-
else exists(query, entityClass.java)
291+
fun <T : Any> MongoOperations.exists(genericQuery: GenericQuery<T>, entityClass: KClass<T>, collectionName: String? = null): Boolean =
292+
if (collectionName != null) exists(genericQuery.query, entityClass.java, collectionName)
293+
else exists(genericQuery.query, entityClass.java)
293294

294295
/**
295296
* Extension for [MongoOperations.exists] leveraging reified type parameters.
@@ -298,19 +299,19 @@ fun <T : Any> MongoOperations.exists(query: Query, entityClass: KClass<T>, colle
298299
* @since 2.0
299300
*/
300301
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
301-
inline fun <reified T : Any> MongoOperations.exists(query: Query, collectionName: String? = null): Boolean =
302-
if (collectionName != null) exists(query, T::class.java, collectionName)
303-
else exists(query, T::class.java)
302+
inline fun <reified T : Any> MongoOperations.exists(genericQuery: GenericQuery<T>, collectionName: String? = null): Boolean =
303+
if (collectionName != null) exists(genericQuery.query, T::class.java, collectionName)
304+
else exists(genericQuery.query, T::class.java)
304305

305306
/**
306307
* Extension for [MongoOperations.find] leveraging reified type parameters.
307308
*
308309
* @author Sebastien Deleuze
309310
* @since 2.0
310311
*/
311-
inline fun <reified T : Any> MongoOperations.find(query: Query, collectionName: String? = null): List<T> =
312-
if (collectionName != null) find(query, T::class.java, collectionName)
313-
else find(query, T::class.java)
312+
inline fun <reified T : Any> MongoOperations.find(genericQuery: GenericQuery<T>, collectionName: String? = null): List<T> =
313+
if (collectionName != null) find(genericQuery.query, T::class.java, collectionName)
314+
else find(genericQuery.query, T::class.java)
314315

315316
/**
316317
* Extension for [MongoOperations.findById] leveraging reified type parameters.
@@ -337,17 +338,17 @@ inline fun <reified T : Any> MongoOperations.findDistinct(field: String, entityC
337338
* @author Christoph Strobl
338339
* @since 2.1
339340
*/
340-
inline fun <reified T : Any> MongoOperations.findDistinct(query: Query, field: String, entityClass: KClass<*>): List<T> =
341-
findDistinct(query, field, entityClass.java, T::class.java)
341+
inline fun <reified T : Any> MongoOperations.findDistinct(genericQuery: GenericQuery<T>, field: String, entityClass: KClass<*>): List<T> =
342+
findDistinct(genericQuery.query, field, entityClass.java, T::class.java)
342343

343344
/**
344345
* Extension for [MongoOperations.findDistinct] leveraging reified type parameters.
345346
*
346347
* @author Christoph Strobl
347348
* @since 2.1
348349
*/
349-
inline fun <reified T : Any> MongoOperations.findDistinct(query: Query, field: String, collectionName: String, entityClass: KClass<*>): List<T> =
350-
findDistinct(query, field, collectionName, entityClass.java, T::class.java)
350+
inline fun <reified T : Any> MongoOperations.findDistinct(genericQuery: GenericQuery<T>, field: String, collectionName: String, entityClass: KClass<*>): List<T> =
351+
findDistinct(genericQuery.query, field, collectionName, entityClass.java, T::class.java)
351352

352353
/**
353354
* Extension for [MongoOperations.findDistinct] leveraging reified type parameters.
@@ -356,39 +357,39 @@ inline fun <reified T : Any> MongoOperations.findDistinct(query: Query, field: S
356357
* @author Mark Paluch
357358
* @since 2.1
358359
*/
359-
inline fun <reified T : Any, reified E : Any> MongoOperations.findDistinct(query: Query, field: String, collectionName: String? = null): List<T> =
360-
if (collectionName != null) findDistinct(query, field, collectionName, E::class.java, T::class.java)
361-
else findDistinct(query, field, E::class.java, T::class.java)
360+
inline fun <reified T : Any, reified E : Any> MongoOperations.findDistinct(genericQuery: GenericQuery<T>, field: String, collectionName: String? = null): List<T> =
361+
if (collectionName != null) findDistinct(genericQuery.query, field, collectionName, E::class.java, T::class.java)
362+
else findDistinct(genericQuery.query, field, E::class.java, T::class.java)
362363

363364
/**
364365
* Extension for [MongoOperations.findAndModify] leveraging reified type parameters.
365366
*
366367
* @author Sebastien Deleuze
367368
* @since 2.0
368369
*/
369-
inline fun <reified T : Any> MongoOperations.findAndModify(query: Query, update: Update, options: FindAndModifyOptions, collectionName: String? = null): T? =
370-
if (collectionName != null) findAndModify(query, update, options, T::class.java, collectionName)
371-
else findAndModify(query, update, options, T::class.java)
370+
inline fun <reified T : Any> MongoOperations.findAndModify(genericQuery: GenericQuery<T>, update: Update, options: FindAndModifyOptions, collectionName: String? = null): T? =
371+
if (collectionName != null) findAndModify(genericQuery.query, update, options, T::class.java, collectionName)
372+
else findAndModify(genericQuery.query, update, options, T::class.java)
372373

373374
/**
374375
* Extension for [MongoOperations.findAndRemove] leveraging reified type parameters.
375376
*
376377
* @author Sebastien Deleuze
377378
* @since 2.0
378379
*/
379-
inline fun <reified T : Any> MongoOperations.findAndRemove(query: Query, collectionName: String? = null): T? =
380-
if (collectionName != null) findAndRemove(query, T::class.java, collectionName)
381-
else findAndRemove(query, T::class.java)
380+
inline fun <reified T : Any> MongoOperations.findAndRemove(genericQuery: GenericQuery<T>, collectionName: String? = null): T? =
381+
if (collectionName != null) findAndRemove(genericQuery.query, T::class.java, collectionName)
382+
else findAndRemove(genericQuery.query, T::class.java)
382383

383384
/**
384385
* Extension for [MongoOperations.count] providing a [KClass] based variant.
385386
*
386387
* @author Sebastien Deleuze
387388
* @since 2.0
388389
*/
389-
fun <T : Any> MongoOperations.count(query: Query = Query(), entityClass: KClass<T>, collectionName: String? = null): Long =
390-
if (collectionName != null) count(query, entityClass.java, collectionName)
391-
else count(query, entityClass.java)
390+
fun <T : Any> MongoOperations.count(genericQuery: GenericQuery<T> = Query(), entityClass: KClass<T>, collectionName: String? = null): Long =
391+
if (collectionName != null) count(genericQuery.query, entityClass.java, collectionName)
392+
else count(genericQuery.query, entityClass.java)
392393

393394
/**
394395
* Extension for [MongoOperations.count] leveraging reified type parameters.
@@ -397,8 +398,8 @@ fun <T : Any> MongoOperations.count(query: Query = Query(), entityClass: KClass<
397398
* @since 2.0
398399
*/
399400
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
400-
inline fun <reified T : Any> MongoOperations.count(query: Query = Query(), collectionName: String? = null): Long =
401-
if (collectionName != null) count(query, T::class.java, collectionName) else count(query, T::class.java)
401+
inline fun <reified T : Any> MongoOperations.count(genericQuery: GenericQuery<T> = Query(), collectionName: String? = null): Long =
402+
if (collectionName != null) count(genericQuery.query, T::class.java, collectionName) else count(genericQuery.query, T::class.java)
402403

403404
/**
404405
* Extension for [MongoOperations.insert] providing a [KClass] based variant.
@@ -416,9 +417,9 @@ fun <T : Any> MongoOperations.insert(batchToSave: Collection<T>, entityClass: KC
416417
* @author Sebastien Deleuze
417418
* @since 2.0
418419
*/
419-
fun <T : Any> MongoOperations.upsert(query: Query, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
420-
if (collectionName != null) upsert(query, update, entityClass.java, collectionName)
421-
else upsert(query, update, entityClass.java)
420+
fun <T : Any> MongoOperations.upsert(genericQuery: GenericQuery<T>, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
421+
if (collectionName != null) upsert(genericQuery.query, update, entityClass.java, collectionName)
422+
else upsert(genericQuery.query, update, entityClass.java)
422423

423424
/**
424425
* Extension for [MongoOperations.upsert] leveraging reified type parameters.
@@ -427,19 +428,19 @@ fun <T : Any> MongoOperations.upsert(query: Query, update: Update, entityClass:
427428
* @since 2.0
428429
*/
429430
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
430-
inline fun <reified T : Any> MongoOperations.upsert(query: Query, update: Update, collectionName: String? = null): UpdateResult =
431-
if (collectionName != null) upsert(query, update, T::class.java, collectionName)
432-
else upsert(query, update, T::class.java)
431+
inline fun <reified T : Any> MongoOperations.upsert(genericQuery: GenericQuery<T>, update: Update, collectionName: String? = null): UpdateResult =
432+
if (collectionName != null) upsert(genericQuery.query, update, T::class.java, collectionName)
433+
else upsert(genericQuery.query, update, T::class.java)
433434

434435
/**
435436
* Extension for [MongoOperations.updateFirst] providing a [KClass] based variant.
436437
*
437438
* @author Sebastien Deleuze
438439
* @since 2.0
439440
*/
440-
fun <T : Any> MongoOperations.updateFirst(query: Query, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
441-
if (collectionName != null) updateFirst(query, update, entityClass.java, collectionName)
442-
else updateFirst(query, update, entityClass.java)
441+
fun <T : Any> MongoOperations.updateFirst(genericQuery: GenericQuery<T>, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
442+
if (collectionName != null) updateFirst(genericQuery.query, update, entityClass.java, collectionName)
443+
else updateFirst(genericQuery.query, update, entityClass.java)
443444

444445
/**
445446
* Extension for [MongoOperations.updateFirst] leveraging reified type parameters.
@@ -448,19 +449,19 @@ fun <T : Any> MongoOperations.updateFirst(query: Query, update: Update, entityCl
448449
* @since 2.0
449450
*/
450451
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
451-
inline fun <reified T : Any> MongoOperations.updateFirst(query: Query, update: Update, collectionName: String? = null): UpdateResult =
452-
if (collectionName != null) updateFirst(query, update, T::class.java, collectionName)
453-
else updateFirst(query, update, T::class.java)
452+
inline fun <reified T : Any> MongoOperations.updateFirst(genericQuery: GenericQuery<T>, update: Update, collectionName: String? = null): UpdateResult =
453+
if (collectionName != null) updateFirst(genericQuery.query, update, T::class.java, collectionName)
454+
else updateFirst(genericQuery.query, update, T::class.java)
454455

455456
/**
456457
* Extension for [MongoOperations.updateMulti] providing a [KClass] based variant.
457458
*
458459
* @author Sebastien Deleuze
459460
* @since 2.0
460461
*/
461-
fun <T : Any> MongoOperations.updateMulti(query: Query, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
462-
if (collectionName != null) updateMulti(query, update, entityClass.java, collectionName)
463-
else updateMulti(query, update, entityClass.java)
462+
fun <T : Any> MongoOperations.updateMulti(genericQuery: GenericQuery<T>, update: Update, entityClass: KClass<T>, collectionName: String? = null): UpdateResult =
463+
if (collectionName != null) updateMulti(genericQuery.query, update, entityClass.java, collectionName)
464+
else updateMulti(genericQuery.query, update, entityClass.java)
464465

465466
/**
466467
* Extension for [MongoOperations.updateMulti] leveraging reified type parameters.
@@ -469,19 +470,19 @@ fun <T : Any> MongoOperations.updateMulti(query: Query, update: Update, entityCl
469470
* @since 2.0
470471
*/
471472
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
472-
inline fun <reified T : Any> MongoOperations.updateMulti(query: Query, update: Update, collectionName: String? = null): UpdateResult =
473-
if (collectionName != null) updateMulti(query, update, T::class.java, collectionName)
474-
else updateMulti(query, update, T::class.java)
473+
inline fun <reified T : Any> MongoOperations.updateMulti(genericQuery: GenericQuery<T>, update: Update, collectionName: String? = null): UpdateResult =
474+
if (collectionName != null) updateMulti(genericQuery.query, update, T::class.java, collectionName)
475+
else updateMulti(genericQuery.query, update, T::class.java)
475476

476477
/**
477478
* Extension for [MongoOperations.remove] providing a [KClass] based variant.
478479
*
479480
* @author Sebastien Deleuze
480481
* @since 2.0
481482
*/
482-
fun <T : Any> MongoOperations.remove(query: Query, entityClass: KClass<T>, collectionName: String? = null): DeleteResult =
483-
if (collectionName != null) remove(query, entityClass.java, collectionName)
484-
else remove(query, entityClass.java)
483+
fun <T : Any> MongoOperations.remove(genericQuery: GenericQuery<T>, entityClass: KClass<T>, collectionName: String? = null): DeleteResult =
484+
if (collectionName != null) remove(genericQuery.query, entityClass.java, collectionName)
485+
else remove(genericQuery.query, entityClass.java)
485486

486487
/**
487488
* Extension for [MongoOperations.remove] leveraging reified type parameters.
@@ -490,15 +491,15 @@ fun <T : Any> MongoOperations.remove(query: Query, entityClass: KClass<T>, colle
490491
* @since 2.0
491492
*/
492493
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
493-
inline fun <reified T : Any> MongoOperations.remove(query: Query, collectionName: String? = null): DeleteResult =
494-
if (collectionName != null) remove(query, T::class.java, collectionName)
495-
else remove(query, T::class.java)
494+
inline fun <reified T : Any> MongoOperations.remove(genericQuery: GenericQuery<T>, collectionName: String? = null): DeleteResult =
495+
if (collectionName != null) remove(genericQuery.query, T::class.java, collectionName)
496+
else remove(genericQuery.query, T::class.java)
496497

497498
/**
498499
* Extension for [MongoOperations.findAllAndRemove] leveraging reified type parameters.
499500
*
500501
* @author Sebastien Deleuze
501502
* @since 2.0
502503
*/
503-
inline fun <reified T : Any> MongoOperations.findAllAndRemove(query: Query): List<T> =
504-
findAllAndRemove(query, T::class.java)
504+
inline fun <reified T : Any> MongoOperations.findAllAndRemove(genericQuery: GenericQuery<T>): List<T> =
505+
findAllAndRemove(genericQuery.query, T::class.java)

0 commit comments

Comments
 (0)