This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 0fa1a91608d938dfc29e0dcc2495f64e7b9b51c8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 17:21:30 2015 +0200 ajout de la validation (refs #7598) --- .../SetSeineDto-n1-create-error-validation.xml | 193 +++++++++++++++++++ .../SetSeineDto-n1-create-warning-validation.xml | 51 +++++ .../SetSeineDto-n1-update-error-validation.xml | 205 +++++++++++++++++++++ .../SetSeineDto-n1-update-warning-validation.xml | 51 +++++ .../services/dto/seine/ActivitySeineDto.java | 7 + .../observe/services/dto/seine/SetSeineDto.java | 22 +++ 6 files changed, 529 insertions(+) diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml new file mode 100644 index 0000000..5bef73c --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml @@ -0,0 +1,193 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + Copyright (C) 2008 - 2010 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% + --> + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="reasonForNullSet"> + + <!-- reasonForNullSet desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || reasonForNullSet.enabled ]]> + </param> + <message>validator.set.desactivated.reasonForNullSet</message> + </field-validator> + + </field> + + <field name="maxGearDepth"> + + <!-- maxGearDepth entre 0 et 1100 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1100</param> + <message>validator.set.bound.maxGearDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolThickness"> + + <!-- 1 <= schoolThickness <= 500 --> + <field-validator type="int" short-circuit="true"> + <param name="min">1</param> + <param name="max">500</param> + <message>validator.set.bound.schoolThickness##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolMeanDepth"> + + <!-- 0 <= schoolMeanDepth <= 2000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">2000</param> + <message>validator.set.bound.schoolMeanDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolTopDepth"> + + <!-- 0 <= schoolTopDepth <= 1000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1000</param> + <message>validator.set.bound.schoolTopDepth##${min}##${max}</message> + </field-validator> + + </field> + + + <field name="supportVesselName"> + + <!-- supportVesselName de ${maxLength} caractères maximum --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:32</param> + <param name="expression"> + <![CDATA[ supportVesselName == null || supportVesselName.length() < ints.maxLength ]]> + </param> + <message>validator.set.size.supportVesselName##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="endPursingDate"> + + <!-- routeEntity.date <= endPursingDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! currentRoute.date.after(endPursingDate) ]]> + </param> + <message>validator.set.endPursingDate.after.date</message> + </field-validator> + </field> + + <field name="endPursingTimeStamp"> + + <!-- startTime <= endPursingTimeStamp --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingTimeStamp == null || ! startTime.after(endPursingTimeStamp) ]]> + </param> + <message>validator.set.endPursingTimeStamp.after.startTime</message> + </field-validator> + + </field> + + <field name="endSetDate"> + + <!-- endPursingDate <= endSetDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! endPursingDate.after(endSetDate) ]]> + </param> + <message>validator.set.endDate.after.endPursingDate</message> + </field-validator> + </field> + + <field name="endSetTimeStamp"> + + <!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]> + </param> + <message>validator.set.endSetTimeStamp.after.endPursingTimeStamp</message> + </field-validator> + + <!-- verifier que la duree de la set est d'au moins 45 minutes --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:45</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.bound.delay##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="currentDirection"> + + <!-- 0 <= direction courant <= 360 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">360</param> + <message>validator.set.bound.currentDirection##${min}##${max}</message> + </field-validator> + + </field> + + <field name="currentSpeed"> + + <!-- 0 < vitesse courant <= 40 --> + <field-validator type="double" short-circuit="true"> + <param name="minExclusive">0</param> + <param name="maxInclusive">40</param> + <message>validator.set.bound.currentSpeed##${minExclusive}##${maxInclusive}</message> + </field-validator> + + </field> + + <field name="comment"> + + <!-- comentaire de moins de 1024 caractères --> + <field-validator type="stringlength"> + <param name="maxLength">1024</param> + <message>validator.set.comment.tobig</message> + </field-validator> + + <!-- comment requis selon le type de reasonForNullSet choisi --> + <field-validator type="fieldexpression"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || !reasonForNullSet.needComment || (comment!=null && !comment.empty) ]]> + </param> + <message>validator.set.required.comment.for.reasonForNullSet</message> + </field-validator> + + </field> +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml new file mode 100644 index 0000000..0232282 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + Copyright (C) 2008 - 2010 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% + --> + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="currentDirection"> + + <!-- direction courant non renseigne --> + <field-validator type="required" short-circuit="true"> + <message>validator.set.null.currentDirection</message> + </field-validator> + + </field> + + <field name="endSetTimeStamp"> + + <!-- verifier que la duree de la set n'exède pas 5 heures (300 minutes) --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:300</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - startTime.time) <= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.delay.too.long##${ints.maxLength}</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml new file mode 100644 index 0000000..fc80ae8 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + Copyright (C) 2008 - 2010 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% + --> + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="reasonForNullSet"> + + <!-- reasonForNullSet desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || reasonForNullSet.enabled ]]> + </param> + <message>validator.set.desactivated.reasonForNullSet</message> + </field-validator> + + </field> + + <field name="maxGearDepth"> + + <!-- maxGearDepth entre 0 et 1100 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1100</param> + <message>validator.set.bound.maxGearDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolThickness"> + + <!-- 1 <= schoolThickness <= 500 --> + <field-validator type="int" short-circuit="true"> + <param name="min">1</param> + <param name="max">500</param> + <message>validator.set.bound.schoolThickness##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolMeanDepth"> + + <!-- 0 <= schoolMeanDepth <= 2000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">2000</param> + <message>validator.set.bound.schoolMeanDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolTopDepth"> + + <!-- 0 <= schoolTopDepth <= 1000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1000</param> + <message>validator.set.bound.schoolTopDepth##${min}##${max}</message> + </field-validator> + + </field> + + + <field name="supportVesselName"> + + <!-- supportVesselName de ${maxLength} caractères maximum --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:32</param> + <param name="expression"> + <![CDATA[ supportVesselName == null || supportVesselName.length() < ints.maxLength ]]> + </param> + <message>validator.set.size.supportVesselName##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="startTime"> + + <!-- startTime <= activity.time --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ startTime == null || ! currentActivitySeine.timeSecond.after(startSetTime) ]]> + </param> + <message>validator.set.startTime.after.time</message> + </field-validator> + + </field> + + <field name="endPursingDate"> + + <!-- routeEntity.date <= endPursingDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! currentRoute.date.after(endPursingDate) ]]> + </param> + <message>validator.set.endPursingDate.after.date</message> + </field-validator> + </field> + + <field name="endPursingTimeStamp"> + + <!-- startTime <= endPursingTimeStamp --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingTimeStamp == null || ! startTime.after(endPursingTimeStamp) ]]> + </param> + <message>validator.set.endPursingTimeStamp.after.startTime</message> + </field-validator> + + </field> + + <field name="endSetDate"> + + <!-- endDateCoulissage <= endSetDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! endPursingDate.after(endSetDate) ]]> + </param> + <message>validator.set.endDate.after.endPursingDate</message> + </field-validator> + </field> + + <field name="endSetTimeStamp"> + + <!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]> + </param> + <message>validator.set.endSetTimeStamp.after.endPursingTimeStamp</message> + </field-validator> + + <!--verifier que la duree de la set est d'au moins 45 minutes --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:45</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.bound.delay##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="currentDirection"> + + <!-- 0 <= direction courant <= 360 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">360</param> + <message>validator.set.bound.currentDirection##${min}##${max}</message> + </field-validator> + + </field> + + <field name="currentSpeed"> + + <!-- 0 < vitesse courant <= 40 --> + <field-validator type="double" short-circuit="true"> + <param name="minExclusive">0</param> + <param name="maxInclusive">40</param> + <message>validator.set.bound.currentSpeed##${minExclusive}##${maxInclusive}</message> + </field-validator> + + </field> + + <field name="comment"> + + <!-- comentaire de moins de 1024 caractères --> + <field-validator type="stringlength"> + <param name="maxLength">1024</param> + <message>validator.set.comment.tobig</message> + </field-validator> + + <!-- comment requis selone le type de reasonForNullSet choisi --> + <field-validator type="fieldexpression"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || !reasonForNullSet.needComment || (comment != null && !comment.empty) ]]> + </param> + <message>validator.set.required.comment.for.reasonForNullSet</message> + </field-validator> + + </field> +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml new file mode 100644 index 0000000..0232282 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + Copyright (C) 2008 - 2010 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% + --> + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="currentDirection"> + + <!-- direction courant non renseigne --> + <field-validator type="required" short-circuit="true"> + <message>validator.set.null.currentDirection</message> + </field-validator> + + </field> + + <field name="endSetTimeStamp"> + + <!-- verifier que la duree de la set n'exède pas 5 heures (300 minutes) --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:300</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - startTime.time) <= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.delay.too.long##${ints.maxLength}</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java index aa9ab18..859b894 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java @@ -1,6 +1,9 @@ package fr.ird.observe.services.dto.seine; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import org.nuiton.util.DateUtil; + +import java.util.Date; public class ActivitySeineDto extends AbstractActivitySeineDto { @@ -19,4 +22,8 @@ public class ActivitySeineDto extends AbstractActivitySeineDto { && ACTIVITY_FIN_DE_VEILLE.equals( vesselActivitySeine.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE)); } + + public Date getTimeSecond() { + return DateUtil.getTime(time, false, false); + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java index 705b4af..876c47e 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java @@ -8,6 +8,20 @@ public class SetSeineDto extends AbstractSetSeineDto { private static final long serialVersionUID = 3546973062604141414L; + public void setStartSetDate(Date startSetDate) { + if (startTime != null) { + Date dateAndTime = DateUtil.getDateAndTime(startSetDate, startTime, false, false); + setStartTime(dateAndTime); + } + } + + public void setStartSetTime(Date startSetTime) { + if (startTime != null) { + Date dateAndTime = DateUtil.getDateAndTime(startTime, startSetTime, false, false); + setStartTime(dateAndTime); + } + } + public void setEndSetDate(Date endSetDate) { if (endSetTimeStamp != null) { Date dateAndTime = DateUtil.getDateAndTime(endSetDate, endSetTimeStamp, false, false); @@ -36,6 +50,14 @@ public class SetSeineDto extends AbstractSetSeineDto { } } + public Date getStartSetDate() { + return startTime == null ? null : DateUtil.getDay(startTime); + } + + public Date getStartSetTime() { + return startTime == null ? null : DateUtil.getTime(startTime, false, false); + } + public Date getEndSetDate() { return endSetTimeStamp == null ? null : DateUtil.getDay(endSetTimeStamp); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.