branch feature/7706 created (now efafe24)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7706 in repository observe. See http://git.codelutin.com/observe.git at efafe24 migartion du validateur sur les tailles et poids des espèces (refs 7706) This branch includes the following new commits: new efafe24 migartion du validateur sur les tailles et poids des espèces (refs 7706) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit efafe24c04dd581a15a1d62c7dfc3a5458b1b5cf Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Nov 9 16:48:52 2015 +0100 migartion du validateur sur les tailles et poids des espèces (refs 7706) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7706 in repository observe. See http://git.codelutin.com/observe.git commit efafe24c04dd581a15a1d62c7dfc3a5458b1b5cf Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Nov 9 16:48:52 2015 +0100 migartion du validateur sur les tailles et poids des espèces (refs 7706) --- .../ird/observe/validation/ValidationContext.java | 20 +++++++++++++ .../dto/AbstractEspeceFieldDtoValidator.java | 34 +++++++++++----------- ...TargetCatchDto-n1-update-warning-validation.xml | 4 +-- ...argetLengthDto-n1-update-warning-validation.xml | 4 +-- ...choolEstimateDto-n1-update-error-validation.xml | 2 +- .../v1/ReferentialServiceController.java | 6 ++++ .../services/service/ReferentialService.java | 4 +++ .../services/service/ReferentialServiceTopia.java | 12 ++++++++ 8 files changed, 64 insertions(+), 22 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java index e34e5b9..913c026 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java @@ -28,11 +28,13 @@ import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.services.service.longline.ActivityLonglineService; import fr.ird.observe.services.service.longline.SetLonglineService; import fr.ird.observe.services.service.longline.TripLonglineService; @@ -141,6 +143,16 @@ public class ValidationContext { } }; + private static final DtoSupplier<SpeciesDto> SPECIES_DTO_SUPPLIER = new DtoSupplier<SpeciesDto>() { + + @Override + public SpeciesDto get(ObserveSwingDataSource dataSource, String id) { + ReferentialService service = dataSource.newService(ReferentialService.class); + SpeciesDto dto = service.loadSpecies(id); + return dto; + } + }; + protected DataContext dataContext; protected Map<String, Object> cache; @@ -253,6 +265,14 @@ public class ValidationContext { return result; } + public SpeciesDto getSpecies(String speciesId) { + SpeciesDto result = null; + if (speciesId != null) { + result = getDto(SPECIES_DTO_SUPPLIER, speciesId); + } + return result; + } + public List<?> getEditingReferentielList() { return referentielList; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/AbstractEspeceFieldDtoValidator.java b/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/AbstractEspeceFieldDtoValidator.java index 542966b..fbee473 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/AbstractEspeceFieldDtoValidator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/AbstractEspeceFieldDtoValidator.java @@ -218,19 +218,21 @@ public abstract class AbstractEspeceFieldDtoValidator extends FieldValidatorSupp } // l'species associée - ReferenceDto<SpeciesDto> species = (ReferenceDto<SpeciesDto>) getFieldValue(speciesFieldName, object); + ReferenceDto<SpeciesDto> speciesRef = (ReferenceDto<SpeciesDto>) getFieldValue(speciesFieldName, object); - if (species == null) { + if (speciesRef == null) { // pas de species trouvée, on ne peut pas valider return; } if (log.isDebugEnabled()) { - log.debug("Espece to validate : " + species); + log.debug("Espece to validate : " + speciesRef); } - Bound bound = getBound(species); + SpeciesDto speciesDto = (SpeciesDto) getValueStack().findValue("getSpecies(\"" + speciesRef.getId() + "\")"); + + Bound bound = getBound(speciesDto); if (log.isDebugEnabled()) { log.debug("Espece Bound to validate : " + bound); @@ -264,19 +266,17 @@ public abstract class AbstractEspeceFieldDtoValidator extends FieldValidatorSupp } } - protected Bound getBound(ReferenceDto<SpeciesDto> referentiel) { - - // FIXME il faut mettre en place un cache dans la valueStack de la validation pour recupéré les SpeciesDto -// Float min = getBoundMin(referentiel); -// Float max = getBoundMax(referentiel); -// -// if (min == null || min == 0 || max == null || max == 0) { -// // l'une des deux borne n'est pas définie, on ne peut pas utiliser -// // la données -// return null; -// } -// return new Bound(min, max); - return null; + protected Bound getBound(SpeciesDto species) { + + Float min = getBoundMin(species); + Float max = getBoundMax(species); + + if (min == null || min == 0 || max == null || max == 0) { + // l'une des deux borne n'est pas définie, on ne peut pas utiliser + // la données + return null; + } + return new Bound(min, max); } protected boolean validateBound(Float value, diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchDto-n1-update-warning-validation.xml index 1cfbfdc..fc038c0 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchDto-n1-update-warning-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchDto-n1-update-warning-validation.xml @@ -63,7 +63,7 @@ </field-validator> <!-- validation du weight par borne --> - <field-validator type="species_weight"> + <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <message>validator.nonTargetCatch.bound.meanWeight##${min}##${max}</message> </field-validator> @@ -81,7 +81,7 @@ </field-validator> <!-- validation de la taille par borne --> - <field-validator type="species_length"> + <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <message>validator.nonTargetCatch.bound.meanLength##${min}##${max}</message> </field-validator> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-n1-update-warning-validation.xml index e38c3f0..22d42a2 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-n1-update-warning-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-n1-update-warning-validation.xml @@ -29,7 +29,7 @@ <field name="length"> <!-- validation de la taille par borne --> - <field-validator type="species_length"> + <field-validator type="species_lengthDto"> <!--<param name="fieldName">length</param>--> <param name="ratio">1.0</param> <message>validator.nonTargetSample.bound.length##${min}##${max}</message> @@ -40,7 +40,7 @@ <field name="weight"> <!-- validation du weight par borne (uniquement pour mode saisie par individus) --> - <field-validator type="species_weight"> + <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"> <![CDATA[ acquisitionMode == 1 ]]> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SchoolEstimateDto-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SchoolEstimateDto-n1-update-error-validation.xml index 43e663a..284d9cf 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SchoolEstimateDto-n1-update-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SchoolEstimateDto-n1-update-error-validation.xml @@ -66,7 +66,7 @@ </field-validator> <!-- validation du weight par borne --> - <field-validator type="species_weight"> + <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <message>validator.nonTargetCatch.bound.meanWeight##${min}##${max}</message> </field-validator> diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 525c3ec..464e0ee 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -27,6 +27,7 @@ import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.ReferentialService; @@ -60,6 +61,11 @@ public class ReferentialServiceController extends ObserveAuthenticatedServiceCon } @Override + public SpeciesDto loadSpecies(String id) { + return service.loadSpecies(id); + } + + @Override public <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException { return service.loadToRead(type, id); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 950be0a..dc35e0e 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -55,6 +56,9 @@ public interface ReferentialService extends ObserveService { <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter); @ReadReferentialPermission + SpeciesDto loadSpecies(String id); + + @ReadReferentialPermission <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException; @ReadReferentialPermission diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index 787648d..c4e9908 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -25,6 +25,7 @@ package fr.ird.observe.services.service; import com.google.common.base.Optional; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.DtoMap; import fr.ird.observe.services.dto.FormDto; @@ -35,6 +36,7 @@ import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; @@ -78,6 +80,16 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } @Override + public SpeciesDto loadSpecies(String id) { + + Species speciesEntity = loadEntity(SpeciesDto.class, Species.class, id); + + SpeciesDto speciesDto = entityToDto(SpeciesDto.class, Species.class, speciesEntity); + + return speciesDto; + } + + @Override public <D extends ReferentialDto> FormDto<D> loadToRead(Class<D> dtoType, String id) { Class<ReferenceEntity> entityType = getEntityType(dtoType); ReferenceEntity entity = loadEntity(dtoType, entityType, id); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm