Skip to content

Commit 28a2c8e

Browse files
committed
DATAMONGO-2652 - Polishing.
Reorder implementation methods. Reduce visibility of test methods according to JUnit 5 requirements. Original pull request: #892.
1 parent c1a8ffe commit 28a2c8e

File tree

5 files changed

+363
-330
lines changed

5 files changed

+363
-330
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/ReactiveMongoRepository.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,4 @@ public interface ReactiveMongoRepository<T, ID> extends ReactiveSortingRepositor
6464
*/
6565
<S extends T> Flux<S> insert(Publisher<S> entities);
6666

67-
/*
68-
* (non-Javadoc)
69-
* @see org.springframework.data.repository.query.QueryByExampleExecutor#findAll(org.springframework.data.domain.Example)
70-
*/
71-
<S extends T> Flux<S> findAll(Example<S> example);
72-
73-
/*
74-
* (non-Javadoc)
75-
* @see org.springframework.data.repository.query.QueryByExampleExecutor#findAll(org.springframework.data.domain.Example, org.springframework.data.domain.Sort)
76-
*/
77-
<S extends T> Flux<S> findAll(Example<S> example, Sort sort);
78-
7967
}

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepository.java

Lines changed: 79 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ public SimpleMongoRepository(MongoEntityInformation<T, ID> metadata, MongoOperat
7373
this.mongoOperations = mongoOperations;
7474
}
7575

76+
// -------------------------------------------------------------------------
77+
// Methods from CrudRepository
78+
// -------------------------------------------------------------------------
79+
7680
/*
7781
* (non-Javadoc)
7882
* @see org.springframework.data.repository.CrudRepository#save(java.lang.Object)
@@ -136,6 +140,27 @@ public boolean existsById(ID id) {
136140
entityInformation.getCollectionName());
137141
}
138142

143+
/*
144+
* (non-Javadoc)
145+
* @see org.springframework.data.repository.CrudRepository#findAll()
146+
*/
147+
@Override
148+
public List<T> findAll() {
149+
return findAll(new Query());
150+
}
151+
152+
/*
153+
* (non-Javadoc)
154+
* @see org.springframework.data.repository.CrudRepository#findAllById(java.lang.Iterable)
155+
*/
156+
@Override
157+
public Iterable<T> findAllById(Iterable<ID> ids) {
158+
159+
Assert.notNull(ids, "The given Ids of entities not be null!");
160+
161+
return findAll(getIdQuery(ids));
162+
}
163+
139164
/*
140165
* (non-Javadoc)
141166
* @see org.springframework.data.repository.CrudRepository#count()
@@ -178,55 +203,42 @@ public void delete(T entity) {
178203

179204
/*
180205
* (non-Javadoc)
181-
* @see org.springframework.data.repository.CrudRepository#delete(java.lang.Iterable)
206+
* @see org.springframework.data.repository.CrudRepository#deleteAllById(java.lang.Iterable)
182207
*/
183-
@Override
184-
public void deleteAll(Iterable<? extends T> entities) {
185-
186-
Assert.notNull(entities, "The given Iterable of entities must not be null!");
187-
188-
entities.forEach(this::delete);
189-
}
190-
191208
@Override
192209
public void deleteAllById(Iterable<? extends ID> ids) {
193210

194211
Assert.notNull(ids, "The given Iterable of ids must not be null!");
195212

196-
ids.forEach(this::deleteById);
213+
mongoOperations.remove(getIdQuery((Iterable<? extends ID>) ids), entityInformation.getJavaType(),
214+
entityInformation.getCollectionName());
197215
}
198216

