branch develop updated (996735b -> 3e1e193)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 996735b Add missing i18n new 51036b6 to run application via maven new 0df99f9 Suppression de GpsAble + assainissement du quadrant au niveau entite (en fait juste besoin de la lecture) new 7a0d2a9 Correction de la validation (permettre d'invoquer des méthodestatistiques dans les validateurs + ajout des méthodes qui étaient avant sur les entités new 081446b Assainissement de la gestion du quadrant new 3e1e193 Fixes #8482 Merge branch 'feature/8482' into develop The 5 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 3e1e193463ed4e330447c241f47a4d99e2e07771 Merge: 51036b6 081446b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 12:24:42 2016 +0200 Fixes #8482 Merge branch 'feature/8482' into develop commit 081446b64d9af155f8454f7f9d74ed9d17159435 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 12:24:16 2016 +0200 Assainissement de la gestion du quadrant commit 7a0d2a91ce4ecff4caef1701c2e15f50321b4873 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:57:08 2016 +0200 Correction de la validation (permettre d'invoquer des méthodestatistiques dans les validateurs + ajout des méthodes qui étaient avant sur les entités commit 0df99f91b7227e8aa1ec4ce25c3c977338007041 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:51:28 2016 +0200 Suppression de GpsAble + assainissement du quadrant au niveau entite (en fait juste besoin de la lecture) commit 51036b693f047e25c9e073d15e057ec6f3ca661a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:20:15 2016 +0200 to run application via maven Summary of changes: .../src/main/resources/validators.xml | 3 +- ...ivityLonglineDto-ui-create-error-validation.xml | 10 +- ...ivityLonglineDto-ui-update-error-validation.xml | 10 +- .../SetLonglineDto-ui-create-error-validation.xml | 148 ++++++++++++------ ...ActivitySeineDto-ui-create-error-validation.xml | 10 +- ...ActivitySeineDto-ui-update-error-validation.xml | 10 +- .../application-swing-validation_en_GB.properties | 6 + .../application-swing-validation_es_ES.properties | 6 + .../application-swing-validation_fr_FR.properties | 6 + .../src/test/resources/validators.xml | 1 + .../validators/QuadrantFieldDtoValidator.java | 54 +++++++ application-swing/README.md | 9 +- application-swing/pom.xml | 3 + .../ui/content/impl/longline/SetLonglineUI.jaxx | 4 + .../ui/content/impl/longline/SetLonglineUI.jcss | 8 + .../i18n/application-swing_en_GB.properties | 1 - .../i18n/application-swing_es_ES.properties | 1 - .../i18n/application-swing_fr_FR.properties | 1 - .../src/main/resources/validators.xml | 14 ++ .../java/fr/ird/observe/entities/Activity.java | 6 +- .../main/java/fr/ird/observe/entities/GPSAble.java | 59 -------- .../java/fr/ird/observe/entities/ObserveSet.java | 2 - .../entities/longline/ActivityLonglineImpl.java | 52 +++---- .../observe/entities/longline/SetLonglineImpl.java | 11 -- .../observe/entities/seine/ActivitySeineImpl.java | 62 +++----- .../ird/observe/entities/seine/SetSeineImpl.java | 4 - entities/src/main/xmi/observe-seine.zargo | Bin 84619 -> 83234 bytes .../main/xmi/observe-services-dto-longline.zargo | Bin 67306 -> 67504 bytes .../ActivityLongline-service-error-validation.xml | 12 +- .../SetLongline-service-error-validation.xml | 56 ++----- .../ActivitySeine-service-error-validation.xml | 12 +- .../seine/Route-service-error-validation.xml | 2 +- .../services-topia-validation_en_GB.properties | 10 +- .../services-topia-validation_es_ES.properties | 10 +- .../services-topia-validation_fr_FR.properties | 10 +- .../src/main/resources/xwork.xml | 7 + .../src/test/resources/validators.xml | 1 + .../topia/validators/QuadrantFieldValidator.java | 53 +++++++ .../topia/binder/data/ActivityLonglineBinder.java | 1 - .../topia/binder/data/ActivitySeineBinder.java | 1 - .../service/actions/validate/ObserveValidator.java | 166 --------------------- .../validate/ServiceValidationException.java | 13 ++ .../actions/validate/ValidateServiceTopia.java | 130 ++++++++++------ .../actions/validate/ValidationDataContext.java | 65 ++++++-- .../validate/ValidationMessageDetector.java | 7 +- .../service/actions/validate/ValidatorsMap.java | 54 ++----- .../longline/ActivityLonglineServiceTopia.java | 17 +-- .../service/seine/ActivitySeineServiceTopia.java | 17 +-- 48 files changed, 518 insertions(+), 627 deletions(-) create mode 100644 application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/QuadrantFieldDtoValidator.java delete mode 100644 entities/src/main/java/fr/ird/observe/entities/GPSAble.java create mode 100644 services-topia-validation/src/main/resources/xwork.xml create mode 100644 services-topia-validators/src/main/java/fr/ird/observe/services/topia/validators/QuadrantFieldValidator.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ObserveValidator.java create mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ServiceValidationException.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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 51036b693f047e25c9e073d15e057ec6f3ca661a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:20:15 2016 +0200 to run application via maven --- application-swing/README.md | 9 +++++++-- application-swing/pom.xml | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/application-swing/README.md b/application-swing/README.md index d2e50d3..9c37c34 100644 --- a/application-swing/README.md +++ b/application-swing/README.md @@ -1,2 +1,7 @@ -To deploy new version of pom: mvn deploy -To install localy: mvn install +To build application: + +```mvn clean package``` + +To run application: + +```mvn exec:java``` \ No newline at end of file diff --git a/application-swing/pom.xml b/application-swing/pom.xml index f9a5eee..b9a5abf 100644 --- a/application-swing/pom.xml +++ b/application-swing/pom.xml @@ -76,6 +76,9 @@ <!-- by default, we are in dev mode --> <devMode>true</devMode> + <!-- to run via maven mvn exec:java --> + <exec.mainClass>${maven.jar.main.class}</exec.mainClass> + </properties> <dependencies> -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 0df99f91b7227e8aa1ec4ce25c3c977338007041 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:51:28 2016 +0200 Suppression de GpsAble + assainissement du quadrant au niveau entite (en fait juste besoin de la lecture) --- .../java/fr/ird/observe/entities/Activity.java | 6 +- .../main/java/fr/ird/observe/entities/GPSAble.java | 59 -------------------- .../java/fr/ird/observe/entities/ObserveSet.java | 2 - .../entities/longline/ActivityLonglineImpl.java | 52 ++++++----------- .../observe/entities/longline/SetLonglineImpl.java | 11 ---- .../observe/entities/seine/ActivitySeineImpl.java | 62 ++++++--------------- .../ird/observe/entities/seine/SetSeineImpl.java | 4 -- entities/src/main/xmi/observe-seine.zargo | Bin 84619 -> 83234 bytes .../topia/binder/data/ActivityLonglineBinder.java | 1 - .../topia/binder/data/ActivitySeineBinder.java | 1 - .../longline/ActivityLonglineServiceTopia.java | 17 +----- .../service/seine/ActivitySeineServiceTopia.java | 17 +----- 12 files changed, 40 insertions(+), 192 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/entities/Activity.java b/entities/src/main/java/fr/ird/observe/entities/Activity.java index d515441..01f40b4 100644 --- a/entities/src/main/java/fr/ird/observe/entities/Activity.java +++ b/entities/src/main/java/fr/ird/observe/entities/Activity.java @@ -24,15 +24,13 @@ package fr.ird.observe.entities; import org.nuiton.topia.persistence.TopiaEntity; -public interface Activity extends TopiaEntity{ +public interface Activity extends TopiaEntity { String PROPERTY_QUADRANT = "quadrant"; Integer getQuadrant(); - void setQuadrant(Integer quadrant); - - void initCoordinates(); +// void setQuadrant(Integer quadrant); boolean isSetOperation(); diff --git a/entities/src/main/java/fr/ird/observe/entities/GPSAble.java b/entities/src/main/java/fr/ird/observe/entities/GPSAble.java deleted file mode 100644 index e485482..0000000 --- a/entities/src/main/java/fr/ird/observe/entities/GPSAble.java +++ /dev/null @@ -1,59 +0,0 @@ -package fr.ird.observe.entities; - -/* - * #%L - * ObServe :: Entities - * %% - * Copyright (C) 2008 - 2016 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 java.util.Date; - -public interface GPSAble { - -// String PROPERTY_QUADRANT = "quadrant"; - - String PROPERTY_LATITUDE = "latitude"; - - String PROPERTY_LONGITUDE = "longitude"; - - String PROPERTY_VITESSE = "vitesse"; - - String PROPERTY_TIME = "time"; - - Integer getQuadrant(); - - void setQuadrant(Integer quadrant); - - Float getLatitude(); - - void setLatitude(Float latitude); - - Float getLongitude(); - - void setLongitude(Float longitude); - - Float getVitesse(); - - void setVitesse(Float vitesse); - - Date getTime(); - - void setTime(Date time); - -} //GPSAble diff --git a/entities/src/main/java/fr/ird/observe/entities/ObserveSet.java b/entities/src/main/java/fr/ird/observe/entities/ObserveSet.java index e442680..b5dfca0 100644 --- a/entities/src/main/java/fr/ird/observe/entities/ObserveSet.java +++ b/entities/src/main/java/fr/ird/observe/entities/ObserveSet.java @@ -32,6 +32,4 @@ import org.nuiton.topia.persistence.TopiaEntity; */ public interface ObserveSet extends TopiaEntity { - void initCoordinates(); - } diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineImpl.java b/entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineImpl.java index b597167..39b44f8 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineImpl.java @@ -24,8 +24,8 @@ package fr.ird.observe.entities.longline; import com.google.common.base.MoreObjects; import fr.ird.observe.entities.Entities; -import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; import fr.ird.observe.entities.gps.CoordinateHelper; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; import org.nuiton.util.DateUtil; import java.util.Date; @@ -37,15 +37,6 @@ public class ActivityLonglineImpl extends ActivityLonglineAbstract { private static final String VESSEL_ACTIVITY_ID_FOR_SET = "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.1"; - /** - * La valeur du quadrant (utilisé uniquement dans l'interface graphique) : - * en base on conserve cette information dans les coordonnées {@link #longitude} - * {@link #latitude} qui sont signés. - * - * @since 3.7 - */ - protected Integer quadrant; - @Override public Date getDate() { return timeStamp == null ? null : DateUtil.getDay(timeStamp); @@ -82,28 +73,19 @@ public class ActivityLonglineImpl extends ActivityLonglineAbstract { } @Override - public void initCoordinates() { - - // compute quadrant - setQuadrant(CoordinateHelper.getQuadrant(longitude, latitude)); - - } - - @Override public Integer getQuadrant() { - return quadrant; -// return CoordinateHelper.getQuadrant(longitude, latitude); + return CoordinateHelper.getQuadrant(longitude, latitude); } - @Override - public synchronized void setQuadrant(Integer quadrant) { - if (!Objects.equals(this.quadrant, quadrant)){ - Entities.printDebugInformations(PROPERTY_QUADRANT, this, quadrant); - } - Integer old = this.quadrant; - this.quadrant = quadrant; - fireOnPostWrite(PROPERTY_QUADRANT, old, quadrant); - } +// @Override +// public synchronized void setQuadrant(Integer quadrant) { +// if (!Objects.equals(this.quadrant, quadrant)){ +// Entities.printDebugInformations(PROPERTY_QUADRANT, this, quadrant); +// } +// Integer old = this.quadrant; +// this.quadrant = quadrant; +// fireOnPostWrite(PROPERTY_QUADRANT, old, quadrant); +// } /** @return {@code true} si l'activite concerne une calée */ @Override @@ -139,11 +121,11 @@ public class ActivityLonglineImpl extends ActivityLonglineAbstract { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("date", getDate()) - .add("time", getTime()) - .add("quadrant", quadrant) - .add("latitude", longitude) - .add("longitude", longitude) - .toString(); + .add("date", getDate()) + .add("time", getTime()) + .add("quadrant", getQuadrant()) + .add("latitude", longitude) + .add("longitude", longitude) + .toString(); } } diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/SetLonglineImpl.java b/entities/src/main/java/fr/ird/observe/entities/longline/SetLonglineImpl.java index 5b1a852..033106a 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/SetLonglineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/SetLonglineImpl.java @@ -34,17 +34,6 @@ public class SetLonglineImpl extends SetLonglineAbstract { private static final long serialVersionUID = 1L; - @Override - public void initCoordinates() { - - setSettingStartQuadrant(getSettingStartQuadrant()); - setSettingEndQuadrant(getSettingEndQuadrant()); - - setHaulingStartQuadrant(getHaulingStartQuadrant()); - setHaulingEndQuadrant(getHaulingEndQuadrant()); - - } - public Integer getSettingStartQuadrant() { return CoordinateHelper.getQuadrant(settingStartLongitude, settingStartLatitude); } diff --git a/entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java b/entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java index 7ffc67f..a211260 100644 --- a/entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java @@ -24,8 +24,8 @@ package fr.ird.observe.entities.seine; import com.google.common.base.MoreObjects; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.constants.seine.SchoolTypePersist; -import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import fr.ird.observe.entities.gps.CoordinateHelper; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.NumberUtil; @@ -61,15 +61,6 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { public static final String PROPERTY_SET_OPERATION = "setOperation"; - /** - * La valeur du quadrant (utilisé uniquement dans l'interface graphique) : - * en base on conserve cette information dans les coordonnées {@link #longitude} - * {@link #latitude} qui sont signés. - * - * @since 3.8 - */ - protected Integer quadrant; - // @Override // public OpenableEntity getOpenChild() { // // sur une activity, pas d'enfant OpenableEntity @@ -107,39 +98,20 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { } @Override - public void initCoordinates() { - - // compute quadrant - setQuadrant(CoordinateHelper.getQuadrant(longitude, latitude)); - - } - - @Override public Integer getQuadrant() { -// return CoordinateHelper.getQuadrant(longitude, latitude); - return quadrant; + return CoordinateHelper.getQuadrant(longitude, latitude); } - @Override - public void setQuadrant(Integer quadrant) { - if (!Objects.equals(this.quadrant, quadrant)) { - Entities.printDebugInformations(PROPERTY_QUADRANT, this, quadrant); - } - Integer old = this.quadrant; -// fireOnPreWrite(PROPERTY_QUADRANT, old, quadrant); - this.quadrant = quadrant; - fireOnPostWrite(PROPERTY_QUADRANT, old, quadrant); - } - - @Override - public Float getVitesse() { - return getVesselSpeed(); - } - - @Override - public void setVitesse(Float vitesse) { - setVesselSpeed(vitesse); - } +// @Override +// public void setQuadrant(Integer quadrant) { +// if (!Objects.equals(this.quadrant, quadrant)) { +// Entities.printDebugInformations(PROPERTY_QUADRANT, this, quadrant); +// } +// Integer old = this.quadrant; +//// fireOnPreWrite(PROPERTY_QUADRANT, old, quadrant); +// this.quadrant = quadrant; +// fireOnPostWrite(PROPERTY_QUADRANT, old, quadrant); +// } @Override public SchoolTypePersist getSchoolType() { @@ -220,11 +192,11 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("time", getTime()) - .add("quadrant", quadrant) - .add("latitude", longitude) - .add("longitude", longitude) - .toString(); + .add("time", getTime()) + .add("quadrant", getQuadrant()) + .add("latitude", longitude) + .add("longitude", longitude) + .toString(); } } diff --git a/entities/src/main/java/fr/ird/observe/entities/seine/SetSeineImpl.java b/entities/src/main/java/fr/ird/observe/entities/seine/SetSeineImpl.java index 8ebba0c..156eeef 100644 --- a/entities/src/main/java/fr/ird/observe/entities/seine/SetSeineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/seine/SetSeineImpl.java @@ -33,10 +33,6 @@ public class SetSeineImpl extends SetSeineAbstract { private static final long serialVersionUID = 1L; @Override - public void initCoordinates() { - } - - @Override public boolean hasTargetCatch() { if (isTargetCatchEmpty()) { return false; diff --git a/entities/src/main/xmi/observe-seine.zargo b/entities/src/main/xmi/observe-seine.zargo index 4132971..5fddab0 100644 Binary files a/entities/src/main/xmi/observe-seine.zargo and b/entities/src/main/xmi/observe-seine.zargo differ diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java b/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java index a3f46da..1ec3b38 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java @@ -51,7 +51,6 @@ public class ActivityLonglineBinder extends DataBinderSupport<ActivityLongline, entity.setTimeStamp(dto.getTimeStamp()); entity.setLatitude(dto.getLatitude()); entity.setLongitude(dto.getLongitude()); - entity.setQuadrant(dto.getQuadrant()); entity.setSeaSurfaceTemperature(dto.getSeaSurfaceTemperature()); entity.setVesselActivityLongline(toEntity(dto.getVesselActivityLongline(), VesselActivityLongline.class)); entity.setFpaZone(toEntity(dto.getFpaZone(), FpaZone.class)); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java b/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java index 2e2fabb..0e7fcee 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java @@ -57,7 +57,6 @@ public class ActivitySeineBinder extends DataBinderSupport<ActivitySeine, Activi copyDtoDataFieldsToEntity(dto, entity); entity.setTime(dto.getTime()); - entity.setQuadrant(dto.getQuadrant()); entity.setLatitude(dto.getLatitude()); entity.setLongitude(dto.getLongitude()); entity.setVesselSpeed(dto.getVesselSpeed()); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/ActivityLonglineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/ActivityLonglineServiceTopia.java index 70337c2..e2cc905 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/ActivityLonglineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/ActivityLonglineServiceTopia.java @@ -24,14 +24,11 @@ package fr.ird.observe.services.topia.service.longline; import com.google.common.base.Joiner; import com.google.common.collect.Iterables; -import fr.ird.observe.entities.gps.CoordinateHelper; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.ActivityLonglineTopiaDao; import fr.ird.observe.entities.longline.ActivityLonglines; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.longline.TripLonglineTopiaDao; -import fr.ird.observe.services.service.longline.ActivityLonglineService; -import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; @@ -42,6 +39,8 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.dto.result.TripChildSaveResultDtos; import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.longline.ActivityLonglineService; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -156,18 +155,6 @@ public class ActivityLonglineServiceTopia extends ObserveServiceTopia implements } else { - // on recupère le quadrant de cette activity - // et on l'affecte à la nouvelle activity - Integer quadrant = CoordinateHelper.getQuadrant( - lastActivityLongline.getLongitude(), - lastActivityLongline.getLatitude()); - - if (quadrant != null) { - - preCreated.setQuadrant(quadrant); - - } - // on reprend la date et l'heure de la dernière activité timestamp = lastActivityLongline.getTimeStamp(); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java index d564b4c..92713d9 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java @@ -24,14 +24,11 @@ package fr.ird.observe.services.topia.service.seine; import com.google.common.base.Joiner; import com.google.common.collect.Iterables; -import fr.ird.observe.entities.gps.CoordinateHelper; import fr.ird.observe.entities.referentiel.FpaZone; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.ActivitySeineTopiaDao; import fr.ird.observe.entities.seine.ActivitySeines; import fr.ird.observe.entities.seine.Route; -import fr.ird.observe.services.service.seine.ActivitySeineService; -import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; @@ -41,6 +38,8 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.seine.ActivitySeineService; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; @@ -158,18 +157,6 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac } else { - // on recupère le quadrant de cette activity - // et on l'affecte à la nouvelle activity - Integer quadrant = CoordinateHelper.getQuadrant( - lastActivitySeine.getLongitude(), - lastActivitySeine.getLatitude()); - - if (quadrant != null) { - - preCreated.setQuadrant(quadrant); - - } - // on reprend l'heure de la dernière activité time = lastActivitySeine.getTime(); -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7a0d2a91ce4ecff4caef1701c2e15f50321b4873 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 10:57:08 2016 +0200 Correction de la validation (permettre d'invoquer des méthodestatistiques dans les validateurs + ajout des méthodes qui étaient avant sur les entités --- .../ActivitySeine-service-error-validation.xml | 2 +- .../seine/Route-service-error-validation.xml | 2 +- .../src/main/resources/xwork.xml | 7 + .../service/actions/validate/ObserveValidator.java | 166 --------------------- .../validate/ServiceValidationException.java | 13 ++ .../actions/validate/ValidateServiceTopia.java | 130 ++++++++++------ .../actions/validate/ValidationDataContext.java | 65 ++++++-- .../validate/ValidationMessageDetector.java | 7 +- .../service/actions/validate/ValidatorsMap.java | 54 ++----- 9 files changed, 173 insertions(+), 273 deletions(-) diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml index a855cf8..a0a5ed8 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml @@ -101,7 +101,7 @@ <!-- heure observation non duplique --> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ routeEntity.isTimeAvailable(topiaId, time) ]]> + <![CDATA[ isTimeAvailable(routeEntity, topiaId, time) ]]> </param> <message>validator.service.activity.duplicated.time</message> </field-validator> diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/Route-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/Route-service-error-validation.xml index 056c63f..e0768cf 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/Route-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/Route-service-error-validation.xml @@ -45,7 +45,7 @@ <!-- jour observation non duplique --> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"><![CDATA[ - tripSeineEntity.isDateAvailable(topiaId, date) + isDateAvailable(tripSeineEntity, topiaId, date) ]]> </param> <message>validator.service.route.duplicated.date</message> diff --git a/services-topia-validation/src/main/resources/xwork.xml b/services-topia-validation/src/main/resources/xwork.xml new file mode 100644 index 0000000..04eb0b7 --- /dev/null +++ b/services-topia-validation/src/main/resources/xwork.xml @@ -0,0 +1,7 @@ +<!DOCTYPE xwork PUBLIC + "-//Apache Struts//XWork 2.0//EN" + "http://struts.apache.org/dtds/xwork-2.0.dtd"> + +<xwork> + <constant name="allowStaticMethodAccess" value="true"/> +</xwork> diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ObserveValidator.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ObserveValidator.java deleted file mode 100644 index 38ccc14..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ObserveValidator.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 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% - */ -package fr.ird.observe.services.topia.service.actions.validate; - -import com.google.common.base.Preconditions; -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.util.ValueStack; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.validator.NuitonValidatorFactory; -import org.nuiton.validator.NuitonValidatorScope; -import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import org.nuiton.validator.xwork2.XWork2ValidatorUtil; - -/** - * Une surcharge du validateur swing offert par jaxx pour pouvoir ajouter dans - * la stack le DataContext (pour faire de la validation sur le context de - * données d'un niveau supérieur (valider une marée à partir d'une route par - * exemple). - * - * @param <B> le type d'objet a valider - * @author Tony Chemit - chemit@codelutin.com - * @since 1.0 - */ -public class ObserveValidator<B> extends SimpleBeanValidator<B> { - - /** Logger */ - private static final Log log = LogFactory.getLog(ObserveValidator.class); - - /** un etat pour initialiser la stack une unique fois la stack */ - private static boolean init; - - private static ValidationDataContext validationDataContext; - - public ObserveValidator( - Class<B> type, - String context, - NuitonValidatorScope... scopes) { - super(NuitonValidatorFactory.getDefaultProvider(), type, context, scopes); - } - -// public static <B> ObserveValidator<B> newValidator(NuitonValidatorProvider provider, -// Class<B> type, -// String context, -// NuitonValidatorScope... scopes) { -// return new ObserveValidator<>( -// provider, -// type, -// context, -// scopes -// ); -// } - - public static <B> ObserveValidator<B> newObserveValidator(Class<B> type, - String context, - NuitonValidatorScope... scopes) { - return new ObserveValidator<>( - type, - context, - scopes - ); - } - -// public ObserveValidator(NuitonValidatorProvider provider, -// Class<B> type, -// String context, -// NuitonValidatorScope... scopes) { -// super(provider, type, context, scopes); -// } - - public static void reloadDataContext(ValidationDataContext validationDataContext, boolean strict) { - - if (validationDataContext != ObserveValidator.validationDataContext) { - - // keep this validation context - setValidationDataContext(validationDataContext); - - } - - ValueStack valueStack; - ActionContext context = ActionContext.getContext(); - if (context == null) { - Preconditions.checkState( - strict, - "Pas de context xworks enregistré... utiliser la methode " + ActionContext.class.getName() + "#setContext(context)"); - - valueStack = XWork2ValidatorUtil.getSharedValueStack(); - - } else { - - valueStack = context.getValueStack(); - - } - - if (valueStack != null) { - if (log.isDebugEnabled()) { - log.debug("Enregistrement du context de validation [" + validationDataContext + "] dans la valueStack de " + - "validation (" + valueStack + ')'); - } - - valueStack.push(validationDataContext); - } - - } - - public static ValidationDataContext getValidationDataContext() { - return validationDataContext; - } - - public static void setValidationDataContext(ValidationDataContext validationDataContext) { - ObserveValidator.validationDataContext = validationDataContext; - // a chaque fois qu'on change le contexte de validation il faudra reinitiliser la stack - setInit(false); - } - - private static boolean isInit() { - return init; - } - - private static void setInit(boolean init) { - ObserveValidator.init = init; - } - - @Override - protected void rebuildDelegateValidator(Class<B> beanType, - String context, - NuitonValidatorScope... scopes) { - super.rebuildDelegateValidator(beanType, context, scopes); - - if (!isInit()) { - - // on positionne dans la stack de dataContext pour pouvoir faire de la - // validation sur des objets dans le scope. - - ValidationDataContext dataContext = getValidationDataContext(); - - reloadDataContext(dataContext, true); - - // on marque pour ne jamais revenir ici - setInit(true); - - } - - } - - -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ServiceValidationException.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ServiceValidationException.java new file mode 100644 index 0000000..94c124c --- /dev/null +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ServiceValidationException.java @@ -0,0 +1,13 @@ +package fr.ird.observe.services.topia.service.actions.validate; + +/** + * Created on 01/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +public class ServiceValidationException extends RuntimeException { + public ServiceValidationException(Exception e) { + super(e); + } +} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidateServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidateServiceTopia.java index c912203..fc611ac 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidateServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidateServiceTopia.java @@ -25,11 +25,21 @@ package fr.ird.observe.services.topia.service.actions.validate; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.util.ValueStack; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.ObserveDataEntity; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.actions.validate.ValidateDataRequest; import fr.ird.observe.services.service.actions.validate.ValidateDataResult; import fr.ird.observe.services.service.actions.validate.ValidateReferentialsRequest; @@ -39,22 +49,20 @@ import fr.ird.observe.services.service.actions.validate.ValidateResultForDtoType import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.service.actions.validate.ValidationMessage; import fr.ird.observe.services.topia.ObserveServiceTopia; -import fr.ird.observe.services.dto.DataDto; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.validator.NuitonValidatorScope; +import org.nuiton.validator.bean.simple.SimpleBeanValidator; +import org.nuiton.validator.xwork2.XWork2ValidatorUtil; import java.util.Collection; import java.util.Map; import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -62,66 +70,84 @@ import java.util.Set; public class ValidateServiceTopia extends ObserveServiceTopia implements ValidateService { private static final Log log = LogFactory.getLog(ValidateServiceTopia.class); + private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(5); @Override public ValidateReferentialsResult validateReferentials(ValidateReferentialsRequest request) { - ValidationDataContext validationDataContext = new ValidationDataContext(); + Future<ValidateReferentialsResult> future = EXECUTOR_SERVICE.submit(() -> { - ValidatorsMap validators = getValidators(request.getValidationContext(), - request.getScopes(), - Entities.REFERENCE_ENTITIES); + ValidationDataContext validationDataContext = new ValidationDataContext(); - ReferentialLocale referenceLocale = getReferentialLocale(); + initValidationEngine(validationDataContext); - //FIXME On ne peut pas charger cela avant d'avoir détecter un premier validateur - //FIXME Il faudrait mieux initialier de manière explicite le ActionContext + ValidatorsMap validators = getValidators( + request.getValidationContext(), + request.getScopes(), + Entities.REFERENCE_ENTITIES); - ObserveValidator.reloadDataContext(validationDataContext, false); + ReferentialLocale referenceLocale = getReferentialLocale(); - ValidationMessageDetector detector = new ValidationMessageDetector(validators, validationDataContext, referenceLocale); + ValidationMessageDetector detector = new ValidationMessageDetector(validators, validationDataContext, referenceLocale); - for (Class<? extends ReferentialDto> referentialType : request.getReferentialTypes()) { + for (Class<? extends ReferentialDto> referentialType : request.getReferentialTypes()) { - validateReferential(referentialType, detector); + validateReferential(referentialType, detector); - } + } - ImmutableMap validateResultForDtoTypeMap = buildResultForDtoTypes(detector); - return new ValidateReferentialsResult(request, validateResultForDtoTypeMap); + ImmutableMap validateResultForDtoTypeMap = buildResultForDtoTypes(detector); + return new ValidateReferentialsResult(request, validateResultForDtoTypeMap); + }); + try { + return future.get(); + } catch (InterruptedException | ExecutionException e) { + throw new ServiceValidationException(e); + } } @Override public ValidateDataResult validateData(ValidateDataRequest request) { - ValidationDataContext validationDataContext = new ValidationDataContext(); + Future<ValidateDataResult> future = EXECUTOR_SERVICE.submit(() -> { - ValidatorsMap validators = getValidators(request.getValidationContext(), - request.getScopes(), - Entities.DATA_ENTITIES); + ValidationDataContext validationDataContext = new ValidationDataContext(); + initValidationEngine(validationDataContext); - //FIXME On ne peut pas charger cela avant d'avoir détecter un premier validateur - //FIXME Il faudrait mieux initialier de manière explicite le ActionContext + ValidatorsMap validators = getValidators( + request.getValidationContext(), + request.getScopes(), + Entities.DATA_ENTITIES); - ReferentialLocale referenceLocale = getReferentialLocale(); + //FIXME On ne peut pas charger cela avant d'avoir détecter un premier validateur + //FIXME Il faudrait mieux initialier de manière explicite le ActionContext - ObserveValidator.reloadDataContext(validationDataContext, false); + ReferentialLocale referenceLocale = getReferentialLocale(); - ValidationMessageDetector detector = new ValidationMessageDetector(validators, validationDataContext, referenceLocale); + initValidationEngine(validationDataContext); - for (String dataId : request.getDataIds()) { + ValidationMessageDetector detector = new ValidationMessageDetector(validators, validationDataContext, referenceLocale); - validateData(dataId, detector); + for (String dataId : request.getDataIds()) { - } + validateData(dataId, detector); + + } - ImmutableMap<Class<? extends IdDto>, ValidateResultForDtoType> validateResultForDtoTypeMap = buildResultForDtoTypes(detector); - return new ValidateDataResult(request, validateResultForDtoTypeMap); + ImmutableMap<Class<? extends IdDto>, ValidateResultForDtoType> validateResultForDtoTypeMap = buildResultForDtoTypes(detector); + return new ValidateDataResult(request, validateResultForDtoTypeMap); + }); + + try { + return future.get(); + } catch (InterruptedException | ExecutionException e) { + throw new ServiceValidationException(e); + } } - protected ImmutableMap<Class<? extends IdDto>, ValidateResultForDtoType> buildResultForDtoTypes(ValidationMessageDetector detector) { + private ImmutableMap<Class<? extends IdDto>, ValidateResultForDtoType> buildResultForDtoTypes(ValidationMessageDetector detector) { ImmutableMap.Builder<Class<? extends IdDto>, ValidateResultForDtoType> forDtoTypeBuilder = new ImmutableMap.Builder<>(); @@ -187,7 +213,7 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat } - protected <D extends ReferentialDto, E extends ObserveReferentialEntity> void validateReferential(Class<D> referentialDtoType, ValidationMessageDetector detector) { + private <D extends ReferentialDto, E extends ObserveReferentialEntity> void validateReferential(Class<D> referentialDtoType, ValidationMessageDetector detector) { Class<E> referentialType = getReferentialEntityType(referentialDtoType); @@ -203,7 +229,7 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat } - protected void validateData(String dataId, ValidationMessageDetector detector) { + private void validateData(String dataId, ValidationMessageDetector detector) { Trip trip; @@ -229,13 +255,13 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat * @param beanTypes types des entités * @return le dictionnaire des validateurs par type d'entité. */ - protected ValidatorsMap getValidators(String context, Set<NuitonValidatorScope> scopes, ObserveEntityEnum... beanTypes) { + private ValidatorsMap getValidators(String context, Set<NuitonValidatorScope> scopes, ObserveEntityEnum... beanTypes) { ValidatorsMap result = new ValidatorsMap(); for (ObserveEntityEnum type : beanTypes) { // on cherche le validateur - ObserveValidator validator = getValidator(context, scopes, type.getContract()); + SimpleBeanValidator<?> validator = getValidator(context, scopes, type.getContract()); if (validator != null) { // on enregistre le validateur pour le contrat result.put(type.getContract(), validator); @@ -250,19 +276,19 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat /** * Obtenir le validateur d'un type objet * + * @param <B> type de l'objet à valider * @param context le nom du context de validation * @param scopes les scopes autorisés * @param klass type de l'objet à valider - * @param <B> type de l'objet à valider * @return le validateur trouvé ou {@code null} */ - protected <B extends TopiaEntity> ObserveValidator<B> getValidator(String context, - Set<NuitonValidatorScope> scopes, - Class<B> klass) { + private <B extends TopiaEntity> SimpleBeanValidator<B> getValidator(String context, + Set<NuitonValidatorScope> scopes, + Class<B> klass) { - ObserveValidator<B> valitator = ObserveValidator.newObserveValidator(klass, - context, - Iterables.toArray(scopes, NuitonValidatorScope.class)); + SimpleBeanValidator<B> valitator = SimpleBeanValidator.newValidator(klass, + context, + Iterables.toArray(scopes, NuitonValidatorScope.class)); Set<NuitonValidatorScope> effectiveScopes = valitator.getEffectiveScopes(); if (effectiveScopes.isEmpty()) { @@ -279,4 +305,12 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat } + private void initValidationEngine(ValidationDataContext validationDataContext) { + + ValueStack valueStack = XWork2ValidatorUtil.createValuestack(); + valueStack.push(validationDataContext); + ActionContext context = new ActionContext(valueStack.getContext()); + ActionContext.setContext(context); + + } } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationDataContext.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationDataContext.java index 3958b4b..8a0b315 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationDataContext.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationDataContext.java @@ -33,8 +33,11 @@ import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.Route; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TripSeine; +import org.nuiton.util.DateUtil; +import java.util.Date; import java.util.List; +import java.util.Optional; /** * Contient les objets en cours de validation. @@ -44,25 +47,25 @@ import java.util.List; */ public class ValidationDataContext { - protected List<?> editingReferentielListEntity; + private List<?> editingReferentielListEntity; - protected Program programEntity; + private Program programEntity; - protected TripSeine tripSeineEntity; + private TripSeine tripSeineEntity; - protected TripLongline tripLonglineEntity; + private TripLongline tripLonglineEntity; - protected Route routeEntity; + private Route routeEntity; - protected ActivitySeine activitySeineEntity; + private ActivitySeine activitySeineEntity; - protected ActivityLongline activityLonglineEntity; + private ActivityLongline activityLonglineEntity; - protected SetSeine setSeineEntity; + private SetSeine setSeineEntity; - protected SetLongline setLonglineEntity; + private SetLongline setLonglineEntity; - protected FloatingObject floatingObjectEntity; + private FloatingObject floatingObjectEntity; public void clear() { editingReferentielListEntity = null; @@ -178,4 +181,46 @@ public class ValidationDataContext { this.editingReferentielListEntity = editingReferentielListEntity; } + // Ne pas supprimer, utilise dans la validation + public boolean isTimeAvailable(TripLongline trip, String activityId, Date time) { + boolean result = true; + if (trip.isActivityLonglineNotEmpty()) { + + Optional<ActivityLongline> first = trip.getActivityLongline().stream().filter(r -> !r.getTopiaId().equals(activityId) && DateUtil.getTime(time, true, false).equals(r.getTime())).findFirst(); + result = !first.isPresent(); + } + return result; + } + + // Ne pas supprimer, utilise dans la validation + public boolean isDateAvailable(TripSeine tripSeine, String routeId, Date date) { + boolean result = true; + if (tripSeine.isRouteNotEmpty()) { + + Optional<Route> first = tripSeine.getRoute().stream().filter(r -> !r.getTopiaId().equals(routeId) && DateUtil.getDay(date).equals(r.getDate())).findFirst(); + result = !first.isPresent(); + } + return result; + } + + // Ne pas supprimer, utilise dans la validation + public boolean isTimeAvailable(Route route, String activityId, Date time) { + boolean result = true; + if (route.isActivitySeineNotEmpty()) { + + Optional<ActivitySeine> first = route.getActivitySeine().stream().filter(r -> !r.getTopiaId().equals(activityId) && DateUtil.getTime(time, true, false).equals(r.getTime())).findFirst(); + result = !first.isPresent(); + } + return result; + } + + public float abs(Float f) { + return Math.abs(f); + } + + public float abs(Long f) { + return Math.abs(f); + } + + } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationMessageDetector.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationMessageDetector.java index 8767f04..7fc724e 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationMessageDetector.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidationMessageDetector.java @@ -39,6 +39,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityVisitor; +import org.nuiton.validator.bean.simple.SimpleBeanValidator; import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; @@ -176,7 +177,7 @@ public class ValidationMessageDetector { addPath(e); } explored.add(e); - ObserveValidator validator = getValidator(e.getClass()); + SimpleBeanValidator validator = getValidator(e.getClass()); if (validator != null) { validator.addSimpleBeanValidatorListener(this); @@ -243,7 +244,7 @@ public class ValidationMessageDetector { validationDataContext.clear(); // on reinitialise tous les validateurs - for (ObserveValidator<?> v : validators.values()) { + for (SimpleBeanValidator<?> v : validators.values()) { v.setBean(null); } } @@ -307,7 +308,7 @@ public class ValidationMessageDetector { } } - protected <T extends TopiaEntity> ObserveValidator<T> getValidator(Class<T> entityType) { + protected <T extends TopiaEntity> SimpleBeanValidator<T> getValidator(Class<T> entityType) { return validators.getValidator(entityType); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidatorsMap.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidatorsMap.java index cd767a4..d17f44c 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidatorsMap.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/validate/ValidatorsMap.java @@ -28,7 +28,6 @@ import java.util.Collection; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; -import java.util.Set; /** * Un dictionnaire de validateurs ordonnees par le type de leur bean. @@ -36,9 +35,9 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.1 */ -public class ValidatorsMap implements Map<Class<?>, ObserveValidator<?>> { +public class ValidatorsMap { - protected final Map<Class<?>, ObserveValidator<?>> delegate; + private final Map<Class<?>, SimpleBeanValidator<?>> delegate; public ValidatorsMap() { delegate = new HashMap<>(); @@ -47,74 +46,41 @@ public class ValidatorsMap implements Map<Class<?>, ObserveValidator<?>> { public NuitonValidatorScope[] getScopes() { EnumSet<NuitonValidatorScope> result = EnumSet.noneOf(NuitonValidatorScope.class); - for (SimpleBeanValidator<?> b : values()) { + for (SimpleBeanValidator<?> b : delegate.values()) { result.addAll(b.getScopes()); } return result.toArray(new NuitonValidatorScope[result.size()]); } - public <X> ObserveValidator<X> getValidator(Class<X> klass) { - return (ObserveValidator<X>) get(klass); + public <X> SimpleBeanValidator<X> getValidator(Class<X> klass) { + return (SimpleBeanValidator) get(klass); } - @Override public int size() { return delegate.size(); } - @Override public boolean isEmpty() { return delegate.isEmpty(); } - @Override - public boolean containsKey(Object key) { + public boolean containsKey(Class<?> key) { return delegate.containsKey(key); } - @Override - public boolean containsValue(Object value) { + public boolean containsValue(SimpleBeanValidator<?> value) { return delegate.containsValue(value); } - @Override - public ObserveValidator<?> get(Object key) { + public SimpleBeanValidator<?> get(Class<?> key) { return delegate.get(key); } - @Override - public ObserveValidator<?> put(Class<?> key, ObserveValidator<?> value) { + public SimpleBeanValidator<?> put(Class<?> key, SimpleBeanValidator<?> value) { return delegate.put(key, value); } - @Override - public ObserveValidator<?> remove(Object key) { - return delegate.remove(key); - } - - @Override - public void putAll(Map<? extends Class<?>, ? extends ObserveValidator<?>> m) { - delegate.putAll(m); - } - - @Override - public void clear() { - delegate.clear(); - } - - @Override - public Set<Class<?>> keySet() { - return delegate.keySet(); - } - - @Override - public Collection<ObserveValidator<?>> values() { + public Collection<SimpleBeanValidator<?>> values() { return delegate.values(); } - - @Override - public Set<Entry<Class<?>, ObserveValidator<?>>> entrySet() { - return delegate.entrySet(); - } - } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 081446b64d9af155f8454f7f9d74ed9d17159435 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 12:24:16 2016 +0200 Assainissement de la gestion du quadrant --- .../src/main/resources/validators.xml | 3 +- ...ivityLonglineDto-ui-create-error-validation.xml | 10 +- ...ivityLonglineDto-ui-update-error-validation.xml | 10 +- .../SetLonglineDto-ui-create-error-validation.xml | 148 +++++++++++++++------ ...ActivitySeineDto-ui-create-error-validation.xml | 10 +- ...ActivitySeineDto-ui-update-error-validation.xml | 10 +- .../application-swing-validation_en_GB.properties | 6 + .../application-swing-validation_es_ES.properties | 6 + .../application-swing-validation_fr_FR.properties | 6 + .../src/test/resources/validators.xml | 1 + .../validators/QuadrantFieldDtoValidator.java | 54 ++++++++ .../ui/content/impl/longline/SetLonglineUI.jaxx | 4 + .../ui/content/impl/longline/SetLonglineUI.jcss | 8 ++ .../i18n/application-swing_en_GB.properties | 1 - .../i18n/application-swing_es_ES.properties | 1 - .../i18n/application-swing_fr_FR.properties | 1 - .../src/main/resources/validators.xml | 14 ++ .../main/xmi/observe-services-dto-longline.zargo | Bin 67306 -> 67504 bytes .../ActivityLongline-service-error-validation.xml | 12 +- .../SetLongline-service-error-validation.xml | 56 +++----- .../ActivitySeine-service-error-validation.xml | 10 +- .../services-topia-validation_en_GB.properties | 10 +- .../services-topia-validation_es_ES.properties | 10 +- .../services-topia-validation_fr_FR.properties | 10 +- .../src/test/resources/validators.xml | 1 + .../topia/validators/QuadrantFieldValidator.java | 53 ++++++++ 26 files changed, 295 insertions(+), 160 deletions(-) diff --git a/application-swing-configuration/src/main/resources/validators.xml b/application-swing-configuration/src/main/resources/validators.xml index fe41bf4..b98708f 100644 --- a/application-swing-configuration/src/main/resources/validators.xml +++ b/application-swing-configuration/src/main/resources/validators.xml @@ -61,6 +61,7 @@ <validator name="activityFinDeVeilleExists" class="fr.ird.observe.services.topia.validators.ActivityFinDeVeilleExistsValidator"/> <validator name="setLonglineUniqueHomeId" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueHomeIdValidator"/> <validator name="setLonglineUniqueNumber" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueNumberValidator"/> + <validator name="quadrant" class="fr.ird.observe.services.topia.validators.QuadrantFieldValidator"/> <!-- Les validateurs spécifique aux Dto dans observe --> <validator name="collectionUniqueKeyDto" class="fr.ird.observe.application.swing.validators.CollectionUniqueKeyDtoValidator"/> @@ -73,7 +74,7 @@ <validator name="activityFinDeVeilleExistsDto" class="fr.ird.observe.application.swing.validators.ActivityFinDeVeilleExistsDtoValidator"/> <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> - + <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> </validators> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-create-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-create-error-validation.xml index be66943..50217d0 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-create-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-create-error-validation.xml @@ -97,14 +97,8 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || quadrant == null || quadrant == 0 - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> <message> validator.ui.activity.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} </message> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-update-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-update-error-validation.xml index 7b9454c..78878f2 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-update-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-ui-update-error-validation.xml @@ -82,14 +82,8 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || quadrant == null || quadrant == 0 - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> <message> validator.ui.activity.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} </message> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/SetLonglineDto-ui-create-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/SetLonglineDto-ui-create-error-validation.xml index 75586a5..86d4479 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/SetLonglineDto-ui-create-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/longline/SetLonglineDto-ui-create-error-validation.xml @@ -216,6 +216,22 @@ </field> + <field name="settingStartQuadrant"> + + <field-validator type="required" short-circuit="true"> + <message>validator.ui.setLongline.required.quadrant</message> + </field-validator> + + <!-- coherence quadrant par rapport a l'ocean de la maree --> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> + <message> + validator.ui.setLongline.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} + </message> + </field-validator> + + </field> + <field name="settingStartLatitude"> <!-- settingStartLatitude obligatoire --> @@ -250,21 +266,37 @@ </message> </field-validator> + <!--<!– coherence quadrant par rapport a l'ocean de la maree –>--> + <!--<field-validator type="fieldexpression" short-circuit="true">--> + <!--<param name="expression"><![CDATA[--> + <!--currentTripLongline.ocean == null || settingStartLongitude == null || settingStartLatitude == null--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 3)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 1)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( settingStartLongitude >= 0))--> + <!--]]>--> + <!--</param>--> + <!--<message>--> + <!--validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")}--> + <!--</message>--> + <!--</field-validator>--> + + + </field> + + <field name="settingEndQuadrant"> + + <field-validator type="required" short-circuit="true"> + <message>validator.ui.setLongline.required.quadrant</message> + </field-validator> + <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || settingStartLongitude == null || settingStartLatitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( settingStartLongitude >= 0)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> <message> - validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} + validator.ui.setLongline.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} </message> </field-validator> - </field> <field name="settingEndLatitude"> @@ -301,21 +333,36 @@ </message> </field-validator> + <!--<!– coherence quadrant par rapport a l'ocean de la maree –>--> + <!--<field-validator type="fieldexpression" short-circuit="true">--> + <!--<param name="expression"><![CDATA[--> + <!--currentTripLongline.ocean == null || settingEndLongitude == null || settingEndLatitude == null--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 3)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 1)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( settingEndLongitude >= 0))--> + <!--]]>--> + <!--</param>--> + <!--<message>--> + <!--validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")}--> + <!--</message>--> + <!--</field-validator>--> + + </field> + + <field name="haulingStartQuadrant"> + + <field-validator type="required" short-circuit="true"> + <message>validator.ui.setLongline.required.quadrant</message> + </field-validator> + <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || settingEndLongitude == null || settingEndLatitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( settingEndLongitude >= 0)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> <message> - validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} + validator.ui.setLongline.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} </message> </field-validator> - </field> <field name="haulingStartLatitude"> @@ -352,24 +399,39 @@ </message> </field-validator> + <!--<!– coherence quadrant par rapport a l'ocean de la maree –>--> + <!--<field-validator type="fieldexpression" short-circuit="true">--> + <!--<param name="expression"><![CDATA[--> + <!--currentTripLongline.ocean == null || haulingStartLongitude == null || haulingStartLatitude == null--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 3)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 1)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( haulingStartLongitude >= 0))--> + <!--]]>--> + <!--</param>--> + <!--<message>--> + <!--validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")}--> + <!--</message>--> + <!--</field-validator>--> + + + </field> + + <field name="haulingEndQuadrant"> + + <field-validator type="required" short-circuit="true"> + <message>validator.ui.setLongline.required.quadrant</message> + </field-validator> + <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || haulingStartLongitude == null || haulingStartLatitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( haulingStartLongitude >= 0)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripLongline.ocean</param> <message> - validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} + validator.ui.setLongline.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} </message> </field-validator> - </field> - <field name="haulingEndLatitude"> <!-- haulingEndLatitude obligatoire --> @@ -405,18 +467,18 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || haulingEndLongitude == null || haulingEndLatitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( haulingEndLongitude >= 0)) - ]]> - </param> - <message> - validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} - </message> - </field-validator> + <!--<field-validator type="fieldexpression" short-circuit="true">--> + <!--<param name="expression"><![CDATA[--> + <!--currentTripLongline.ocean == null || haulingEndLongitude == null || haulingEndLatitude == null--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 3)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 1)--> + <!--|| (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( haulingEndLongitude >= 0))--> + <!--]]>--> + <!--</param>--> + <!--<message>--> + <!--validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")}--> + <!--</message>--> + <!--</field-validator>--> </field> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml index b753e98..574f959 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml @@ -172,14 +172,8 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripSeine.ocean == null || quadrant == null || quadrant == 0 - || (currentTripSeine.ocean.getPropertyValue("code") == 3) - || (currentTripSeine.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripSeine.ocean</param> <message> validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.libelle} </message> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml index 17df47d..4cccc67 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml @@ -34,14 +34,8 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripSeine.ocean == null || quadrant == null || quadrant == 0 - || (currentTripSeine.ocean.getPropertyValue("code") == 3) - || (currentTripSeine.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrantDto" short-circuit="true"> + <param name="ocean">currentTripSeine.ocean</param> <message> validator.ui.activity.invalid.quadrant##${currentTripSeine.ocean.libelle} </message> diff --git a/application-swing-validation/src/main/resources/i18n/application-swing-validation_en_GB.properties b/application-swing-validation/src/main/resources/i18n/application-swing-validation_en_GB.properties index d723326..f4fc4c3 100644 --- a/application-swing-validation/src/main/resources/i18n/application-swing-validation_en_GB.properties +++ b/application-swing-validation/src/main/resources/i18n/application-swing-validation_en_GB.properties @@ -68,9 +68,11 @@ observe.common.haulingBreaks=Hauling breaks observe.common.haulingDirectionSameAsSetting=Hauling direction same as setting observe.common.haulingEndLatitude=Hauling end latitude observe.common.haulingEndLongitude=Hauling end longitude +observe.common.haulingEndQuadrant=Hauling end quadrant observe.common.haulingEndTimeStamp=Hauling end timeStamp observe.common.haulingStartLatitude=Hauling start latitude observe.common.haulingStartLongitude=Hauling start longitude +observe.common.haulingStartQuadrant=Hauling start quadrant observe.common.haulingStartTimeStamp=Hauling start timeStamp observe.common.homeId=Home id observe.common.hookOffset=Hook offset @@ -141,11 +143,13 @@ observe.common.sensorSerialNo=Sensor serial no observe.common.sensorType=Sensor type observe.common.settingEndLatitude=Setting end latitude observe.common.settingEndLongitude=Setting end longitude +observe.common.settingEndQuadrant=Setting end quadrant observe.common.settingEndTimeStamp=Setting end timeStamp observe.common.settingIdentifier=Setting identifier observe.common.settingShape=Setting shape observe.common.settingStartLatitude=Setting start latitude observe.common.settingStartLongitude=Setting start longitude +observe.common.settingStartQuadrant=Setting start quadrant observe.common.settingStartTimeStamp=Setting start timeStamp observe.common.settingVesselSpeed=Setting vessel speed observe.common.sex=Sex @@ -477,6 +481,7 @@ validator.ui.setLongline.duplicated.number=Number is already used in another fis validator.ui.setLongline.floatlinesComposition.uniqueKey=Tuple (type/length) must be unique. validator.ui.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=Hauling end time must be after hauling start time. validator.ui.setLongline.hooksComposition.uniqueKey=Tuple (type/size/offet) must be unique. +validator.ui.setLongline.invalid.quadrant=Quadrant is not coherent with ocean (%1$s) of trip (indian\: 1,2, atlantic 1,2,3,4). validator.ui.setLongline.null.homeId=Home id is not filled. validator.ui.setLongline.required.basketsPerSectionCount=Baskets per section count must be filled. validator.ui.setLongline.required.branchlinesPerBasketCount=Branchlines per basket count must be filled. @@ -488,6 +493,7 @@ validator.ui.setLongline.required.haulingEndTimeStamp=Timestamp must be filled. validator.ui.setLongline.required.haulingStartLatitude=Latitude must be filled. validator.ui.setLongline.required.haulingStartLongitude=Longitude must be filled. validator.ui.setLongline.required.haulingStartTimeStamp=Timestamp must be filled. +validator.ui.setLongline.required.quadrant=Quadrant is mandatory. validator.ui.setLongline.required.settingEndLatitude=Latitude must be filled. validator.ui.setLongline.required.settingEndLongitude=Longitude must be filled. validator.ui.setLongline.required.settingEndTimeStamp=Timestamp must be filled. diff --git a/application-swing-validation/src/main/resources/i18n/application-swing-validation_es_ES.properties b/application-swing-validation/src/main/resources/i18n/application-swing-validation_es_ES.properties index e22a571..2985a39 100644 --- a/application-swing-validation/src/main/resources/i18n/application-swing-validation_es_ES.properties +++ b/application-swing-validation/src/main/resources/i18n/application-swing-validation_es_ES.properties @@ -68,9 +68,11 @@ observe.common.haulingBreaks=Número de cortes observe.common.haulingDirectionSameAsSetting=Sentido del arrastre idéntico a lo de la calada observe.common.haulingEndLatitude=Arrastre Latitude observe.common.haulingEndLongitude=Arrastre Longitud +observe.common.haulingEndQuadrant=Arrastre quadrant observe.common.haulingEndTimeStamp=Timestamp de fin observe.common.haulingStartLatitude=Arrastre Latitude observe.common.haulingStartLongitude=Arrastre Longitud +observe.common.haulingStartQuadrant=Arrastre quadrant observe.common.haulingStartTimeStamp=Timestamp del inicio observe.common.homeId=Id de negocio observe.common.hookOffset=Offset anzuelo (°) @@ -141,11 +143,13 @@ observe.common.sensorSerialNo=Número de serie observe.common.sensorType=Tipo de sensor observe.common.settingEndLatitude=Calada latitude observe.common.settingEndLongitude=Calada longitud +observe.common.settingEndQuadrant=Calada quadrant observe.common.settingEndTimeStamp=Timestamp de fin observe.common.settingIdentifier=Identificador Calada observe.common.settingShape=Forma de la calada observe.common.settingStartLatitude=Calada latitude observe.common.settingStartLongitude=Calada longitud +observe.common.settingStartQuadrant=Calada quadrant observe.common.settingStartTimeStamp=Timestamp de inicio observe.common.settingVesselSpeed=Velocidad del barco (nd) observe.common.sex=Sexo @@ -477,6 +481,7 @@ validator.ui.setLongline.duplicated.number=El número ya está utilizado por na validator.ui.setLongline.floatlinesComposition.uniqueKey=La tupla (tipo/longitud) debe ser única, la tupa ya está utilizada. validator.ui.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=La hora de fin de arrastre debe ser superior o igual a la hora de inicio de arrastre. validator.ui.setLongline.hooksComposition.uniqueKey=La tupla (tipo/tamaño/offset) debe ser única, la tupa ya está utilizada. +validator.ui.setLongline.invalid.quadrant=El cuadrante no es coherente con el informe del oceano (%1$s) de la marea (indico \: 1,2, atlantico \: 1, 2, 3, 4) validator.ui.setLongline.null.homeId=Id de negocio vacío. validator.ui.setLongline.required.basketsPerSectionCount=Número de cestas por sección vacío. validator.ui.setLongline.required.branchlinesPerBasketCount=Número de avanzuelos por cesta vacío. @@ -488,6 +493,7 @@ validator.ui.setLongline.required.haulingEndTimeStamp=Timestamp de fin de arrast validator.ui.setLongline.required.haulingStartLatitude=Latitud de inicio de arrastre vacía. validator.ui.setLongline.required.haulingStartLongitude=Longitud de inicio de arrastre vacía. validator.ui.setLongline.required.haulingStartTimeStamp=Timestamp de inicio de arrastre vacío. +validator.ui.setLongline.required.quadrant=Se debe seleccionar el cuadrante. validator.ui.setLongline.required.settingEndLatitude=Latitud de fin de calada vacíoe. validator.ui.setLongline.required.settingEndLongitude=longitud de fin de calada vacía. validator.ui.setLongline.required.settingEndTimeStamp=Timestamp de fin de calada vacío. diff --git a/application-swing-validation/src/main/resources/i18n/application-swing-validation_fr_FR.properties b/application-swing-validation/src/main/resources/i18n/application-swing-validation_fr_FR.properties index c9aa185..7dc9aeb 100644 --- a/application-swing-validation/src/main/resources/i18n/application-swing-validation_fr_FR.properties +++ b/application-swing-validation/src/main/resources/i18n/application-swing-validation_fr_FR.properties @@ -68,9 +68,11 @@ observe.common.haulingBreaks=Nombre de coupures observe.common.haulingDirectionSameAsSetting=Sens du virage identique à celui du filage observe.common.haulingEndLatitude=Latitude de fin virage observe.common.haulingEndLongitude=Longitude de fin virage +observe.common.haulingEndQuadrant=Quand de fin de virage observe.common.haulingEndTimeStamp=Horodatage fin observe.common.haulingStartLatitude=Latitude de début de virage observe.common.haulingStartLongitude=Longitude de début de virage +observe.common.haulingStartQuadrant=Quadrant de début de virage observe.common.haulingStartTimeStamp=Horodatage début observe.common.homeId=Id métier observe.common.hookOffset=Offset hameçon (°) @@ -141,11 +143,13 @@ observe.common.sensorSerialNo=Numéro de série observe.common.sensorType=Type observe.common.settingEndLatitude=Latitude de fin de filage observe.common.settingEndLongitude=Longitude de fin de filage +observe.common.settingEndQuadrant=Quadrant de fin de filage observe.common.settingEndTimeStamp=Horodatage fin observe.common.settingIdentifier=Identifiant Filage observe.common.settingShape=Forme du filage observe.common.settingStartLatitude=Latitude de début de filage observe.common.settingStartLongitude=\=Longitude de début de filage +observe.common.settingStartQuadrant=Quadrant de début de filage observe.common.settingStartTimeStamp=Horodatage début observe.common.settingVesselSpeed=Vitesse bateau (nd) observe.common.sex=Sexe @@ -477,6 +481,7 @@ validator.ui.setLongline.duplicated.number=Le numéro est déjà utilisé par un validator.ui.setLongline.floatlinesComposition.uniqueKey=Le tuple (type/longueur) doit être unique, le tuple est déjà utilisé. validator.ui.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=L'heure de fin de virage doit être supérieure ou égal à l'heure de début de virage. validator.ui.setLongline.hooksComposition.uniqueKey=Le tuple (type/taille/offset) doit être unique, le tuple est déjà utilisé. +validator.ui.setLongline.invalid.quadrant=Le quadrant n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) validator.ui.setLongline.null.homeId=Id métier non renseigné. validator.ui.setLongline.required.basketsPerSectionCount=Nombre de paniers par section non renseigné. validator.ui.setLongline.required.branchlinesPerBasketCount=Nombre d'hameçons par panier non renseigné. @@ -488,6 +493,7 @@ validator.ui.setLongline.required.haulingEndTimeStamp=Horodatage de fin de virag validator.ui.setLongline.required.haulingStartLatitude=Latitude de début de virage non renseignée. validator.ui.setLongline.required.haulingStartLongitude=longitude de début de virage non renseignée. validator.ui.setLongline.required.haulingStartTimeStamp=Horodatage de début de virage non renseigné. +validator.ui.setLongline.required.quadrant=Le quadrant est obligatoire. validator.ui.setLongline.required.settingEndLatitude=Latitude de fin de filage non renseignée. validator.ui.setLongline.required.settingEndLongitude=longitude de fin de filage non renseignée. validator.ui.setLongline.required.settingEndTimeStamp=Horodatage de fin de filage non renseigné. diff --git a/application-swing-validation/src/test/resources/validators.xml b/application-swing-validation/src/test/resources/validators.xml index b49e747..07f0918 100644 --- a/application-swing-validation/src/test/resources/validators.xml +++ b/application-swing-validation/src/test/resources/validators.xml @@ -62,5 +62,6 @@ <validator name="activityFinDeVeilleExistsDto" class="fr.ird.observe.application.swing.validators.ActivityFinDeVeilleExistsDtoValidator"/> <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> + <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> </validators> diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/QuadrantFieldDtoValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/QuadrantFieldDtoValidator.java new file mode 100644 index 0000000..205c88e --- /dev/null +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/QuadrantFieldDtoValidator.java @@ -0,0 +1,54 @@ +package fr.ird.observe.application.swing.validators; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; + +/** + * Created on 02/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class QuadrantFieldDtoValidator extends FieldValidatorSupport { + + private String ocean; + + public void setOcean(String ocean) { + this.ocean = ocean; + } + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + if (fieldName == null) { + throw new ValidationException("No parameter 'fieldName' filled"); + } + + ReferentialReference<OceanDto> ocean = (ReferentialReference<OceanDto>) getFieldValue(this.ocean, object); + if (ocean == null) { + throw new ValidationException("could not find trip named: " + this.ocean); + } + + Integer quadrant = (Integer) getFieldValue(fieldName, object); + if (quadrant == null) { + return; + } + + Integer code = Integer.valueOf((String) ocean.getPropertyValue(OceanDto.PROPERTY_CODE)); + boolean valid = code == 3 + || (code == 1 && (quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (code == 2 && (quadrant == 1 || quadrant == 2)); + + if (!valid) { + addFieldError(fieldName, object); + } + } + + @Override + public String getValidatorType() { + return "quadrantDto"; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx index d5bf555..863e437 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx @@ -72,15 +72,19 @@ <field name='settingStartLongitude' component='settingStartCoordinates'/> <field name='settingStartLatitude' component='settingStartCoordinates'/> + <field name='settingStartQuadrant' component='settingStartCoordinates'/> <field name='settingEndLongitude' component='settingEndCoordinates'/> <field name='settingEndLatitude' component='settingEndCoordinates'/> + <field name='settingEndQuadrant' component='settingEndCoordinates'/> <field name='haulingStartLongitude' component='haulingStartCoordinates'/> <field name='haulingStartLatitude' component='haulingStartCoordinates'/> + <field name='haulingStartQuadrant' component='haulingStartCoordinates'/> <field name='haulingEndLongitude' component='haulingEndCoordinates'/> <field name='haulingEndLatitude' component='haulingEndCoordinates'/> + <field name='haulingEndQuadrant' component='haulingEndCoordinates'/> </BeanValidator> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jcss index b67e2df..4b8e3c5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jcss @@ -79,8 +79,10 @@ #settingStartCoordinates { propertyLatitude:{SetLonglineDto.PROPERTY_SETTING_START_LATITUDE}; propertyLongitude:{SetLonglineDto.PROPERTY_SETTING_START_LONGITUDE}; + propertyQuadrant:{SetLonglineDto.PROPERTY_SETTING_START_QUADRANT}; latitude:{bean.getSettingStartLatitude()}; longitude:{bean.getSettingStartLongitude()}; + quadrant:{bean.getSettingStartQuadrant()}; _validatorLabel:{t("observe.content.setLongline.settingStartCoordinates")}; } @@ -98,8 +100,10 @@ #settingEndCoordinates { propertyLatitude:{SetLonglineDto.PROPERTY_SETTING_END_LATITUDE}; propertyLongitude:{SetLonglineDto.PROPERTY_SETTING_END_LONGITUDE}; + propertyQuadrant:{SetLonglineDto.PROPERTY_SETTING_END_QUADRANT}; latitude:{bean.getSettingEndLatitude()}; longitude:{bean.getSettingEndLongitude()}; + quadrant:{bean.getSettingEndQuadrant()}; _validatorLabel:{t("observe.content.setLongline.settingEndCoordinates")}; } @@ -365,8 +369,10 @@ #haulingStartCoordinates { propertyLatitude:{SetLonglineDto.PROPERTY_HAULING_START_LATITUDE}; propertyLongitude:{SetLonglineDto.PROPERTY_HAULING_START_LONGITUDE}; + propertyQuadrant:{SetLonglineDto.PROPERTY_HAULING_START_QUADRANT}; latitude:{bean.getHaulingStartLatitude()}; longitude:{bean.getHaulingStartLongitude()}; + quadrant:{bean.getHaulingStartQuadrant()}; _validatorLabel:{t("observe.content.setLongline.haulingStartCoordinates")}; } @@ -380,8 +386,10 @@ #haulingEndCoordinates { propertyLatitude:{SetLonglineDto.PROPERTY_HAULING_END_LATITUDE}; propertyLongitude:{SetLonglineDto.PROPERTY_HAULING_END_LONGITUDE}; + propertyQuadrant:{SetLonglineDto.PROPERTY_HAULING_END_QUADRANT}; latitude:{bean.getHaulingEndLatitude()}; longitude:{bean.getHaulingEndLongitude()}; + quadrant:{bean.getHaulingEndQuadrant()}; _validatorLabel:{t("observe.content.setLongline.haulingEndCoordinates")}; } diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index c4d711a..9cfc458 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1769,7 +1769,6 @@ observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP=Save observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP.description=Save local database before changing data source observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE=Mode observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.description=Choose connexion mode -observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.detail=Data source type observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG=Configuration observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG.description=Configure selected data source observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG_DATA=Data diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 822931f..4d56c98 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1769,7 +1769,6 @@ observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP=Copi observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP.description=Guardadar la base local antes de cambiar la fuente de datos observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE=Modo observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.description=Elegir el modo de conexión -observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.detail=Tipo de fuente de datos observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG=Configuración observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG.description=Configurar la fuente de datos seleccionado observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG_DATA=Datos diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index 5525b99..c5fdfcc 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1769,7 +1769,6 @@ observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP=Sauv observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.BACKUP.description=Sauvegarder la base locale avant de changer de source de données observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE=Mode observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.description=Choisir le mode de connexion -observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CHOOSE_DB_MODE.detail=Type de source de données observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG=Configuration observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG.description=Configurer la source de données sélectionnée observe.enum.fr.ird.observe.application.swing.ui.storage.StorageStep.CONFIG_DATA=Données diff --git a/application-web-configuration/src/main/resources/validators.xml b/application-web-configuration/src/main/resources/validators.xml index cfebc8f..367fc0c 100644 --- a/application-web-configuration/src/main/resources/validators.xml +++ b/application-web-configuration/src/main/resources/validators.xml @@ -61,5 +61,19 @@ <validator name="activityFinDeVeilleExists" class="fr.ird.observe.services.topia.validators.ActivityFinDeVeilleExistsValidator"/> <validator name="setLonglineUniqueHomeId" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueHomeIdValidator"/> <validator name="setLonglineUniqueNumber" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueNumberValidator"/> + <validator name="quadrant" class="fr.ird.observe.services.topia.validators.QuadrantFieldValidator"/> + + <!-- Les validateurs spécifique aux Dto dans observe --> + <validator name="collectionUniqueKeyDto" class="fr.ird.observe.application.swing.validators.CollectionUniqueKeyDtoValidator"/> + <validator name="observeCollectionUniqueKeyDto" class="fr.ird.observe.application.swing.validators.ObserveCollectionUniqueKeyDtoValidator"/> + <validator name="openableDto" class="fr.ird.observe.application.swing.validators.OpenableDtoFieldValidator"/> + <validator name="species_lengthDto" class="fr.ird.observe.application.swing.validators.SpeciesLengthFieldDtoValidator"/> + <validator name="species_weightDto" class="fr.ird.observe.application.swing.validators.SpeciesWeightFieldDtoValidator"/> + <validator name="activitySpeedDto" class="fr.ird.observe.application.swing.validators.ActivitySpeedDtoValidator"/> + <validator name="activitySimpleSpeedDto" class="fr.ird.observe.application.swing.validators.ActivitySimpleSpeedDtoValidator"/> + <validator name="activityFinDeVeilleExistsDto" class="fr.ird.observe.application.swing.validators.ActivityFinDeVeilleExistsDtoValidator"/> + <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> + <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> + <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> </validators> diff --git a/services-model/src/main/xmi/observe-services-dto-longline.zargo b/services-model/src/main/xmi/observe-services-dto-longline.zargo index dcf7570..5c61e0c 100644 Binary files a/services-model/src/main/xmi/observe-services-dto-longline.zargo and b/services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/ActivityLongline-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/ActivityLongline-service-error-validation.xml index 6eb146d..af137e9 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/ActivityLongline-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/ActivityLongline-service-error-validation.xml @@ -67,16 +67,10 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - tripLonglineEntity.ocean == null || quadrant == null || quadrant == 0 - || (tripLonglineEntity.ocean.code == 3) - || (tripLonglineEntity.ocean.code == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (tripLonglineEntity.ocean.code == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripLonglineEntity.ocean</param> <message> - validator.service.activity.invalid.quadrant##${tripLonglineEntity.ocean.libelle} + validator.service.activity.invalid.quadrant##${tripLonglineEntity.ocean.getProperty("label")} </message> </field-validator> diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/SetLongline-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/SetLongline-service-error-validation.xml index b646c90..64c893d 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/SetLongline-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/longline/SetLongline-service-error-validation.xml @@ -219,20 +219,14 @@ <field name="settingStartQuadrant"> <field-validator type="required" short-circuit="true"> - <message>validator.service.setLongline.required.settingStartQuadrant</message> + <message>validator.service.setLongline.required.quadrant</message> </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - tripLonglineEntity.ocean == null || settingStartQuadrant == null || settingStartQuadrant == 0 - || (tripLonglineEntity.ocean.code == 3) - || (tripLonglineEntity.ocean.code == 1 && ( settingStartQuadrant == 1 || settingStartQuadrant == 2 || settingStartQuadrant == 3 || settingStartQuadrant == 4)) - || (tripLonglineEntity.ocean.code == 2 && ( settingStartQuadrant == 1 || settingStartQuadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripLonglineEntity.ocean</param> <message> - validator.service.setLongline.invalid.settingStartQuadrant##${tripLonglineEntity.ocean.libelle} + validator.service.setLongline.invalid.quadrant##${tripLonglineEntity.ocean.libelle} </message> </field-validator> @@ -241,20 +235,14 @@ <field name="settingEndQuadrant"> <field-validator type="required" short-circuit="true"> - <message>validator.service.setLongline.required.settingEndQuadrant</message> + <message>validator.service.setLongline.required.quadrant</message> </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - tripLonglineEntity.ocean == null || settingEndQuadrant == null || settingEndQuadrant == 0 - || (tripLonglineEntity.ocean.code == 3) - || (tripLonglineEntity.ocean.code == 1 && ( settingEndQuadrant == 1 || settingEndQuadrant == 2 || settingEndQuadrant == 3 || settingEndQuadrant == 4)) - || (tripLonglineEntity.ocean.code == 2 && ( settingEndQuadrant == 1 || settingEndQuadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripLonglineEntity.ocean</param> <message> - validator.service.setLongline.invalid.settingEndQuadrant##${tripLonglineEntity.ocean.libelle} + validator.service.setLongline.invalid.quadrant##${tripLonglineEntity.ocean.libelle} </message> </field-validator> @@ -264,20 +252,14 @@ <field name="haulingStartQuadrant"> <field-validator type="required" short-circuit="true"> - <message>validator.service.setLongline.required.haulingStartQuadrant</message> + <message>validator.service.setLongline.required.quadrant</message> </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - tripLonglineEntity.ocean == null || haulingStartQuadrant == null || haulingStartQuadrant == 0 - || (tripLonglineEntity.ocean.code == 3) - || (tripLonglineEntity.ocean.code == 1 && ( haulingStartQuadrant == 1 || haulingStartQuadrant == 2 || haulingStartQuadrant == 3 || haulingStartQuadrant == 4)) - || (tripLonglineEntity.ocean.code == 2 && ( haulingStartQuadrant == 1 || haulingStartQuadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripLonglineEntity.ocean</param> <message> - validator.service.setLongline.invalid.haulingStartQuadrant##${tripLonglineEntity.ocean.libelle} + validator.service.setLongline.invalid.quadrant##${tripLonglineEntity.ocean.libelle} </message> </field-validator> @@ -286,20 +268,14 @@ <field name="haulingEndQuadrant"> <field-validator type="required" short-circuit="true"> - <message>validator.service.setLongline.required.haulingEndQuadrant</message> + <message>validator.service.setLongline.required.quadrant</message> </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - tripLonglineEntity.ocean == null || haulingEndQuadrant == null || haulingEndQuadrant == 0 - || (tripLonglineEntity.ocean.code == 3) - || (tripLonglineEntity.ocean.code == 1 && ( haulingEndQuadrant == 1 || haulingEndQuadrant == 2 || haulingEndQuadrant == 3 || haulingEndQuadrant == 4)) - || (tripLonglineEntity.ocean.code == 2 && ( haulingEndQuadrant == 1 || haulingEndQuadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripLonglineEntity.ocean</param> <message> - validator.service.setLongline.invalid.haulingEndQuadrant##${tripLonglineEntity.ocean.libelle} + validator.service.setLongline.invalid.quadrant##${tripLonglineEntity.ocean.libelle} </message> </field-validator> diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml index a0a5ed8..9e3cb0e 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/ActivitySeine-service-error-validation.xml @@ -34,14 +34,8 @@ </field-validator> <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - quadrant == null || quadrant == 0 || tripSeineEntity.ocean == null - || (tripSeineEntity.ocean.code == 3) - || (tripSeineEntity.ocean.code == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) - || (tripSeineEntity.ocean.code == 2 && ( quadrant == 1 || quadrant == 2)) - ]]> - </param> + <field-validator type="quadrant" short-circuit="true"> + <param name="ocean">tripSeineEntity.ocean</param> <message> validator.service.activity.invalid.quadrant##${tripSeineEntity.ocean.label2} </message> diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties index bd0b9e7..4b6f6aa 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties @@ -463,10 +463,7 @@ validator.service.setLongline.duplicated.number=Number is already used in anothe validator.service.setLongline.floatlinesComposition.uniqueKey=Tuple (type/length) must be unique. validator.service.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=Hauling end time must be after hauling start time. validator.service.setLongline.hooksComposition.uniqueKey=Tuple (type/size/offet) must be unique. -validator.service.setLongline.invalid.haulingEndQuadrant=Quadrant is not consistent with ocean (%1$s) of the trip (indian\: 1 or 2, atlantic\: 1, 2, 3 or 4). -validator.service.setLongline.invalid.haulingStartQuadrant=Quadrant is not consistent with ocean (%1$s) of the trip (indian\: 1 or 2, atlantic\: 1, 2, 3 or 4). -validator.service.setLongline.invalid.settingEndQuadrant=Quadrant is not consistent with ocean (%1$s) of the trip (indian\: 1 or 2, atlantic\: 1, 2, 3 or 4). -validator.service.setLongline.invalid.settingStartQuadrant=Quadrant is not consistent with ocean (%1$s) of the trip (indian\: 1 or 2, atlantic\: 1, 2, 3 or 4). +validator.service.setLongline.invalid.quadrant=Quadrant is not consistent with ocean (%1$s) of the trip (indian\: 1 or 2, atlantic\: 1, 2, 3 or 4). validator.service.setLongline.null.homeId=Home id is not filled. validator.service.setLongline.required.basketsPerSectionCount=Baskets per section count must be filled. validator.service.setLongline.required.branchlinesPerBasketCount=Branchlines per basket count must be filled. @@ -474,19 +471,16 @@ validator.service.setLongline.required.haulingBreaks=Hauling breaks must be fill validator.service.setLongline.required.haulingDirectionSameAsSetting=Hauling direction same as setting must be filled. validator.service.setLongline.required.haulingEndLatitude=Latitude must be filled. validator.service.setLongline.required.haulingEndLongitude=Longitude must be filled. -validator.service.setLongline.required.haulingEndQuadrant=Quadrant must be filled. validator.service.setLongline.required.haulingEndTimeStamp=Timestamp must be filled. validator.service.setLongline.required.haulingStartLatitude=Latitude must be filled. validator.service.setLongline.required.haulingStartLongitude=Longitude must be filled. -validator.service.setLongline.required.haulingStartQuadrant=Quadrant must be filled. validator.service.setLongline.required.haulingStartTimeStamp=Timestamp must be filled. +validator.service.setLongline.required.quadrant=Quadrant must be filled. validator.service.setLongline.required.settingEndLatitude=Latitude must be filled. validator.service.setLongline.required.settingEndLongitude=Longitude must be filled. -validator.service.setLongline.required.settingEndQuadrant=Quadrant must be filled. validator.service.setLongline.required.settingEndTimeStamp=Timestamp must be filled. validator.service.setLongline.required.settingStartLatitude=Latitude must be filled. validator.service.setLongline.required.settingStartLongitude=Longitude must be filled. -validator.service.setLongline.required.settingStartQuadrant=Quadrant must be filled. validator.service.setLongline.required.settingStartTimeStamp=Timestamp must be filled. validator.service.setLongline.required.totalSectionsCount=Total sections count must be filled. validator.service.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=Setting end time must be before hauling start time. diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties index df3d337..9a830fe 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties @@ -463,10 +463,7 @@ validator.service.setLongline.duplicated.number=El número ya está utilizado po validator.service.setLongline.floatlinesComposition.uniqueKey=La tupla (tipo/longitud) debe ser única, la tupa ya está utilizada. validator.service.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=La hora de fin de arrastre debe ser superior o igual a la hora de inicio de arrastre. validator.service.setLongline.hooksComposition.uniqueKey=La tupla (tipo/tamaño/offset) debe ser única, la tupa ya está utilizada. -validator.service.setLongline.invalid.haulingEndQuadrant=El cuadrante de fin de arrastre no es coherente con el oceano (%1$s) de la marea (Índico \: 1,2, atlántico \: 1, 2, 3, 4) -validator.service.setLongline.invalid.haulingStartQuadrant=El cuadrante de inicio de arrastre no es coherente con el oceano (%1$s) de la marea (Índico \: 1,2, atlántico \: 1, 2, 3, 4) -validator.service.setLongline.invalid.settingEndQuadrant=El cuadrante de fin de calada no es coherente con el oceano (%1$s) de la marea (Índico \: 1,2, atlántico \: 1, 2, 3, 4) -validator.service.setLongline.invalid.settingStartQuadrant=El cuadrante de inicio de calada no es coherente con el oceano (%1$s) de la marea (Índico \: 1,2, atlántico \: 1, 2, 3, 4) +validator.service.setLongline.invalid.quadrant=El cuadrante no es coherente con el oceano (%1$s) de la marea (Índico \: 1,2, atlántico \: 1, 2, 3, 4) validator.service.setLongline.null.homeId=Id de negocio vacío. validator.service.setLongline.required.basketsPerSectionCount=Número de cestas por sección vacío. validator.service.setLongline.required.branchlinesPerBasketCount=Número de avanzuelos por cesta vacío. @@ -474,19 +471,16 @@ validator.service.setLongline.required.haulingBreaks=Número de cortes vacío. validator.service.setLongline.required.haulingDirectionSameAsSetting=El campo no puede estar vacío. validator.service.setLongline.required.haulingEndLatitude=Latitud de fin de arrastre vacía. validator.service.setLongline.required.haulingEndLongitude=Longitud de fin de arrastre vacía. -validator.service.setLongline.required.haulingEndQuadrant=Cuadrante de fin de arrastre vacío. validator.service.setLongline.required.haulingEndTimeStamp=Timestamp de fin de arrastre vacío. validator.service.setLongline.required.haulingStartLatitude=Latitud de inicio de arrastre vacía. validator.service.setLongline.required.haulingStartLongitude=Longitud de inicio de arrastre vacía. -validator.service.setLongline.required.haulingStartQuadrant=Cuadrante de inicio de arrastre vacío validator.service.setLongline.required.haulingStartTimeStamp=Timestamp de inicio de arrastre vacío. +validator.service.setLongline.required.quadrant=Cuadrante vacío. validator.service.setLongline.required.settingEndLatitude=Latitud de fin de calada vacíoe. validator.service.setLongline.required.settingEndLongitude=longitud de fin de calada vacía. -validator.service.setLongline.required.settingEndQuadrant=Cuadrante de fin de calada vacío validator.service.setLongline.required.settingEndTimeStamp=Timestamp de fin de calada vacío. validator.service.setLongline.required.settingStartLatitude=Latitud de inicio de calada vacía. validator.service.setLongline.required.settingStartLongitude=Longitud de inicio de calada vacía. -validator.service.setLongline.required.settingStartQuadrant=Cuadrante de inicio de arrastre vacío validator.service.setLongline.required.settingStartTimeStamp=Timestamp de inicio de calada vacío. validator.service.setLongline.required.totalSectionsCount=Número de secciones vacío. validator.service.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=La hora de inicio de arrastre debe ser superior o igual a la hora de fin de calada. diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties index 60860bb..1ee040a 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties @@ -463,10 +463,7 @@ validator.service.setLongline.duplicated.number=Le numéro est déjà utilisé p validator.service.setLongline.floatlinesComposition.uniqueKey=Le tuple (type/longueur) doit être unique, le tuple est déjà utilisé. validator.service.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp=L'heure de fin de virage doit être supérieure ou égal à l'heure de début de virage. validator.service.setLongline.hooksComposition.uniqueKey=Le tuple (type/taille/offset) doit être unique, le tuple est déjà utilisé. -validator.service.setLongline.invalid.haulingEndQuadrant=Le quadrant de fin de virage n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) -validator.service.setLongline.invalid.haulingStartQuadrant=Le quadrant de début de virage n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) -validator.service.setLongline.invalid.settingEndQuadrant=Le quadrant de fin de filage n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) -validator.service.setLongline.invalid.settingStartQuadrant=Le quadrant de début de filage n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) +validator.service.setLongline.invalid.quadrant=Le quadrant n'est pas cohérent par rapport à l'océan (%1$s) de la marée (indien \: 1,2, atlantique \: 1, 2, 3, 4) validator.service.setLongline.null.homeId=Id métier non renseigné. validator.service.setLongline.required.basketsPerSectionCount=Nombre de paniers par section non renseigné. validator.service.setLongline.required.branchlinesPerBasketCount=Nombre d'hameçons par panier non renseigné. @@ -474,19 +471,16 @@ validator.service.setLongline.required.haulingBreaks=Nombre de coupures non rens validator.service.setLongline.required.haulingDirectionSameAsSetting=Le champ doit être renseigné. validator.service.setLongline.required.haulingEndLatitude=Latitude de fin de virage non renseignée. validator.service.setLongline.required.haulingEndLongitude=longitude de fin de virage non renseignée. -validator.service.setLongline.required.haulingEndQuadrant=Quadrant de fin de virage non renseigné. validator.service.setLongline.required.haulingEndTimeStamp=Horodatage de fin de virage non renseigné. validator.service.setLongline.required.haulingStartLatitude=Latitude de début de virage non renseignée. validator.service.setLongline.required.haulingStartLongitude=longitude de début de virage non renseignée. -validator.service.setLongline.required.haulingStartQuadrant=Quadrant de début de virage non renseigné. validator.service.setLongline.required.haulingStartTimeStamp=Horodatage de début de virage non renseigné. +validator.service.setLongline.required.quadrant=Quadrant non renseigné. validator.service.setLongline.required.settingEndLatitude=Latitude de fin de filage non renseignée. validator.service.setLongline.required.settingEndLongitude=longitude de fin de filage non renseignée. -validator.service.setLongline.required.settingEndQuadrant=Quadrant de fin de filage non renseigné. validator.service.setLongline.required.settingEndTimeStamp=Horodatage de fin de filage non renseigné. validator.service.setLongline.required.settingStartLatitude=Latitude de début de filage non renseignée. validator.service.setLongline.required.settingStartLongitude=longitude de début de filage non renseignée. -validator.service.setLongline.required.settingStartQuadrant=Quadrant de début de filage non renseigné. validator.service.setLongline.required.settingStartTimeStamp=Horodatage de début de filage non renseigné. validator.service.setLongline.required.totalSectionsCount=Nombre de sections non renseigné. validator.service.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=L'heure de début de virage doit être supérieure ou égal à l'heure de fin de filage. diff --git a/services-topia-validation/src/test/resources/validators.xml b/services-topia-validation/src/test/resources/validators.xml index ce0ded5..dbe4cdc 100644 --- a/services-topia-validation/src/test/resources/validators.xml +++ b/services-topia-validation/src/test/resources/validators.xml @@ -61,5 +61,6 @@ <validator name="activityFinDeVeilleExists" class="fr.ird.observe.services.topia.validators.ActivityFinDeVeilleExistsValidator"/> <validator name="setLonglineUniqueHomeId" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueHomeIdValidator"/> <validator name="setLonglineUniqueNumber" class="fr.ird.observe.services.topia.validators.SetLonglineUniqueNumberValidator"/> + <validator name="quadrant" class="fr.ird.observe.services.topia.validators.QuadrantFieldValidator"/> </validators> diff --git a/services-topia-validators/src/main/java/fr/ird/observe/services/topia/validators/QuadrantFieldValidator.java b/services-topia-validators/src/main/java/fr/ird/observe/services/topia/validators/QuadrantFieldValidator.java new file mode 100644 index 0000000..b00c104 --- /dev/null +++ b/services-topia-validators/src/main/java/fr/ird/observe/services/topia/validators/QuadrantFieldValidator.java @@ -0,0 +1,53 @@ +package fr.ird.observe.services.topia.validators; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import fr.ird.observe.entities.referentiel.Ocean; + +/** + * Created on 02/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class QuadrantFieldValidator extends FieldValidatorSupport { + + private String ocean; + + public void setOcean(String ocean) { + this.ocean = ocean; + } + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + if (fieldName == null) { + throw new ValidationException("No parameter 'fieldName' filled"); + } + + Ocean ocean = (Ocean) getFieldValue(this.ocean, object); + if (ocean == null) { + throw new ValidationException("could not find trip named: " + this.ocean); + } + + Integer quadrant = (Integer) getFieldValue(fieldName, object); + if (quadrant == null) { + return; + } + + Integer code = Integer.valueOf(ocean.getCode()); + boolean valid = code == 3 + || (code == 1 && (quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (code == 2 && (quadrant == 1 || quadrant == 2)); + + if (!valid) { + addFieldError(fieldName, object); + } + } + + @Override + public String getValidatorType() { + return "quadrant"; + } + +} -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 3e1e193463ed4e330447c241f47a4d99e2e07771 Merge: 51036b6 081446b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 12:24:42 2016 +0200 Fixes #8482 Merge branch 'feature/8482' into develop .../src/main/resources/validators.xml | 3 +- ...ivityLonglineDto-ui-create-error-validation.xml | 10 +- ...ivityLonglineDto-ui-update-error-validation.xml | 10 +- .../SetLonglineDto-ui-create-error-validation.xml | 148 ++++++++++++------ ...ActivitySeineDto-ui-create-error-validation.xml | 10 +- ...ActivitySeineDto-ui-update-error-validation.xml | 10 +- .../application-swing-validation_en_GB.properties | 6 + .../application-swing-validation_es_ES.properties | 6 + .../application-swing-validation_fr_FR.properties | 6 + .../src/test/resources/validators.xml | 1 + .../validators/QuadrantFieldDtoValidator.java | 54 +++++++ .../ui/content/impl/longline/SetLonglineUI.jaxx | 4 + .../ui/content/impl/longline/SetLonglineUI.jcss | 8 + .../i18n/application-swing_en_GB.properties | 1 - .../i18n/application-swing_es_ES.properties | 1 - .../i18n/application-swing_fr_FR.properties | 1 - .../src/main/resources/validators.xml | 14 ++ .../java/fr/ird/observe/entities/Activity.java | 6 +- .../main/java/fr/ird/observe/entities/GPSAble.java | 59 -------- .../java/fr/ird/observe/entities/ObserveSet.java | 2 - .../entities/longline/ActivityLonglineImpl.java | 52 +++---- .../observe/entities/longline/SetLonglineImpl.java | 11 -- .../observe/entities/seine/ActivitySeineImpl.java | 62 +++----- .../ird/observe/entities/seine/SetSeineImpl.java | 4 - entities/src/main/xmi/observe-seine.zargo | Bin 84619 -> 83234 bytes .../main/xmi/observe-services-dto-longline.zargo | Bin 67306 -> 67504 bytes .../ActivityLongline-service-error-validation.xml | 12 +- .../SetLongline-service-error-validation.xml | 56 ++----- .../ActivitySeine-service-error-validation.xml | 12 +- .../seine/Route-service-error-validation.xml | 2 +- .../services-topia-validation_en_GB.properties | 10 +- .../services-topia-validation_es_ES.properties | 10 +- .../services-topia-validation_fr_FR.properties | 10 +- .../src/main/resources/xwork.xml | 7 + .../src/test/resources/validators.xml | 1 + .../topia/validators/QuadrantFieldValidator.java | 53 +++++++ .../topia/binder/data/ActivityLonglineBinder.java | 1 - .../topia/binder/data/ActivitySeineBinder.java | 1 - .../service/actions/validate/ObserveValidator.java | 166 --------------------- .../validate/ServiceValidationException.java | 13 ++ .../actions/validate/ValidateServiceTopia.java | 130 ++++++++++------ .../actions/validate/ValidationDataContext.java | 65 ++++++-- .../validate/ValidationMessageDetector.java | 7 +- .../service/actions/validate/ValidatorsMap.java | 54 ++----- .../longline/ActivityLonglineServiceTopia.java | 17 +-- .../service/seine/ActivitySeineServiceTopia.java | 17 +-- 46 files changed, 508 insertions(+), 625 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm