This is an automated email from the git hooks/post-receive script. New commit to branch feature/reecriture_editeur_de_zones in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 58163daab95c1be8371110001f93c45c985f3dcb Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Mar 22 15:33:28 2016 +0100 Vérifier au chargement du protocole que toutes le contenue des zones est encore correct + ajout method manquante --- .../ifremer/tutti/service/PersistenceService.java | 39 +++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 2362184..22f6c04 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.service; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; @@ -50,6 +51,7 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; +import fr.ifremer.tutti.persistence.entities.protocol.Zones; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Gears; @@ -774,6 +776,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public ImmutableSet<Integer> getAllFishingOperationStratasAndSubstratasIdsForProgram(String zoneId) { + return driver.getAllFishingOperationStratasAndSubstratasIdsForProgram(zoneId); + } + + @Override public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { return driver.getAllFishingOperationStratasAndSubstratas(zoneId); } @@ -1238,7 +1245,37 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer @Override public TuttiProtocol getProtocol(String id) { - return driver.getProtocol(id); + TuttiProtocol protocol = driver.getProtocol(id); + + if (protocol.isUseCalcifiedPieceSampling() && context.getDataContext().isProgramFilled()) { + + // on vérifie que les zones sont valident + Program program = context.getDataContext().getProgram(); + + String programZoneId = program.getZone().getId(); + + ImmutableSet<Integer> availableLocationIds = getAllFishingOperationStratasAndSubstratasIdsForProgram(programZoneId); + + if (protocol.isUseCalcifiedPieceSampling() && !protocol.isZoneEmpty()) { + + protocol.getZone().forEach(zone -> { + + ImmutableSet<Integer> allLocationIds = Zones.getAllLocationIds(zone); + + for (Integer locationId : allLocationIds) { + + if (!availableLocationIds.contains(locationId)) { + + throw new ApplicationBusinessException("Le protocole utilise une strate d'identifiant " + locationId + " non reconnue dans le système."); + + } + } + }); + } + + } + + return protocol; } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.