33import com .mongodb .client .MongoCollection ;
44import com .mongodb .client .model .Filters ;
55import com .mongodb .client .model .ReplaceOptions ;
6- import com .mongodb .client .result .DeleteResult ;
76import com .mongodb .client .result .UpdateResult ;
87import de .varilx .database .Repository ;
98import de .varilx .utils .ReflectionUtils ;
1413import java .util .List ;
1514import java .util .concurrent .CompletableFuture ;
1615
17- public class MongoRepo <E , ID > implements Repository <E , ID > {
16+ public class MongoRepository <E , ID > implements Repository <E , ID > {
1817
1918 private final MongoCollection <E > database ;
2019 private final Class <E > entityClass ;
2120 private final Class <ID > idClass ;
2221
23- public MongoRepo (MongoCollection <E > database , Class <E > entityClass , Class <ID > idClass ) {
22+ public MongoRepository (MongoCollection <E > database , Class <E > entityClass , Class <ID > idClass ) {
2423 this .database = database ;
2524 this .entityClass = entityClass ;
2625 this .idClass = idClass ;
@@ -42,28 +41,33 @@ public CompletableFuture<E> findFirstById(ID id) {
4241 }
4342
4443 @ Override
45- public void deleteById (ID id ) {
46- CompletableFuture .runAsync (() -> {
44+ public CompletableFuture < Void > deleteById (ID id ) {
45+ return CompletableFuture .supplyAsync (() -> {
4746 this .database .deleteOne (createIdFilter (id ));
47+ return null ;
4848 });
4949 }
5050
5151 @ Override
52- public void save (E e ) {
53- CompletableFuture .runAsync (() -> {
52+ public CompletableFuture < Void > save (E e ) {
53+ return CompletableFuture .supplyAsync (() -> {
5454 Bson idFilter = createIdFilter (getId (e ));
5555 if (database .countDocuments (idFilter ) > 0 ) {
5656 UpdateResult result = database .replaceOne (idFilter , e , new ReplaceOptions ().upsert (true ));
57- return ;
57+ return null ;
5858 }
5959 database .insertOne (e );
60+ return null ;
61+
6062 });
6163 }
6264
6365 @ Override
64- public void insert (E e ) {
65- CompletableFuture .runAsync (() -> {
66+ public CompletableFuture < Void > insert (E e ) {
67+ return CompletableFuture .supplyAsync (() -> {
6668 database .insertOne (e );
69+ return null ;
70+
6771 });
6872 }
6973
@@ -76,8 +80,11 @@ public CompletableFuture<Boolean> exists(ID id) {
7680 }
7781
7882 @ Override
79- public void deleteAll () {
80- database .deleteMany (Filters .exists ("_id" ));
83+ public CompletableFuture <Void > deleteAll () {
84+ return CompletableFuture .supplyAsync (() -> {
85+ database .deleteMany (Filters .exists ("_id" ));
86+ return null ;
87+ });
8188 }
8289
8390 private ID getId (E entity ) {
0 commit comments