From 86fe122d0c12271839c3910a70d6a268dd3a661d Mon Sep 17 00:00:00 2001 From: "alexis.drai@etu.uca.fr" Date: Sun, 28 May 2023 02:22:41 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=8A=20Manage=20relationships=20and=20c?= =?UTF-8?q?ascading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DB.md | 16 ++-- docs/nosql_uml.png | Bin 52543 -> 51864 bytes .../java/fr/uca/iut/entities/Pokemong.java | 36 ++++---- .../iut/repositories/PokemongRepository.java | 6 -- .../iut/repositories/TrainerRepository.java | 12 --- .../fr/uca/iut/services/PokemongService.java | 80 +++++++++++++++--- .../fr/uca/iut/services/TrainerService.java | 21 +++-- 7 files changed, 111 insertions(+), 60 deletions(-) diff --git a/docs/DB.md b/docs/DB.md index 930d36c..f7dfcb2 100644 --- a/docs/DB.md +++ b/docs/DB.md @@ -55,12 +55,12 @@ ## Relationships - Trainer - - [ ] trainers.pastOpponents: one-to-many and reflexive + - [x] trainers.pastOpponents: one-to-many and reflexive * => referencing - - [ ] trainers.pokemongs: one-to-many + - [x] trainers.pokemongs: one-to-many * => referencing + denormalizing on "nickname" and "species" - Pokemong - - [ ] pokemongs.trainer: many-to-one + - [x] pokemongs.trainer: many-to-one * => referencing - [x] pokemongs.types: one-to-few [1;2] * => embedding @@ -76,12 +76,12 @@ ## Cascades - Pokemong - - [ ] delete ~> trainer.pokemongs - - [ ] update ~> trainer.pokemongs (denormalizing on "nickname" and "species") - - [ ] create ~> trainer.pokemongs + - [x] delete ~> trainer.pokemongs + - [x] update ~> trainer.pokemongs (denormalizing on "nickname" and "species") + - [x] create ~> trainer.pokemongs - Trainer - - [ ] delete ~> pokemong.trainer - - [ ] create ~> pokemong.trainer + - [x] delete ~> pokemong.trainer + - [x] create ~> pokemong.trainer - Move - [x] delete ~> pokemong.moveSet - [x] update ~> pokemong.moveSet (denormalizing on "name") diff --git a/docs/nosql_uml.png b/docs/nosql_uml.png index 0979200fe5ad3da3735d315e7e169c57d3723fd3..e32ec6fd48fafc88c31ed057c05aa0d243d2d6f5 100644 GIT binary patch literal 51864 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�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 r1s)-4#;bx6c;;7SgYu` literal 52543 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 G&;J8aT2oN~ diff --git a/src/main/java/fr/uca/iut/entities/Pokemong.java b/src/main/java/fr/uca/iut/entities/Pokemong.java index bd7c153..1acd9e4 100644 --- a/src/main/java/fr/uca/iut/entities/Pokemong.java +++ b/src/main/java/fr/uca/iut/entities/Pokemong.java @@ -62,22 +62,6 @@ public class Pokemong extends GenericEntity { this.pokedexId = pokedexId; } - public Integer getEvoStage() { - return evoStage; - } - - public void setEvoStage(Integer evoStage) { - this.evoStage = evoStage; - } - - public List getEvoTrack() { - return evoTrack; - } - - public void setEvoTrack(List evoTrack) { - this.evoTrack = evoTrack; - } - @Nullable public String getTrainer() { return trainer; @@ -119,5 +103,25 @@ public class Pokemong extends GenericEntity { } } } + + public PokemongName getSpecies() { + return getEvoTrack().get(getEvoStage()); + } + + public List getEvoTrack() { + return evoTrack; + } + + public Integer getEvoStage() { + return evoStage; + } + + public void setEvoStage(Integer evoStage) { + this.evoStage = evoStage; + } + + public void setEvoTrack(List evoTrack) { + this.evoTrack = evoTrack; + } } diff --git a/src/main/java/fr/uca/iut/repositories/PokemongRepository.java b/src/main/java/fr/uca/iut/repositories/PokemongRepository.java index a0d920b..3da2595 100644 --- a/src/main/java/fr/uca/iut/repositories/PokemongRepository.java +++ b/src/main/java/fr/uca/iut/repositories/PokemongRepository.java @@ -14,8 +14,6 @@ import org.bson.types.ObjectId; import java.util.ArrayList; import java.util.List; -import static com.mongodb.client.model.Filters.eq; - @ApplicationScoped public class PokemongRepository extends GenericRepository { @@ -44,8 +42,4 @@ public class PokemongRepository extends GenericRepository { return db.getCollection(Pokemong.COLLECTION_NAME, Pokemong.class); } - public List findByTrainer(String trainerId) { - return getCollection().find(eq("trainer", new ObjectId(trainerId))) - .into(new ArrayList<>()); - } } diff --git a/src/main/java/fr/uca/iut/repositories/TrainerRepository.java b/src/main/java/fr/uca/iut/repositories/TrainerRepository.java index 12d4cf3..35ff7ed 100644 --- a/src/main/java/fr/uca/iut/repositories/TrainerRepository.java +++ b/src/main/java/fr/uca/iut/repositories/TrainerRepository.java @@ -3,16 +3,10 @@ package fr.uca.iut.repositories; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; -import com.mongodb.client.model.Filters; import fr.uca.iut.entities.Trainer; import jakarta.annotation.PostConstruct; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import org.bson.conversions.Bson; -import org.bson.types.ObjectId; - -import java.util.ArrayList; -import java.util.List; @ApplicationScoped public class TrainerRepository extends GenericRepository { @@ -30,12 +24,6 @@ public class TrainerRepository extends GenericRepository { setMongoClient(mongoClient); } - public List findByPokemong(String pokemongId) { - Bson filter = Filters.elemMatch("pokemongs", Filters.eq("_id", new ObjectId(pokemongId))); - return getCollection().find(filter) - .into(new ArrayList<>()); - } - @Override protected MongoCollection getCollection() { MongoDatabase db = mongoClient.getDatabase(DB_NAME); diff --git a/src/main/java/fr/uca/iut/services/PokemongService.java b/src/main/java/fr/uca/iut/services/PokemongService.java index f33f40d..ae9afd9 100644 --- a/src/main/java/fr/uca/iut/services/PokemongService.java +++ b/src/main/java/fr/uca/iut/services/PokemongService.java @@ -1,9 +1,7 @@ package fr.uca.iut.services; import com.mongodb.lang.Nullable; -import fr.uca.iut.entities.Pokemong; -import fr.uca.iut.entities.PokemongMove; -import fr.uca.iut.entities.Type; +import fr.uca.iut.entities.*; import fr.uca.iut.repositories.PokemongRepository; import fr.uca.iut.utils.StringUtils; import fr.uca.iut.utils.enums.PokemongName; @@ -15,6 +13,7 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Set; @ApplicationScoped @@ -26,6 +25,9 @@ public class PokemongService extends GenericService { @Inject MoveService moveService; + @Inject + TrainerService trainerService; + @PostConstruct public void init() { setRepository(pokemongRepository); @@ -33,15 +35,34 @@ public class PokemongService extends GenericService { @Override public Pokemong addOne(@NotNull Pokemong pokemong) { - // TODO if this pokemong has a trainer, make sure that the trainer's "pokemongs" field gets updated accordingly. - // (add a TrainerPokemong to the list, update the trainer) - return super.addOne(pokemong); + Pokemong persistedPokemong = super.addOne(pokemong); + + Trainer trainer = trainerService.getOneById(pokemong.getTrainer()); + if (trainer != null) { + TrainerPokemong trainerPokemong = new TrainerPokemong(); + trainerPokemong.setId(pokemong.getId()); + trainerPokemong.setNickname(pokemong.getNickname()); + trainerPokemong.setSpecies(pokemong.getSpecies()); + trainer.getPokemongs() + .add(trainerPokemong); + trainerService.updateOne(trainer); + } + return persistedPokemong; } @Override public void deleteOneById(String id) { + Pokemong pokemong = getOneById(id); + if (pokemong != null && pokemong.getTrainer() != null) { + Trainer trainer = trainerService.getOneById(pokemong.getTrainer()); + if (trainer != null) { + trainer.getPokemongs() + .removeIf(trainerPokemong -> trainerPokemong.getId() + .equals(id)); + trainerService.updateOne(trainer); + } + } super.deleteOneById(id); - // TODO also delete any corresponding PokemongTrainer among trainers } @Override @@ -49,19 +70,45 @@ public class PokemongService extends GenericService { public Pokemong updateOne(@NotNull Pokemong pokemong) { Pokemong existingPokemong = pokemongRepository.findById(pokemong.getId()); if (existingPokemong != null) { + boolean nicknameChanged = !Objects.equals(existingPokemong.getNickname(), pokemong.getNickname()); + boolean evoStageChanged = !Objects.equals(existingPokemong.getEvoStage(), pokemong.getEvoStage()); + boolean evoTrackChanged = !Objects.equals(existingPokemong.getEvoTrack(), pokemong.getEvoTrack()); + existingPokemong.setNickname(pokemong.getNickname()); - // TODO if nickname changed also update any corresponding PokemongTrainer's nickname existingPokemong.setDob(pokemong.getDob()); existingPokemong.setLevel(pokemong.getLevel()); existingPokemong.setPokedexId(pokemong.getPokedexId()); existingPokemong.setEvoStage(pokemong.getEvoStage()); - // TODO if evoStage changed, also update any corresponding PokemongTrainer's species existingPokemong.setEvoTrack(pokemong.getEvoTrack()); - // TODO if evoTrack changed, also update any corresponding PokemongTrainer's species existingPokemong.setTrainer(pokemong.getTrainer()); existingPokemong.setTypes(pokemong.getTypes()); existingPokemong.setMoveSet(pokemong.getMoveSet()); + pokemongRepository.persistOrUpdate(existingPokemong); + + if (nicknameChanged || evoStageChanged || evoTrackChanged) { + Trainer trainer = trainerService.getOneById(existingPokemong.getTrainer()); + if (trainer != null) { + TrainerPokemong trainerPokemong = trainer.getPokemongs() + .stream() + .filter(tp -> tp.getId() + .equals(existingPokemong.getId())) + .findFirst() + .orElse(null); + + if (trainerPokemong != null) { + if (nicknameChanged) { + trainerPokemong.setNickname(existingPokemong.getNickname()); + } + + if (evoStageChanged || evoTrackChanged) { + trainerPokemong.setSpecies(existingPokemong.getSpecies()); + } + + trainerService.updateOne(trainer); + } + } + } } return existingPokemong; } @@ -136,11 +183,20 @@ public class PokemongService extends GenericService { public boolean isEvoValid(String id, PokemongName species) { Pokemong pokemong = pokemongRepository.findById(id); - return pokemong != null && pokemong.getEvoTrack() - .get(pokemong.getEvoStage()) == species; + return pokemong != null && pokemong.getSpecies() == species; } public boolean existsById(String pokemongId) { return repository.existsById(pokemongId); } + + public void batchUpdatePokemongTrainers(List trainerPokemongs, @Nullable String trainerId) { + for (TrainerPokemong trainerPokemong : trainerPokemongs) { + Pokemong pokemong = getOneById(trainerPokemong.getId()); + if (pokemong != null) { + pokemong.setTrainer(trainerId); + updateOne(pokemong); + } + } + } } diff --git a/src/main/java/fr/uca/iut/services/TrainerService.java b/src/main/java/fr/uca/iut/services/TrainerService.java index 8d40eba..65d8a88 100644 --- a/src/main/java/fr/uca/iut/services/TrainerService.java +++ b/src/main/java/fr/uca/iut/services/TrainerService.java @@ -1,6 +1,7 @@ package fr.uca.iut.services; import com.mongodb.lang.Nullable; +import fr.uca.iut.entities.Pokemong; import fr.uca.iut.entities.Trainer; import fr.uca.iut.entities.TrainerPokemong; import fr.uca.iut.repositories.TrainerRepository; @@ -30,15 +31,22 @@ public class TrainerService extends GenericService { @Override public Trainer addOne(@NotNull Trainer trainer) { - // TODO if this trainer has a pokemong, make sure that the pokemong's "trainer" field gets updated accordingly - // no validation, pokemongs can changes trainers easily in this app - return super.addOne(trainer); + Trainer persistedTrainer = super.addOne(trainer); + + pokemongService.batchUpdatePokemongTrainers(trainer.getPokemongs(), trainer.getId()); + + return persistedTrainer; } @Override public void deleteOneById(String id) { + Trainer trainer = getOneById(id); + + if (trainer != null) { + pokemongService.batchUpdatePokemongTrainers(trainer.getPokemongs(), null); + } + super.deleteOneById(id); - // TODO set trainer reference to null in any pokemong who may have it in their "trainer" field } @Nullable @@ -109,10 +117,11 @@ public class TrainerService extends GenericService { errors.add("pokemong with id " + pokemongId + " cannot be a " + pokemong.getSpecies()); } + Pokemong pokemongBehind = pokemongService.getOneById(pokemongId); if (pokemong.getNickname() != null + && pokemongBehind != null && !pokemong.getNickname() - .equals(pokemongService.getOneById(pokemongId) - .getNickname())) + .equals(pokemongBehind.getNickname())) { errors.add("pokemong with id " + pokemongId + " already has a nickname"); }