This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 4eb8e4de37e1798eeefeaf6b74aadcd72523faf4 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 3 17:05:45 2014 +0100 refs #5997 --- .../tutti/persistence/entities/TuttiEntity.java | 4 --- .../persistence/entities/TuttiEntityBean.java | 5 --- .../service/ReferentialPersistenceServiceImpl.java | 2 +- .../tutti/service/referential/GearModel.java | 22 +------------ .../tutti/service/referential/PersonModel.java | 23 ++------------ .../referential/ReferentialImportService.java | 15 ++++++++- .../tutti/service/referential/SpeciesModel.java | 22 +------------ .../TemporaryReferentialEntityIdParser.java | 36 ++++++++++++++++++++++ .../resources/i18n/tutti-service_en_GB.properties | 4 +++ .../resources/i18n/tutti-service_fr_FR.properties | 4 +++ .../ui/swing/util/AbstractTuttiBeanUIModel.java | 5 --- 11 files changed, 63 insertions(+), 79 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java index edacfe2..c2136a8 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java @@ -34,16 +34,12 @@ public interface TuttiEntity extends Serializable { public static final String PROPERTY_ID = "id"; - public static final String PROPERTY_ID_AS_INT = "idAsInt"; - String getId(); void setId(String id); Integer getIdAsInt(); - void setIdAsInt(Integer idAsInt); - void setId(Integer id); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java index 7cae605..b110487 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java @@ -70,11 +70,6 @@ public abstract class TuttiEntityBean implements Serializable, TuttiEntity { } @Override - public void setIdAsInt(Integer idAsInt) { - setId(idAsInt); - } - - @Override public boolean equals(Object o) { if (this == o) { return true; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java index 9896723..d1042c8 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java @@ -990,7 +990,7 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic } Species species = getSpeciesByReferenceTaxonId(id); if (species == null) { - throw new ApplicationBusinessException(String.format("Species with id %d does not exists", id)); + throw new ApplicationBusinessException(String.format("Species with id %d does not exist", id)); } if (checkIfUsed) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java index 64a9e8d..6574232 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java @@ -47,27 +47,7 @@ public class GearModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<GearR // import definition - newMandatoryColumn(GearRow.PROPERTY_ID, GearRow.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { - - @Override - public Integer parse(String value) throws ParseException { - - // must be an integer - Integer parse = super.parse(value); - - if (parse != null) { - - // must also be negative value - if (parse >= 0) { - throw new IllegalArgumentException(t("tutti.service.referential.import.gear.idNotNegative.error", parse)); - } - } - - return parse; - - } - - }); + newMandatoryColumn(GearRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.gear.idNotNegative.error"))); newMandatoryColumn(GearRow.PROPERTY_NAME); newMandatoryColumn(GearRow.PROPERTY_LABEL); newMandatoryColumn(GearRow.PROPERTY_SCIENTIFIC_GEAR, Common.PRIMITIVE_BOOLEAN); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java index a5a4d7b..1fcd1c5 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java @@ -29,6 +29,7 @@ import org.nuiton.csv.Common; import java.text.ParseException; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -44,27 +45,7 @@ public class PersonModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Per // import definition - newMandatoryColumn(PersonRow.PROPERTY_ID, PersonRow.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { - - @Override - public Integer parse(String value) throws ParseException { - - // must be an integer - Integer parse = super.parse(value); - - if (parse != null) { - - // must also be negative value - if (parse >= 0) { - throw new IllegalArgumentException(t("tutti.service.referential.import.person.idNotNegative.error", parse)); - } - } - - return parse; - - } - - }); + newMandatoryColumn(PersonRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.person.idNotNegative.error"))); newMandatoryColumn(PersonRow.PROPERTY_FIRST_NAME); newMandatoryColumn(PersonRow.PROPERTY_LAST_NAME); newMandatoryColumn(PersonRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java index d4a40e0..d63ce21 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java @@ -136,10 +136,13 @@ public class ReferentialImportService extends AbstractTuttiService { } if (delete) { + if (id == null) { + throw new IllegalArgumentException(t("tutti.service.referential.import.species.cannotDeleteWithoutId.error", id)); + } if (persistenceService.isTemporarySpeciesUsed(id)) { throw new IllegalArgumentException(t("tutti.service.referential.import.species.used.error", id)); } - toDelete.add(id); + toDelete.add(species.getReferenceTaxonId()); existingSpeciesNames.remove(name); } else { @@ -236,10 +239,14 @@ public class ReferentialImportService extends AbstractTuttiService { } if (delete) { + if (id == null) { + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.cannotDeleteWithoutId.error", id)); + } if (persistenceService.isTemporaryVesselUsed(id)) { throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.used.error", id)); } toDelete.add(id); + existingVesselRegistrationCodes.remove(registrationCode); } else { if (id == null) { @@ -334,6 +341,9 @@ public class ReferentialImportService extends AbstractTuttiService { } if (delete) { + if (id == null) { + throw new IllegalArgumentException(t("tutti.service.referential.import.person.cannotDeleteWithoutId.error", id)); + } if (persistenceService.isTemporaryPersonUsed(id)) { throw new IllegalArgumentException(t("tutti.service.referential.import.person.used.error", id)); } @@ -440,6 +450,9 @@ public class ReferentialImportService extends AbstractTuttiService { } if (delete) { + if (id == null) { + throw new IllegalArgumentException(t("tutti.service.referential.import.gear.cannotDeleteWithoutId.error", id)); + } if (persistenceService.isTemporaryGearUsed(id)) { throw new IllegalArgumentException(t("tutti.service.referential.import.gear.used.error", id)); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java index a602edf..3de629f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java @@ -50,27 +50,7 @@ public class SpeciesModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Sp // import definition - newMandatoryColumn(SpeciesRow.PROPERTY_ID, SpeciesRow.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { - - @Override - public Integer parse(String value) throws ParseException { - - // must be an integer - Integer parse = super.parse(value); - - if (parse != null) { - - // must also be negative value - if (parse >= 0) { - throw new IllegalArgumentException(t("tutti.service.referential.import.species.idNotNegative.error", parse)); - } - } - - return parse; - - } - - }); + newMandatoryColumn(SpeciesRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.species.idNotNegative.error"))); newMandatoryColumn(SpeciesRow.PROPERTY_NAME); newMandatoryColumn(SpeciesRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TemporaryReferentialEntityIdParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TemporaryReferentialEntityIdParser.java new file mode 100644 index 0000000..4216ddb --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TemporaryReferentialEntityIdParser.java @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.service.referential; + +import org.apache.commons.lang3.StringUtils; +import org.nuiton.csv.ValueParser; + +import java.text.ParseException; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Kevin Morin (Code Lutin) + * @since 3.8 + */ +public class TemporaryReferentialEntityIdParser implements ValueParser<String> { + + protected String idNotNegativeMessageKey; + + public TemporaryReferentialEntityIdParser(String idNotNegativeMessageKey) { + this.idNotNegativeMessageKey = idNotNegativeMessageKey; + } + + @Override + public String parse(String value) throws ParseException { + + value = StringUtils.trimToNull(value); + + if (value != null) { + int id = Integer.parseInt(value); + if (id >= 0) { + throw new IllegalArgumentException(t(idNotNegativeMessageKey, id)); + } + } + + return value; + } +} diff --git a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties index e5fb55e..d54161c 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties @@ -217,24 +217,28 @@ tutti.service.referential.export.gear.error= tutti.service.referential.export.person.error= tutti.service.referential.export.species.error= tutti.service.referential.export.vessel.error= +tutti.service.referential.import.gear.cannotDeleteWithoutId.error= tutti.service.referential.import.gear.existingName.error= tutti.service.referential.import.gear.idNotNegative.error= tutti.service.referential.import.gear.noName.error= tutti.service.referential.import.gear.notExistingId.error= tutti.service.referential.import.gear.used.error= tutti.service.referential.import.gears.error= +tutti.service.referential.import.person.cannotDeleteWithoutId.error= tutti.service.referential.import.person.existingName.error= tutti.service.referential.import.person.idNotNegative.error= tutti.service.referential.import.person.noName.error= tutti.service.referential.import.person.notExistingId.error= tutti.service.referential.import.person.used.error= tutti.service.referential.import.persons.error= +tutti.service.referential.import.species.cannotDeleteWithoutId.error= tutti.service.referential.import.species.error= tutti.service.referential.import.species.existingName.error= tutti.service.referential.import.species.idNotNegative.error= tutti.service.referential.import.species.noName.error= tutti.service.referential.import.species.notExistingId.error= tutti.service.referential.import.species.used.error= +tutti.service.referential.import.vessel.cannotDeleteWithoutId.error= tutti.service.referential.import.vessel.codePrefixMissing.error= tutti.service.referential.import.vessel.existingRegistrationCode.error= tutti.service.referential.import.vessel.noRegistrationCode.error= diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 455163e..5ea79ee 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -197,24 +197,28 @@ tutti.service.referential.export.gear.error=Erreur lors de l'export des engins d tutti.service.referential.export.person.error=Erreur lors de l'export des personnes dans le fichier %s tutti.service.referential.export.species.error=Erreur lors de l'export des espèces dans le fichier %s tutti.service.referential.export.vessel.error=Erreur lors de l'export des navires dans le fichier %s +tutti.service.referential.import.gear.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression tutti.service.referential.import.gear.existingName.error=L'engin '%s' n'a pas été ajouté au référentiel car il est déjà présent tutti.service.referential.import.gear.idNotNegative.error=L'identifiant d'un engin temporaire doit être négatif \: %s tutti.service.referential.import.gear.noName.error=Le nom de l'engin est obligatoire tutti.service.referential.import.gear.notExistingId.error=L'identifiant '%s' n'a pas été trouvé parmi les engins temporaires tutti.service.referential.import.gear.used.error=L'engin temporaire %s est utilisé dans l'application. Vous devez le remplacer pour pouvoir le supprimer. tutti.service.referential.import.gears.error=Erreur lors de l'import des engins du fichier %s +tutti.service.referential.import.person.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression tutti.service.referential.import.person.existingName.error=Une personne avec ce nom (nom + prénom) existe déjà tutti.service.referential.import.person.idNotNegative.error=L'identifiant d'une personne temporaire doit être négatif \: %s tutti.service.referential.import.person.noName.error=Le nom de la personne (prénom ou nom) est obligatoire tutti.service.referential.import.person.notExistingId.error=L'identifiant '%s' n'a pas été trouvé parmi les personnes temporaires tutti.service.referential.import.person.used.error=La personne temporaire %s est utilisée dans l'application. Vous devez la remplacer pour pouvoir la supprimer. tutti.service.referential.import.persons.error=Erreur lors de l'import des personnes du fichier %s +tutti.service.referential.import.species.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression tutti.service.referential.import.species.error=Erreur lors de l'import des espèces du fichier %s tutti.service.referential.import.species.existingName.error=L'espèce '%s' n'a pas été ajoutée au référentiel car elle est déjà présente tutti.service.referential.import.species.idNotNegative.error=L'identifiant d'une espèce temporaire doit être négatif \: %s tutti.service.referential.import.species.noName.error=Le nom pour l'espèce %s est obligatoire. tutti.service.referential.import.species.notExistingId.error=L'identifiant '%s' n'a pas été trouvé parmi les espèces temporaires tutti.service.referential.import.species.used.error=L'espèce temporaire %s est utilisée dans l'application. Vous devez la remplacer pour pouvoir la supprimer. +tutti.service.referential.import.vessel.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression tutti.service.referential.import.vessel.codePrefixMissing.error=L'identifiant d'un navire temporaire doit commencer par %1$s \: %2$s tutti.service.referential.import.vessel.existingRegistrationCode.error=Le navire '%s' n'a pas été ajouté au référentiel car il est déjà présent tutti.service.referential.import.vessel.noRegistrationCode.error=L'immatriculation est obligatoire diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java index bf71bee..8a240b8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java @@ -117,11 +117,6 @@ public abstract class AbstractTuttiBeanUIModel<E, B extends AbstractTuttiBeanUIM } @Override - public void setIdAsInt(Integer idAsInt) { - setId(idAsInt); - } - - @Override public void setId(Integer id) { if (id == null) { this.id = null; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.