199217
/*
200218
* (non-Javadoc)
201-
* @see org.springframework.data.repository.CrudRepository#deleteAll()
219+
* @see org.springframework.data.repository.CrudRepository#delete(java.lang.Iterable)
202220
*/
203221
@Override
204-
public void deleteAll() {
205-
mongoOperations.remove(new Query(), entityInformation.getCollectionName());
206-
}
222+
public void deleteAll(Iterable<? extends T> entities) {
207223

208-
/*
209-
* (non-Javadoc)
210-
* @see org.springframework.data.repository.CrudRepository#findAll()
211-
*/
212-
@Override
213-
public List<T> findAll() {
214-
return findAll(new Query());
224+
Assert.notNull(entities, "The given Iterable of entities must not be null!");
225+
226+
entities.forEach(this::delete);
215227
}
216228

217229
/*
218230
* (non-Javadoc)
219-
* @see org.springframework.data.repository.CrudRepository#findAllById(java.lang.Iterable)
231+
* @see org.springframework.data.repository.CrudRepository#deleteAll()
220232
*/
221233
@Override
222-
public Iterable<T> findAllById(Iterable<ID> ids) {
223-
224-
Assert.notNull(ids, "The given Ids of entities not be null!");
225-
226-
return findAll(new Query(new Criteria(entityInformation.getIdAttribute())
227-
.in(Streamable.of(ids).stream().collect(StreamUtils.toUnmodifiableList()))));
234+
public void deleteAll() {
235+
mongoOperations.remove(new Query(), entityInformation.getCollectionName());
228236
}
229237

238+
// -------------------------------------------------------------------------
239+
// Methods from PagingAndSortingRepository
240+
// -------------------------------------------------------------------------
241+
230242
/*
231243
* (non-Javadoc)
232244
* @see org.springframework.data.repository.PagingAndSortingRepository#findAll(org.springframework.data.domain.Pageable)
@@ -254,6 +266,10 @@ public List<T> findAll(Sort sort) {
254266
return findAll(new Query().with(sort));
255267
}
256268

269+
// -------------------------------------------------------------------------
270+
// Methods from MongoRepository
271+
// -------------------------------------------------------------------------
272+
257273
/*
258274
* (non-Javadoc)
259275
* @see org.springframework.data.mongodb.repository.MongoRepository#insert(java.lang.Object)
@@ -284,23 +300,33 @@ public <S extends T> List<S> insert(Iterable<S> entities) {
284300
return new ArrayList<>(mongoOperations.insertAll(list));
285301
}
286302

303+
// -------------------------------------------------------------------------
304+
// Methods from QueryByExampleExecutor
305+
// -------------------------------------------------------------------------
306+
287307
/*
288308
* (non-Javadoc)
289-
* @see org.springframework.data.mongodb.repository.MongoRepository#findAllByExample(org.springframework.data.domain.Example, org.springframework.data.domain.Pageable)
309+
* @see org.springframework.data.repository.query.QueryByExampleExecutor#findOne(org.springframework.data.domain.Example)
290310
*/
291311
@Override
292-
public <S extends T> Page<S> findAll(final Example<S> example, Pageable pageable) {
312+
public <S extends T> Optional<S> findOne(Example<S> example) {
293313

294314
Assert.notNull(example, "Sample must not be null!");
295-
Assert.notNull(pageable, "Pageable must not be null!");
296315

297316
Query query = new Query(new Criteria().alike(example)) //
298-
.collation(entityInformation.getCollation()).with(pageable); //
317+
.collation(entityInformation.getCollation());
299318

300-
List<S> list = mongoOperations.find(query, example.getProbeType(), entityInformation.getCollectionName());
319+
return Optional
320+
.ofNullable(mongoOperations.findOne(query, example.getProbeType(), entityInformation.getCollectionName()));
321+
}
301322

302-
return PageableExecutionUtils.getPage(list, pageable,
303-
() -> mongoOperations.count(Query.of(query).limit(-1).skip(-1), example.getProbeType(), entityInformation.getCollectionName()));
323+
/*
324+
* (non-Javadoc)
325+
* @see org.springframework.data.mongodb.repository.MongoRepository#findAllByExample(org.springframework.data.domain.Example)
326+
*/
327+
@Override
328+
public <S extends T> List<S> findAll(Example<S> example) {
329+
return findAll(example, Sort.unsorted());
304330
}
305331

306332
/*
@@ -322,27 +348,21 @@ public <S extends T> List<S> findAll(Example<S> example, Sort sort) {
322348

323349
/*
324350
* (non-Javadoc)
325-
* @see org.springframework.data.mongodb.repository.MongoRepository#findAllByExample(org.springframework.data.domain.Example)
326-
*/
327-
@Override
328-
public <S extends T> List<S> findAll(Example<S> example) {
329-
return findAll(example, Sort.unsorted());
330-
}
331-
332-
/*
333-
* (non-Javadoc)
334-
* @see org.springframework.data.repository.query.QueryByExampleExecutor#findOne(org.springframework.data.domain.Example)
351+
* @see org.springframework.data.mongodb.repository.MongoRepository#findAllByExample(org.springframework.data.domain.Example, org.springframework.data.domain.Pageable)
335352
*/
336353
@Override
337-
public <S extends T> Optional<S> findOne(Example<S> example) {
354+
public <S extends T> Page<S> findAll(Example<S> example, Pageable pageable) {
338355

339356
Assert.notNull(example, "Sample must not be null!");
357+
Assert.notNull(pageable, "Pageable must not be null!");
340358

341359
Query query = new Query(new Criteria().alike(example)) //
342-
.collation(entityInformation.getCollation());
360+
.collation(entityInformation.getCollation()).with(pageable); //
343361

344-
return Optional
345-
.ofNullable(mongoOperations.findOne(query, example.getProbeType(), entityInformation.getCollectionName()));
362+
List<S> list = mongoOperations.find(query, example.getProbeType(), entityInformation.getCollectionName());
363+
364+
return PageableExecutionUtils.getPage(list, pageable,
365+
() -> mongoOperations.count(Query.of(query).limit(-1).skip(-1), example.getProbeType(), entityInformation.getCollectionName()));
346366
}
347367

348368
/*
@@ -375,6 +395,10 @@ public <S extends T> boolean exists(Example<S> example) {
375395
return mongoOperations.exists(query, example.getProbeType(), entityInformation.getCollectionName());
376396
}
377397

398+
// -------------------------------------------------------------------------
399+
// Utility methods
400+
// -------------------------------------------------------------------------
401+
378402
private Query getIdQuery(Object id) {
379403
return new Query(getIdCriteria(id));
380404
}
@@ -383,6 +407,11 @@ private Criteria getIdCriteria(Object id) {
383407
return where(entityInformation.getIdAttribute()).is(id);
384408
}
385409

410+
private Query getIdQuery(Iterable<? extends ID> ids) {
411+
return new Query(new Criteria(entityInformation.getIdAttribute())
412+
.in(Streamable.of(ids).stream().collect(StreamUtils.toUnmodifiableList())));
413+
}
414+
386415
private List<T> findAll(@Nullable Query query) {
387416

388417
if (query == null) {
@@ -391,4 +420,5 @@ private List<T> findAll(@Nullable Query query) {
391420

392421
return mongoOperations.find(query, entityInformation.getJavaType(), entityInformation.getCollectionName());
393422
}
423+
394424
}

0 commit comments

Comments
 (0)