[tutti] branch develop updated (b1a0457 -> 68079f0)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from b1a0457 fix protocol export test new 68079f0 refs #5828 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 68079f023d5b9010b6fb19f95c6366b6a56b7ca7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 3 14:42:52 2014 +0100 refs #5828 Summary of changes: .../entities/referential/VesselBean.java | 11 ------ .../service/ReferentialPersistenceServiceImpl.java | 11 ++++-- .../referential/ReferentialExportService.java | 4 +++ .../referential/ReferentialImportService.java | 39 +++++++++++++--------- .../tutti/service/referential/VesselModel.java | 8 +++-- .../resources/i18n/tutti-service_en_GB.properties | 4 +++ .../resources/i18n/tutti-service_fr_FR.properties | 22 +++++++----- .../ManageTemporaryReferentialUIHandler.java | 2 +- 8 files changed, 58 insertions(+), 43 deletions(-) delete mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/VesselBean.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 tutti. See http://git.codelutin.com/tutti.git commit 68079f023d5b9010b6fb19f95c6366b6a56b7ca7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 3 14:42:52 2014 +0100 refs #5828 --- .../entities/referential/VesselBean.java | 11 ------ .../service/ReferentialPersistenceServiceImpl.java | 11 ++++-- .../referential/ReferentialExportService.java | 4 +++ .../referential/ReferentialImportService.java | 39 +++++++++++++--------- .../tutti/service/referential/VesselModel.java | 8 +++-- .../resources/i18n/tutti-service_en_GB.properties | 4 +++ .../resources/i18n/tutti-service_fr_FR.properties | 22 +++++++----- .../ManageTemporaryReferentialUIHandler.java | 2 +- 8 files changed, 58 insertions(+), 43 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/VesselBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/VesselBean.java deleted file mode 100644 index 51cff83..0000000 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/VesselBean.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.ifremer.tutti.persistence.entities.referential; - -/** - * @author Kevin Morin (Code Lutin) - * @since 3.8 - */ -public class VesselBean extends AbstractVesselBean { - - private static final long serialVersionUID = 7220732795288760932L; - -} 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 be73b89..9896723 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 @@ -713,9 +713,14 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic Preconditions.checkNotNull(entity.getId()); Preconditions.checkNotNull(entity.getStatus()); - return StatusCode.TEMPORARY.getValue().equals(entity.getStatus().getId()) && - (entity.getIdAsInt() != null && entity.getIdAsInt() < 0 - || entity.getId() != null && entity.getId().startsWith(TemporaryDataHelper.TEMPORARY_NAME_PREFIX)); + boolean tempId; + if (entity instanceof Vessel) { + tempId = entity.getId() != null && entity.getId().startsWith(TemporaryDataHelper.TEMPORARY_NAME_PREFIX); + } else { + tempId = entity.getIdAsInt() != null && entity.getIdAsInt() < 0; + } + + return StatusCode.TEMPORARY.getValue().equals(entity.getStatus().getId()) && tempId; } @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialExportService.java index a4e4853..35fd6c5 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialExportService.java @@ -141,24 +141,28 @@ public class ReferentialExportService extends AbstractTuttiService { Vessel v; v = Vessels.newVessel(); + v.setRegistrationCode("RegCode1"); v.setName("Temporary fishing vessel name 1"); v.setInternationalRegistrationCode("International registration code F1"); v.setScientificVessel(false); toExport.add(v); v = Vessels.newVessel(); + v.setRegistrationCode("RegCode2"); v.setName("Temporary fishing vessel name 2"); v.setInternationalRegistrationCode("International registration code F2"); v.setScientificVessel(false); toExport.add(v); v = Vessels.newVessel(); + v.setRegistrationCode("RegCode3"); v.setName("Temporary scientific vessel name 3"); v.setInternationalRegistrationCode("International registration code S3"); v.setScientificVessel(true); toExport.add(v); v = Vessels.newVessel(); + v.setRegistrationCode("RegCode4"); v.setName("Temporary scientific vessel name 4"); v.setInternationalRegistrationCode("International registration code S4"); v.setScientificVessel(true); 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 aee5192..d4a40e0 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 @@ -24,8 +24,11 @@ package fr.ifremer.tutti.service.referential; import com.google.common.base.Charsets; import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.io.Files; import fr.ifremer.tutti.persistence.entities.TuttiEntities; @@ -194,14 +197,14 @@ public class ReferentialImportService extends AbstractTuttiService { List<Vessel> existingVessels = Lists.newArrayList(persistenceService.getAllFishingVessel()); existingVessels.addAll(persistenceService.getAllScientificVessel()); - Function<Vessel, String> vesselToId = new Function<Vessel, String>() { + Set<String> existingVesselRegistrationCodes = Sets.newHashSet(Iterables.transform(existingVessels, new Function<Vessel, String>() { @Override public String apply(Vessel input) { return input.getRegistrationCode(); } - }; - - Set<String> existingIds = Sets.newHashSet(Lists.transform(existingVessels, vesselToId)); + })); + Map<String, Vessel> existingVesselsById = TuttiEntities.splitById(existingVessels); + Set<String> existingVesselIds = new HashSet<>(existingVesselsById.keySet()); List<Vessel> toAdd = Lists.newArrayList(); List<Vessel> toUpdate = Lists.newArrayList(); @@ -216,26 +219,30 @@ public class ReferentialImportService extends AbstractTuttiService { for (final VesselRow bean : importer) { - String currentId = bean.getId(); + String id = StringUtils.trimToNull(bean.getId()); + String registrationCode = bean.getRegistrationCode(); + Vessel vessel = existingVesselsById.get(id); boolean delete = BooleanUtils.isTrue(bean.getToDelete()); - if (existingIds.add(currentId)) { + if (id != null && existingVesselIds.add(id)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.notExistingId.error", id)); + + } else if (StringUtils.isBlank(registrationCode)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.noRegistrationCode.error", id)); - // id was already in universe - throw new ApplicationTechnicalException( - t("tutti.service.referential.import.vessels.existingValue.error", - bean.getName(), - bean.getInternationalRegistrationCode())); + } else if (!delete && !existingVesselRegistrationCodes.add(registrationCode) && + (id == null || vessel != null && !vessel.getRegistrationCode().equals(registrationCode))) { + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.existingRegistrationCode.error", registrationCode)); } if (delete) { - if (persistenceService.isTemporaryVesselUsed(currentId)) { - throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.used.error", currentId)); + if (persistenceService.isTemporaryVesselUsed(id)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.used.error", id)); } - toDelete.add(currentId); + toDelete.add(id); } else { - if (bean.getId() == null) { + if (id == null) { toAdd.add(bean); } else { @@ -434,7 +441,7 @@ public class ReferentialImportService extends AbstractTuttiService { if (delete) { if (persistenceService.isTemporaryGearUsed(id)) { - throw new IllegalArgumentException(t("tutti.service.referential.import.species.used.error", id)); + throw new IllegalArgumentException(t("tutti.service.referential.import.gear.used.error", id)); } toDelete.add(id); existingGearNames.remove(name); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java index bdcc1c5..061cfb2 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java @@ -44,7 +44,7 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves // import definition - newMandatoryColumn(VesselRow.PROPERTY_ID, Vessel.PROPERTY_REGISTRATION_CODE, new Common.StringValueParser() { + newMandatoryColumn(VesselRow.PROPERTY_ID, new Common.StringValueParser() { @Override public String parse(String value) { @@ -56,7 +56,7 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves // must also start with the temporary prefix if (!parse.startsWith(TemporaryDataHelper.TEMPORARY_NAME_PREFIX)) { - throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.codePrefixMissing.error", parse));//"Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.codePrefixMissing.error", TemporaryDataHelper.TEMPORARY_NAME_PREFIX, parse));//"Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); } } @@ -66,6 +66,7 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves }); + newMandatoryColumn(VesselRow.PROPERTY_REGISTRATION_CODE); newMandatoryColumn(VesselRow.PROPERTY_NAME); newMandatoryColumn(VesselRow.PROPERTY_INTERNATIONAL_REGISTRATION_CODE); newMandatoryColumn(VesselRow.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); @@ -73,7 +74,8 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves // export definition - newColumnForExport(VesselRow.PROPERTY_ID, Vessel.PROPERTY_REGISTRATION_CODE); + newColumnForExport(VesselRow.PROPERTY_ID); + newColumnForExport(VesselRow.PROPERTY_REGISTRATION_CODE); newColumnForExport(VesselRow.PROPERTY_NAME); newColumnForExport(VesselRow.PROPERTY_INTERNATIONAL_REGISTRATION_CODE); newColumnForExport(VesselRow.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); 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 ef1186d..e5fb55e 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 @@ -221,6 +221,7 @@ 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.existingName.error= tutti.service.referential.import.person.idNotNegative.error= @@ -235,6 +236,9 @@ 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.codePrefixMissing.error= +tutti.service.referential.import.vessel.existingRegistrationCode.error= +tutti.service.referential.import.vessel.noRegistrationCode.error= +tutti.service.referential.import.vessel.notExistingId.error= tutti.service.referential.import.vessel.used.error= tutti.service.referential.import.vessels.error= tutti.service.referential.import.vessels.existingValue.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 480f3b6..455163e 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,25 +197,29 @@ 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.existingName.error=L'engin '%2$s' n'a pas été ajouté au référentiel car il est déjà présent +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= +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.existingName.error= +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= +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= +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.error=Erreur lors de l'import des espèces du fichier %s -tutti.service.referential.import.species.existingName.error=L'espèce '%2$s' n'a pas été ajoutée au référentiel car elle est déjà présente +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 rmeplacer avant de la supprimer. -tutti.service.referential.import.vessel.codePrefixMissing.error= -tutti.service.referential.import.vessel.used.error= +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.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 +tutti.service.referential.import.vessel.notExistingId.error=L'identifiant '%s' n'a pas été trouvé parmi les navires temporaires +tutti.service.referential.import.vessel.used.error=Le navire temporaire %s est utilisé dans l'application. Vous devez le remplacer pour pouvoir le supprimer. tutti.service.referential.import.vessels.error=Erreur lors de l'import des navires du fichier %s tutti.service.referential.import.vessels.existingValue.error=Un navire avec le nom %1s et l'immatriculation %2s existe déjà dans le référentiel tutti.service.sumatra.export.error=Erreur lors de l'export Sumatra dans le fichier %s diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java index d25f10c..be9ba9a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java @@ -116,7 +116,7 @@ public class ManageTemporaryReferentialUIHandler extends AbstractTuttiUIHandler< } public void resetExportPersonAction() { - resetExportSpeciesAction = true; + resetExportPersonsAction = true; try { ui.getPersonActionComboBox().setSelectedIndex(0); } finally { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm