branch feature/7595_avertissement_activites_non_cloturees updated (1af2194 -> 7e14a4a)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7595_avertissement_activites_non_cloturees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 1af2194 Do not stay on snapshot if not necessary new 7e14a4a Fix openable validation on openable entities 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 7e14a4aef999b0d32f60c535b8d673237d14b4f1 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Tue Jul 26 12:15:12 2016 +0200 Fix openable validation on openable entities refs #7595 Summary of changes: .../validator/dto/OpenableDtoFieldValidator.java | 142 +++++++++++++++++++++ ...ripLonglineDto-n1-update-warning-validation.xml | 12 +- .../RouteDto-n1-update-warning-validation.xml | 6 +- .../TripSeineDto-n1-update-warning-validation.xml | 6 +- .../src/main/resources/validators.xml | 2 +- .../TripLongline-n1-update-warning-validation.xml | 6 +- .../seine/Route-n1-update-warning-validation.xml | 6 +- .../TripSeine-n1-update-warning-validation.xml | 6 +- 8 files changed, 164 insertions(+), 22 deletions(-) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/OpenableDtoFieldValidator.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7595_avertissement_activites_non_cloturees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7e14a4aef999b0d32f60c535b8d673237d14b4f1 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Tue Jul 26 12:15:12 2016 +0200 Fix openable validation on openable entities refs #7595 --- .../validator/dto/OpenableDtoFieldValidator.java | 142 +++++++++++++++++++++ ...ripLonglineDto-n1-update-warning-validation.xml | 12 +- .../RouteDto-n1-update-warning-validation.xml | 6 +- .../TripSeineDto-n1-update-warning-validation.xml | 6 +- .../src/main/resources/validators.xml | 2 +- .../TripLongline-n1-update-warning-validation.xml | 6 +- .../seine/Route-n1-update-warning-validation.xml | 6 +- .../TripSeine-n1-update-warning-validation.xml | 6 +- 8 files changed, 164 insertions(+), 22 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/OpenableDtoFieldValidator.java b/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/OpenableDtoFieldValidator.java new file mode 100644 index 0000000..79745f5 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/validation/validator/dto/OpenableDtoFieldValidator.java @@ -0,0 +1,142 @@ +package fr.ird.observe.validation.validator.dto; + +/* + * #%L + * ObServe :: Validation + * %% + * Copyright (C) 2008 - 2013 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import fr.ird.observe.ObserveOpenDataManager; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.OpenableDto; +import fr.ird.observe.ui.DecoratorService; +import org.nuiton.decorator.Decorator; + +import java.util.Collection; + +/** + * <!-- START SNIPPET: javadoc --> OpenableFieldValidator verifie qu'un + * objet ou qu'une collection d'objet cloturable est bien + * fermée. + * <p/> + * <!-- END SNIPPET: javadoc --> + * <p/> + * <p/> + * <!-- START SNIPPET: parameters --> <ul> <li>fieldName - The field name this + * validator is validating. Required if using Plain-Validator Syntax otherwise + * not required</li> </ul> <!-- END SNIPPET: parameters --> + * <p/> + * <p/> + * <pre> + * <!-- START SNIPPET: examples --> + * <validators> + * <!-- Plain-Validator Syntax --> + * <validator type="openable"> + * <param name="fieldName">route</param> + * <message>existing unclosed routes</message> + * </validator> + * <p/> + * <!-- Field-Validator Syntax --> + * <field name="route"> + * <field-validator type="openable"> + * <message>existing unclosed routes</message> + * </field-validator> + * </field> + * </validators> + * <!-- END SNIPPET: examples --> + * </pre> + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.0 + */ +public class OpenableDtoFieldValidator extends FieldValidatorSupport { + + String openValueAsString; + + public String getOpenValueAsString() { + return openValueAsString; + } + + @Override + public void validate(Object object) throws ValidationException { + String fieldName = getFieldName(); + + Object value = getFieldValue(fieldName, object); + + boolean result = true; + + DataDto dataValue = null; + + ObserveOpenDataManager openDataManager = ObserveSwingApplicationContext.get().getOpenDataManager(); + + if (value != null) { + if (value instanceof Collection<?>) { + // on est sur une collection, + // on regarde si l'un des objets est ouvert + for (Object o : (Collection<?>) value) { + dataValue = (DataDto) o; + result = !openDataManager.isOpen(dataValue.getId()); + + if (!result) { + // on objet ouvert a été trouvé + // on peut arréter le parcours + break; + } + } + } else if (value instanceof OpenableDto) { + dataValue = (DataDto) value; + result = openDataManager.isOpen(dataValue.getId()); + } else { + // pas un type connu pour ce validateur + throw new ValidationException( + "le type " + value.getClass().getName() + + " n'est pas pris en charge pas ce validateur"); + } + } + + + if (!result) { + DecoratorService provider = ObserveSwingApplicationContext.get().getDecoratorService(); + + Decorator<?> decorator = provider.getDecorator(dataValue); + + if (log.isDebugEnabled()) { + log.debug("decorator to use : " + decorator); + } + if (decorator != null) { + openValueAsString = decorator.toString(dataValue); + log.debug("decorator message " + openValueAsString); + } + try { + // on a decouvert au moins un objet non fermé + addFieldError(fieldName, dataValue); + } finally { + openValueAsString = null; + } + } + } + + @Override + public String getValidatorType() { + return "openable"; + } +} diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml index c5bbc74..0f8c7da 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml @@ -44,14 +44,14 @@ </field> - <!--<field name="activityLongline">--> + <field name="activityLongline"> - <!-- une route est ouverte (interdit la cloture de la maree) --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.tripLongline.unclosed.activity##${openValueAsString}</message>--> - <!--</field-validator>--> + <!-- une activité est ouverte (interdit la cloture de la maree) --> + <field-validator type="openableDto"> + <message>validator.tripLongline.unclosed.activity##${openValueAsString}</message> + </field-validator> - <!--</field>--> + </field> <field name="captain"> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-n1-update-warning-validation.xml index d230be8..d567775 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-n1-update-warning-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-n1-update-warning-validation.xml @@ -90,9 +90,9 @@ <field name="activitySeine"> <!-- activity non fermee --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.route.unclosed.activity##${openValueAsString}</message>--> - <!--</field-validator>--> + <field-validator type="openableDto"> + <message>validator.route.unclosed.activity##${openValueAsString}</message> + </field-validator> <!-- activity de fin de pêche requise --> <!--field-validator type="routeActivitys"> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/TripSeineDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/TripSeineDto-n1-update-warning-validation.xml index a4ecd4b..a3c3ba2 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/TripSeineDto-n1-update-warning-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/TripSeineDto-n1-update-warning-validation.xml @@ -56,9 +56,9 @@ <field name="route"> <!-- une route est ouverte (interdit la cloture de la maree) --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.tripSeine.unclosed.route##${openValueAsString}</message>--> - <!--</field-validator>--> + <field-validator type="openableDto"> + <message>validator.tripSeine.unclosed.route##${openValueAsString}</message> + </field-validator> <!-- coherence loch des routes --> <field-validator type="collectionFieldExpression"> diff --git a/observe-application-swing/src/main/resources/validators.xml b/observe-application-swing/src/main/resources/validators.xml index 5856328..395d22e 100644 --- a/observe-application-swing/src/main/resources/validators.xml +++ b/observe-application-swing/src/main/resources/validators.xml @@ -68,7 +68,7 @@ <validator name="setLonglineUniqueNumber" class="fr.ird.observe.validation.validator.entities.SetLonglineUniqueNumberValidator"/> <!-- Les validateurs spécifique aux Dto dans observe --> - <!--<validator name="openableEntity" class="fr.ird.observe.business.validation.field.OpenableFieldValidator"/>--> + <validator name="openableDto" class="fr.ird.observe.validation.validator.dto.OpenableDtoFieldValidator"/> <validator name="species_lengthDto" class="fr.ird.observe.validation.validator.dto.SpeciesLengthFieldDtoValidator"/> <validator name="species_weightDto" class="fr.ird.observe.validation.validator.dto.SpeciesWeightFieldDtoValidator"/> <validator name="activitySpeedDto" class="fr.ird.observe.validation.validator.dto.ActivitySpeedDtoValidator"/> diff --git a/observe-entities/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-warning-validation.xml b/observe-entities/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-warning-validation.xml index c5bbc74..4a39387 100644 --- a/observe-entities/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-warning-validation.xml +++ b/observe-entities/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-warning-validation.xml @@ -47,9 +47,9 @@ <!--<field name="activityLongline">--> <!-- une route est ouverte (interdit la cloture de la maree) --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.tripLongline.unclosed.activity##${openValueAsString}</message>--> - <!--</field-validator>--> + <field-validator type="openableEntity"> + <message>validator.tripLongline.unclosed.activity##${openValueAsString}</message> + </field-validator> <!--</field>--> diff --git a/observe-entities/src/main/resources/fr/ird/observe/entities/seine/Route-n1-update-warning-validation.xml b/observe-entities/src/main/resources/fr/ird/observe/entities/seine/Route-n1-update-warning-validation.xml index 0252268..13f67e3 100644 --- a/observe-entities/src/main/resources/fr/ird/observe/entities/seine/Route-n1-update-warning-validation.xml +++ b/observe-entities/src/main/resources/fr/ird/observe/entities/seine/Route-n1-update-warning-validation.xml @@ -90,9 +90,9 @@ <field name="activitySeine"> <!-- activity non fermee --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.route.unclosed.activity##${openValueAsString}</message>--> - <!--</field-validator>--> + <field-validator type="openableDto"> + <message>validator.route.unclosed.activity##${openValueAsString}</message> + </field-validator> <!-- activity de fin de pêche requise --> <!--field-validator type="routeActivitys"> diff --git a/observe-entities/src/main/resources/fr/ird/observe/entities/seine/TripSeine-n1-update-warning-validation.xml b/observe-entities/src/main/resources/fr/ird/observe/entities/seine/TripSeine-n1-update-warning-validation.xml index 816bcad..5162dae 100644 --- a/observe-entities/src/main/resources/fr/ird/observe/entities/seine/TripSeine-n1-update-warning-validation.xml +++ b/observe-entities/src/main/resources/fr/ird/observe/entities/seine/TripSeine-n1-update-warning-validation.xml @@ -56,9 +56,9 @@ <field name="route"> <!-- une route est ouverte (interdit la cloture de la maree) --> - <!--<field-validator type="openableEntity">--> - <!--<message>validator.tripSeine.unclosed.route##${openValueAsString}</message>--> - <!--</field-validator>--> + <field-validator type="openableEntity"> + <message>validator.tripSeine.unclosed.route##${openValueAsString}</message> + </field-validator> <!-- coherence loch des routes --> <field-validator type="collectionFieldExpression"> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm