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 0a96398164ff57d06f5ba95e132e119ea57ed266 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Feb 15 14:44:28 2015 +0100 revue des imports de référentiels --- .../ifremer/tutti/service/PdfGeneratorService.java | 2 +- .../ifremer/tutti/service/PersistenceService.java | 56 ++++++++++++++--- .../fr/ifremer/tutti/service/csv/CsvComsumer.java | 10 ++++ .../referential/ReferentialImportRequest.java | 21 +++++-- .../referential/ReferentialImportResult.java | 29 ++++----- .../ReferentialTemporaryGearService.java | 19 ++++-- .../ReferentialTemporaryPersonService.java | 22 ++++--- .../ReferentialTemporarySpeciesService.java | 20 +++++-- .../ReferentialTemporaryVesselService.java | 11 ++-- .../consumer/CsvConsumerForTemporaryGear.java | 69 ++++++++++----------- .../consumer/CsvConsumerForTemporaryPerson.java | 69 +++++++++++---------- .../consumer/CsvConsumerForTemporarySpecies.java | 68 +++++++++++---------- .../consumer/CsvConsumerForTemporaryVessel.java | 70 +++++++++++----------- .../tutti/service/referential/csv/GearModel.java | 15 ++++- .../tutti/service/referential/csv/PersonModel.java | 15 ++++- .../service/referential/csv/SpeciesModel.java | 15 ++++- .../csv/TemporaryReferentialEntityIdParser.java | 17 ++++-- .../tutti/service/referential/csv/VesselModel.java | 26 ++------ .../resources/i18n/tutti-service_en_GB.properties | 54 ++++++++++------- .../resources/i18n/tutti-service_fr_FR.properties | 67 +++++++++++---------- .../pupitri/PupitriImportServiceAno5079Test.java | 2 +- 21 files changed, 395 insertions(+), 282 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PdfGeneratorService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PdfGeneratorService.java index 9881944..fb4afb9 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PdfGeneratorService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PdfGeneratorService.java @@ -100,7 +100,7 @@ public class PdfGeneratorService extends AbstractTuttiService { } } catch (Exception ex) { - throw new ApplicationTechnicalException(t("tutti.service.exportPdf.error"), ex); + throw new ApplicationTechnicalException(t("tutti.service.exportPdf.error", targetFile), ex); } } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 0b39493..e04a221 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -1003,23 +1003,63 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override - public Collection<Species> importTemporarySpecies(Collection<Species> species) { - return driver.importTemporarySpecies(species); + public List<Gear> addTemporaryGears(List<Gear> gears) { + return driver.addTemporaryGears(gears); } @Override - public Collection<Vessel> importTemporaryVessel(Collection<Vessel> vessels) { - return driver.importTemporaryVessel(vessels); + public List<Person> addTemporaryPersons(List<Person> persons) { + return driver.addTemporaryPersons(persons); } @Override - public Collection<Person> importTemporaryPerson(Collection<Person> persons) { - return driver.importTemporaryPerson(persons); + public List<Species> addTemporarySpecies(List<Species> species) { + return driver.addTemporarySpecies(species); } @Override - public Collection<Gear> importTemporaryGear(Collection<Gear> gears) { - return driver.importTemporaryGear(gears); + public List<Vessel> addTemporaryVessels(List<Vessel> vessels) { + return driver.addTemporaryVessels(vessels); + } + + @Override + public List<Gear> updateTemporaryGears(List<Gear> gears) { + return driver.updateTemporaryGears(gears); + } + + @Override + public List<Person> updateTemporaryPersons(List<Person> persons) { + return driver.updateTemporaryPersons(persons); + } + + @Override + public List<Species> updateTemporarySpecies(List<Species> species) { + return driver.updateTemporarySpecies(species); + } + + @Override + public List<Vessel> updateTemporaryVessels(List<Vessel> vessels) { + return driver.updateTemporaryVessels(vessels); + } + + @Override + public List<Gear> linkTemporaryGears(List<Gear> gears) { + return driver.linkTemporaryGears(gears); + } + + @Override + public List<Person> linkTemporaryPersons(List<Person> persons) { + return driver.linkTemporaryPersons(persons); + } + + @Override + public List<Species> linkTemporarySpecies(List<Species> specieses) { + return driver.linkTemporarySpecies(specieses); + } + + @Override + public List<Vessel> linkTemporaryVessels(List<Vessel> vessels) { + return driver.linkTemporaryVessels(vessels); } @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java index 27916d2..666e775 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java @@ -8,6 +8,7 @@ import org.nuiton.csv.AbstractImportErrorInfo; import org.nuiton.csv.Import2; import org.nuiton.csv.ImportRow; import org.nuiton.csv.ImportableColumn; +import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.BufferedReader; @@ -76,6 +77,15 @@ public abstract class CsvComsumer<O, M extends AbstractTuttiImportExportModel<O> } + protected void reportError(ImportRow<O> row) { + if (!row.isValid()) { + + String message = rowErrorsToExceptionMessage(row); + throw new ApplicationBusinessException(message); + + } + } + public static class CheckImportErrorInfo<E> extends AbstractImportErrorInfo<E> { public CheckImportErrorInfo(ImportRow<E> row, ImportableColumn<E, Object> field, Throwable cause) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportRequest.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportRequest.java index e6443f4..83225f9 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportRequest.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportRequest.java @@ -31,7 +31,6 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; @@ -48,6 +47,8 @@ public class ReferentialImportRequest<E extends TuttiReferentialEntity, K> { private final List<E> toUpdate = Lists.newArrayList(); + private final List<E> toLink = Lists.newArrayList(); + private final List<K> toDelete = Lists.newArrayList(); private final Map<K, E> existingEntitiesById; @@ -69,6 +70,10 @@ public class ReferentialImportRequest<E extends TuttiReferentialEntity, K> { toUpdate.add(entityToUpdate); } + public void addEntityToLink(E entityToLink) { + toLink.add(entityToLink); + } + public void addIdToDelete(K entityToDelete) { toDelete.add(entityToDelete); } @@ -81,22 +86,30 @@ public class ReferentialImportRequest<E extends TuttiReferentialEntity, K> { return !toUpdate.isEmpty(); } + public boolean withEntitiesToLink() { + return !toLink.isEmpty(); + } + public boolean withEntitiesToDelete() { return !toDelete.isEmpty(); } - public Collection<K> getIdsToDelete() { + public List<K> getIdsToDelete() { return Lists.newArrayList(toDelete); } - public Collection<E> getEntitiesToAdd() { + public List<E> getEntitiesToAdd() { return Lists.newArrayList(toAdd); } - public Collection<E> getEntitiesToUpdate() { + public List<E> getEntitiesToUpdate() { return Lists.newArrayList(toUpdate); } + public List<E> getEntitiesToLink() { + return Lists.newArrayList(toLink); + } + public E getExistingEntityById(K id) { return existingEntitiesById.get(id); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportResult.java index 81bb617..f81d7af 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportResult.java @@ -27,7 +27,6 @@ package fr.ifremer.tutti.service.referential; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; import java.util.ArrayList; -import java.util.Collection; import java.util.List; /** @@ -40,21 +39,15 @@ public class ReferentialImportResult<E extends TuttiReferentialEntity> { protected List<E> refUpdated = new ArrayList<>(); + protected List<E> refLinked = new ArrayList<>(); + protected int nbRefDeleted = 0; public List<E> getRefAdded() { return refAdded; } - public void setRefAdded(List<E> refAdded) { - this.refAdded = refAdded; - } - - public void addRefAdded(E ref) { - refAdded.add(ref); - } - - public void addAllRefsAdded(Collection<E> refs) { + public void addAllRefsAdded(List<E> refs) { refAdded.addAll(refs); } @@ -66,20 +59,20 @@ public class ReferentialImportResult<E extends TuttiReferentialEntity> { return refUpdated; } - public void setRefUpdated(List<E> refUpdated) { - this.refUpdated = refUpdated; + public void addAllRefsUpdated(List<E> refs) { + refUpdated.addAll(refs); } - public void addRefUpdated(E ref) { - refUpdated.add(ref); + public int getNbRefUpdated() { + return refUpdated.size(); } - public void addAllRefsUpdated(Collection<E> refs) { - refUpdated.addAll(refs); + public void addAllRefsLinked(List<E> refs) { + refLinked.addAll(refs); } - public int getNbRefUpdated() { - return refUpdated.size(); + public int getNbRefLinked() { + return refLinked.size(); } public int getNbRefDeleted() { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryGearService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryGearService.java index 86f7537..e5849ba 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryGearService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryGearService.java @@ -42,7 +42,6 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.IOException; -import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -110,7 +109,7 @@ public class ReferentialTemporaryGearService extends AbstractTuttiService { if (requestResult.withEntitiesToDelete()) { - Collection<Integer> idsToDelete = requestResult.getIdsToDelete(); + List<Integer> idsToDelete = requestResult.getIdsToDelete(); persistenceService.deleteTemporaryGears(idsToDelete); result.setNbRefDeleted(idsToDelete.size()); @@ -118,20 +117,28 @@ public class ReferentialTemporaryGearService extends AbstractTuttiService { if (requestResult.withEntitiesToAdd()) { - Collection<Gear> entitiesToAdd = requestResult.getEntitiesToAdd(); - Collection<Gear> entitiesAdded = persistenceService.importTemporaryGear(entitiesToAdd); + List<Gear> entitiesToAdd = requestResult.getEntitiesToAdd(); + List<Gear> entitiesAdded = persistenceService.addTemporaryGears(entitiesToAdd); result.addAllRefsAdded(entitiesAdded); } if (requestResult.withEntitiesToUpdate()) { - Collection<Gear> entitiesToUpdate = requestResult.getEntitiesToUpdate(); - Collection<Gear> entitiesUpdated = persistenceService.importTemporaryGear(entitiesToUpdate); + List<Gear> entitiesToUpdate = requestResult.getEntitiesToUpdate(); + List<Gear> entitiesUpdated = persistenceService.updateTemporaryGears(entitiesToUpdate); result.addAllRefsUpdated(entitiesUpdated); } + if (requestResult.withEntitiesToLink()) { + + List<Gear> entitiesToLink = requestResult.getEntitiesToLink(); + List<Gear> entitiesLinked = persistenceService.linkTemporaryGears(entitiesToLink); + result.addAllRefsLinked(entitiesLinked); + + } + return result; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryPersonService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryPersonService.java index 6e4984b..834d9c1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryPersonService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryPersonService.java @@ -42,7 +42,6 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.IOException; -import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -109,8 +108,7 @@ public class ReferentialTemporaryPersonService extends AbstractTuttiService { if (requestResult.withEntitiesToDelete()) { - Collection<Integer> idsToDelete = requestResult.getIdsToDelete(); - + List<Integer> idsToDelete = requestResult.getIdsToDelete(); persistenceService.deleteTemporaryPersons(idsToDelete); result.setNbRefDeleted(idsToDelete.size()); @@ -118,20 +116,28 @@ public class ReferentialTemporaryPersonService extends AbstractTuttiService { if (requestResult.withEntitiesToAdd()) { - Collection<Person> entitiesToAdd = requestResult.getEntitiesToAdd(); - - Collection<Person> entitiesAdded = persistenceService.importTemporaryPerson(entitiesToAdd); + List<Person> entitiesToAdd = requestResult.getEntitiesToAdd(); + List<Person> entitiesAdded = persistenceService.addTemporaryPersons(entitiesToAdd); result.addAllRefsAdded(entitiesAdded); + } if (requestResult.withEntitiesToUpdate()) { - Collection<Person> entitiesToUpdate = requestResult.getEntitiesToUpdate(); - Collection<Person> entitiesUpdated = persistenceService.importTemporaryPerson(entitiesToUpdate); + List<Person> entitiesToUpdate = requestResult.getEntitiesToUpdate(); + List<Person> entitiesUpdated = persistenceService.updateTemporaryPersons(entitiesToUpdate); result.addAllRefsUpdated(entitiesUpdated); } + if (requestResult.withEntitiesToLink()) { + + List<Person> entitiesToLink = requestResult.getEntitiesToLink(); + List<Person> entitiesLinked = persistenceService.linkTemporaryPersons(entitiesToLink); + result.addAllRefsLinked(entitiesLinked); + + } + return result; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java index f1e97fa..8e15e5b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java @@ -42,7 +42,6 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.IOException; -import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -108,7 +107,7 @@ public class ReferentialTemporarySpeciesService extends AbstractTuttiService { if (requestResult.withEntitiesToDelete()) { - Collection<Integer> idsToDelete = requestResult.getIdsToDelete(); + List<Integer> idsToDelete = requestResult.getIdsToDelete(); persistenceService.deleteTemporarySpecies(idsToDelete); result.setNbRefDeleted(idsToDelete.size()); @@ -116,18 +115,27 @@ public class ReferentialTemporarySpeciesService extends AbstractTuttiService { if (requestResult.withEntitiesToAdd()) { - Collection<Species> entitiesToAdd = requestResult.getEntitiesToAdd(); - Collection<Species> entitiesAdded = persistenceService.importTemporarySpecies(entitiesToAdd); + List<Species> entitiesToAdd = requestResult.getEntitiesToAdd(); + List<Species> entitiesAdded = persistenceService.addTemporarySpecies(entitiesToAdd); result.addAllRefsAdded(entitiesAdded); } if (requestResult.withEntitiesToUpdate()) { - Collection<Species> entitiesToUpdate = requestResult.getEntitiesToUpdate(); - Collection<Species> entitiesUpdated = persistenceService.importTemporarySpecies(entitiesToUpdate); + List<Species> entitiesToUpdate = requestResult.getEntitiesToUpdate(); + List<Species> entitiesUpdated = persistenceService.updateTemporarySpecies(entitiesToUpdate); result.addAllRefsUpdated(entitiesUpdated); } + + if (requestResult.withEntitiesToLink()) { + + List<Species> entitiesToLink = requestResult.getEntitiesToLink(); + List<Species> entitiesLinked = persistenceService.linkTemporarySpecies(entitiesToLink); + result.addAllRefsLinked(entitiesLinked); + + } + return result; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryVesselService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryVesselService.java index 7da7324..87694e4 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryVesselService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporaryVesselService.java @@ -42,7 +42,6 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.IOException; -import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -108,7 +107,7 @@ public class ReferentialTemporaryVesselService extends AbstractTuttiService { if (requestResult.withEntitiesToDelete()) { - Collection<String> idsToDelete = requestResult.getIdsToDelete(); + List<String> idsToDelete = requestResult.getIdsToDelete(); persistenceService.deleteTemporaryVessels(idsToDelete); result.setNbRefDeleted(idsToDelete.size()); @@ -116,15 +115,15 @@ public class ReferentialTemporaryVesselService extends AbstractTuttiService { if (requestResult.withEntitiesToAdd()) { - Collection<Vessel> entitiesToAdd = requestResult.getEntitiesToAdd(); - Collection<Vessel> entitiesAdded = persistenceService.importTemporaryVessel(entitiesToAdd); + List<Vessel> entitiesToAdd = requestResult.getEntitiesToAdd(); + List<Vessel> entitiesAdded = persistenceService.addTemporaryVessels(entitiesToAdd); result.addAllRefsAdded(entitiesAdded); } if (requestResult.withEntitiesToUpdate()) { - Collection<Vessel> entitiesToUpdate = requestResult.getEntitiesToUpdate(); - Collection<Vessel> entitiesUpdated = persistenceService.importTemporaryVessel(entitiesToUpdate); + List<Vessel> entitiesToUpdate = requestResult.getEntitiesToUpdate(); + List<Vessel> entitiesUpdated = persistenceService.updateTemporaryVessels(entitiesToUpdate); result.addAllRefsUpdated(entitiesUpdated); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryGear.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryGear.java index b2cb522..a738cd6 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryGear.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryGear.java @@ -1,6 +1,7 @@ package fr.ifremer.tutti.service.referential.consumer; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.csv.CsvComsumer; @@ -38,12 +39,7 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> DecoratorService decoratorService, ReferentialImportRequest<Gear, Integer> requestResult) { - if (!row.isValid()) { - - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); - - } + reportError(row); GearRow bean = row.getBean(); @@ -62,7 +58,7 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> Gear gear = requestResult.getExistingEntityById(id); if (gear == null) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.notExistingId.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.notExistingId", id)); } if (delete) { @@ -82,44 +78,49 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> public void checkRowForGenericFormatImport(ImportRow<GearRow> row, ReferentialImportRequest<Gear, Integer> requestResult) { - if (!row.isValid()) { + GearRow bean = row.getBean(); + String name = bean.getName(); - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); + if (row.isValid()) { - } + Integer id = bean.getIdAsInt(); - GearRow bean = row.getBean(); + if (id == null) { - Integer id = bean.getIdAsInt(); + // need an id. This id will be used in generic format import (but won't be necessary the one in db) + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.noId"))); - if (id != null) { + } else if (!Gears.isTemporaryId(id)) { - // can't do other thing than an add import - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.cannotUpdateOrDeleteForGenericFormatImport", id)); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.idNotTemporary", id))); - } + } - String name = bean.getName(); + if (StringUtils.isBlank(name)) { + + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.noName"))); + + } - if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.add.noName.error")); } - if (!requestResult.addExistingNaturalId(name)) { + reportError(row); + + Gear entity = bean.toEntity(); + boolean toAdd = requestResult.addExistingNaturalId(name); + if (toAdd) { - // already exists do not reimport it - if (log.isWarnEnabled()) { - log.warn("Won't reimport existing gear with name: " + name); + if (log.isInfoEnabled()) { + log.info("Will add gear with name: " + name); } + requestResult.addEntityToAdd(entity); } else { if (log.isInfoEnabled()) { - log.info("Will import gear with name: " + name); + log.info("Will link gear with name: " + name); } - - requestResult.addEntityToAdd(bean.toEntity()); + requestResult.addEntityToLink(entity); } @@ -131,19 +132,19 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> boolean delete = BooleanUtils.isTrue(bean.getToDelete()); if (delete) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.cannotDeleteWithoutId.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.cannotDeleteWithoutId")); } if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.add.noName.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.noName")); } if (!requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.existingName", name)); } if (log.isInfoEnabled()) { - log.info("Will import gear with name: " + name); + log.info("Will add gear with name: " + name); } requestResult.addEntityToAdd(bean.toEntity()); @@ -160,7 +161,7 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> if (persistenceService.isTemporaryGearUsed(id)) { String gearRef = id + " : " + decoratorService.getDecoratorByType(Gear.class).toString(gear); - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.used.error", gearRef)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.used", gearRef)); } requestResult.addIdToDelete(id); @@ -180,11 +181,11 @@ public class CsvConsumerForTemporaryGear extends CsvComsumer<GearRow, GearModel> String name = bean.getName(); if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.noName.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.noName", id)); } if (!name.equals(gear.getName()) && !requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.gear.error.existingName", name)); } if (log.isInfoEnabled()) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryPerson.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryPerson.java index cc51557..f0f9619 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryPerson.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryPerson.java @@ -1,6 +1,7 @@ package fr.ifremer.tutti.service.referential.consumer; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.csv.CsvComsumer; @@ -38,12 +39,7 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person DecoratorService decoratorService, ReferentialImportRequest<Person, Integer> requestResult) { - if (!row.isValid()) { - - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); - - } + reportError(row); PersonRow bean = row.getBean(); @@ -62,7 +58,7 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person Person person = requestResult.getExistingEntityById(id); if (person == null) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.notExistingId.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.notExistingId", id)); } if (delete) { @@ -82,45 +78,48 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person public void checkRowForGenericFormatImport(ImportRow<PersonRow> row, ReferentialImportRequest<Person, Integer> requestResult) { - if (!row.isValid()) { + PersonRow bean = row.getBean(); + String name = bean.getFullName(); - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); + if (row.isValid()) { - } + Integer id = bean.getIdAsInt(); - PersonRow bean = row.getBean(); + if (id == null) { - Integer id = bean.getIdAsInt(); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.person.error.noId"))); - if (id != null) { + } else if (!Persons.isTemporaryId(id)) { - // can't do other thing than an add import - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.cannotUpdateOrDeleteForGenericFormatImport", id)); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.person.error.idNotTemporary", id))); - } + } - String name = bean.getFullName(); + if (StringUtils.isBlank(name)) { + + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.person.error.noName"))); + + } - if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.add.noName.error")); } - if (!requestResult.addExistingNaturalId(name)) { + reportError(row); + + Person entity = bean.toEntity(); + boolean toAdd = requestResult.addExistingNaturalId(name); + if (toAdd) { - // already exists do not reimport it - if (log.isWarnEnabled()) { - log.warn("Won't reimport existing person with name: " + name); + if (log.isInfoEnabled()) { + log.info("Will add person with name: " + name); } + requestResult.addEntityToAdd(entity); } else { if (log.isInfoEnabled()) { - log.info("Will import person with name: " + name); + log.info("Will link person with name: " + name); } - - requestResult.addEntityToAdd(bean.toEntity()); - + requestResult.addEntityToLink(entity); } } @@ -131,19 +130,19 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person boolean delete = BooleanUtils.isTrue(bean.getToDelete()); if (delete) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.cannotDeleteWithoutId.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.cannotDeleteWithoutId")); } if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.add.noName.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.noName")); } if (!requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.existingName", name)); } if (log.isInfoEnabled()) { - log.info("Will import person with name: " + name); + log.info("Will add person with name: " + name); } requestResult.addEntityToAdd(bean.toEntity()); @@ -160,7 +159,7 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person if (persistenceService.isTemporaryPersonUsed(id)) { String personRef = id + " : " + decoratorService.getDecoratorByType(Person.class).toString(person); - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.used.error", personRef)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.used", personRef)); } if (log.isInfoEnabled()) { @@ -178,11 +177,11 @@ public class CsvConsumerForTemporaryPerson extends CsvComsumer<PersonRow, Person String name = bean.getFullName(); if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.noName.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.noName", id)); } if (!name.equals(person.getName()) && !requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.person.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.person.error.existingName", name)); } if (log.isInfoEnabled()) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java index fc5cb07..60fa0b1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java @@ -1,6 +1,7 @@ package fr.ifremer.tutti.service.referential.consumer; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.csv.CsvComsumer; @@ -38,12 +39,7 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec DecoratorService decoratorService, ReferentialImportRequest<Species, Integer> requestResult) { - if (!row.isValid()) { - - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); - - } + reportError(row); SpeciesRow bean = row.getBean(); @@ -62,7 +58,7 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec Species species = requestResult.getExistingEntityById(id); if (species == null) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.notExistingId.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.notExistingId", id)); } if (delete) { @@ -82,42 +78,48 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec public void checkRowForGenericFormatImport(ImportRow<SpeciesRow> row, ReferentialImportRequest<Species, Integer> requestResult) { - if (!row.isValid()) { + SpeciesRow bean = row.getBean(); + String name = bean.getName(); - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); + if (row.isValid()) { - } + Integer id = bean.getIdAsInt(); - SpeciesRow bean = row.getBean(); + if (id == null) { - Integer id = bean.getIdAsInt(); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.species.error.noId"))); - if (id != null) { + } else if (!Speciess.isTemporaryId(id)) { - // can't do other thing than an add import - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.cannotUpdateOrDeleteForGenericFormatImport", id)); - } + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.species.error.idNotTemporary", id))); - String name = bean.getName(); + } + + if (StringUtils.isBlank(name)) { + + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.species.error.noName"))); + + } - if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.add.noName.error")); } - if (!requestResult.addExistingNaturalId(name)) { + reportError(row); - // already exists do not reimport it - if (log.isWarnEnabled()) { - log.warn("Won't reimport existing species with name: " + name); + Species entity = bean.toEntity(null); + boolean toAdd = requestResult.addExistingNaturalId(name); + if (toAdd) { + + if (log.isInfoEnabled()) { + log.info("Will add gear with name: " + name); } + requestResult.addEntityToAdd(entity); } else { if (log.isInfoEnabled()) { - log.info("Will import species with name: " + name); + log.info("Will link gear with name: " + name); } - requestResult.addEntityToAdd(bean.toEntity(null)); + requestResult.addEntityToLink(entity); } @@ -129,19 +131,19 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec boolean delete = BooleanUtils.isTrue(bean.getToDelete()); if (delete) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.cannotDeleteWithoutId.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.cannotDeleteWithoutId")); } if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.add.noName.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.noName")); } if (!requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.existingName", name)); } if (log.isInfoEnabled()) { - log.info("Will delete species with name: " + name); + log.info("Will add species with name: " + name); } requestResult.addEntityToAdd(bean.toEntity(null)); @@ -160,7 +162,7 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec if (persistenceService.isTemporarySpeciesUsed(referenceTaxonId)) { String speciesRef = id + " : " + decoratorService.getDecoratorByType(Species.class, DecoratorService.WITH_SURVEY_CODE).toString(species); - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.used.error", speciesRef)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.used", speciesRef)); } if (log.isInfoEnabled()) { @@ -179,11 +181,11 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec Integer referenceTaxonId = species.getReferenceTaxonId(); if (StringUtils.isBlank(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.noName.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.noName", id)); } if (!species.getName().equals(name) && !requestResult.addExistingNaturalId(name)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.species.existingName.error", name)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.species.error.existingName", name)); } if (log.isInfoEnabled()) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryVessel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryVessel.java index aa0d7a7..1dfcd5b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryVessel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporaryVessel.java @@ -1,6 +1,7 @@ package fr.ifremer.tutti.service.referential.consumer; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.csv.CsvComsumer; @@ -38,19 +39,14 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel DecoratorService decoratorService, ReferentialImportRequest<Vessel, String> requestResult) { - if (!row.isValid()) { - - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); - - } + reportError(row); VesselRow bean = row.getBean(); String id = bean.getId(); boolean delete = BooleanUtils.isTrue(bean.getToDelete()); - if (id == null) { + if (StringUtils.isBlank(id)) { // Ajout checkAdd(bean, requestResult); @@ -63,7 +59,7 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel if (vessel == null) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.notExistingId.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.notExistingId", id)); } if (delete) { @@ -83,44 +79,48 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel public void checkRowForGenericFormatImport(ImportRow<VesselRow> row, ReferentialImportRequest<Vessel, String> requestResult) { - if (!row.isValid()) { + VesselRow bean = row.getBean(); + String internationalRegistrationCode = bean.getInternationalRegistrationCode(); - String message = rowErrorsToExceptionMessage(row); - throw new ApplicationBusinessException(message); + if (row.isValid()) { - } + String id = bean.getId(); - VesselRow bean = row.getBean(); + if (id == null) { - Integer id = bean.getIdAsInt(); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.noId"))); - if (id != null) { + } else if (!Vessels.isTemporaryId(id)) { - // can't do other thing than an add import - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.cannotUpdateOrDeleteForGenericFormatImport", id)); + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.idNotTemporary", id))); - } + } - String internationalRegistrationCode = bean.getInternationalRegistrationCode(); + if (StringUtils.isBlank(internationalRegistrationCode)) { + + addCheckError(row, new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.noRegistrationCode"))); + + } - if (StringUtils.isBlank(internationalRegistrationCode)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.add.noRegistrationCode.error")); } - if (!requestResult.addExistingNaturalId(internationalRegistrationCode)) { + reportError(row); + + Vessel entity = bean.toEntity(); + boolean toAdd = requestResult.addExistingNaturalId(internationalRegistrationCode); + if (toAdd) { - // already exists do not reimport it - if (log.isWarnEnabled()) { - log.warn("Won't reimport existing vessel with internationalRegistrationCode: " + internationalRegistrationCode); + if (log.isInfoEnabled()) { + log.info("Will add vessel with internationalRegistrationCode: " + internationalRegistrationCode); } + requestResult.addEntityToAdd(entity); } else { if (log.isInfoEnabled()) { - log.info("Will import vessel with internationalRegistrationCode: " + internationalRegistrationCode); + log.info("Will link vessel with internationalRegistrationCode: " + internationalRegistrationCode); } - - requestResult.addEntityToAdd(bean.toEntity()); + requestResult.addEntityToLink(entity); } @@ -132,19 +132,19 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel boolean delete = BooleanUtils.isTrue(bean.getToDelete()); if (delete) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.cannotDeleteWithoutId.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.cannotDeleteWithoutId")); } if (StringUtils.isBlank(internationalRegistrationCode)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.add.noRegistrationCode.error")); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.noRegistrationCode")); } if (!requestResult.addExistingNaturalId(internationalRegistrationCode)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.existingRegistrationCode.error", internationalRegistrationCode)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.existingRegistrationCode", internationalRegistrationCode)); } if (log.isInfoEnabled()) { - log.info("Will import vessel with internationalRegistrationCode: " + internationalRegistrationCode); + log.info("Will add vessel with internationalRegistrationCode: " + internationalRegistrationCode); } requestResult.addEntityToAdd(bean.toEntity()); @@ -163,7 +163,7 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel if (persistenceService.isTemporaryVesselUsed(id)) { String vesselRef = id + " :" + decoratorService.getDecoratorByType(Vessel.class).toString(vessel); - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.used.error", vesselRef)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.error.vessel.used", vesselRef)); } if (log.isInfoEnabled()) { @@ -181,11 +181,11 @@ public class CsvConsumerForTemporaryVessel extends CsvComsumer<VesselRow, Vessel String internationalRegistrationCode = bean.getInternationalRegistrationCode(); if (StringUtils.isBlank(internationalRegistrationCode)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.noRegistrationCode.error", id)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.noRegistrationCode", id)); } if (!internationalRegistrationCode.equals(vessel.getName()) && !requestResult.addExistingNaturalId(internationalRegistrationCode)) { - throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.existingRegistrationCode.error", internationalRegistrationCode)); + throw new ApplicationBusinessException(t("tutti.service.referential.import.vessel.error.existingRegistrationCode", internationalRegistrationCode)); } if (log.isInfoEnabled()) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/GearModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/GearModel.java index 7687178..ef69cec 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/GearModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/GearModel.java @@ -23,11 +23,12 @@ package fr.ifremer.tutti.service.referential.csv; */ import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import org.nuiton.csv.Common; -import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Model to import / export {@link Gear} in csv format. @@ -64,7 +65,15 @@ public class GearModel extends AbstractTuttiImportExportModel<GearRow> { protected void forImport() { - newMandatoryColumn(GearRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.gear.idNotNegative.error"))); + newMandatoryColumn(GearRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser( + t("tutti.service.referential.import.gear.error.idNotNegative")){ + + @Override + protected boolean isTemporaryId(String parse) { + int id = Integer.parseInt(parse); + return Gears.isTemporaryId(id); + } + }); 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/csv/PersonModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/PersonModel.java index 4acc2e4..c1fadeb 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/PersonModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/PersonModel.java @@ -23,10 +23,11 @@ package fr.ifremer.tutti.service.referential.csv; */ import fr.ifremer.tutti.persistence.entities.referential.Person; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; -import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Model to import / export {@link Person} in csv format. @@ -63,7 +64,15 @@ public class PersonModel extends AbstractTuttiImportExportModel<PersonRow> { protected void forImport() { - newMandatoryColumn(PersonRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.person.idNotNegative.error"))); + newMandatoryColumn(PersonRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser( + t("tutti.service.referential.import.person.error.idNotNegative")){ + + @Override + protected boolean isTemporaryId(String parse) { + int id = Integer.parseInt(parse); + return Persons.isTemporaryId(id); + } + }); 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/csv/SpeciesModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java index a2be5d3..6114fc4 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java @@ -23,10 +23,11 @@ package fr.ifremer.tutti.service.referential.csv; */ import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; -import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Model to import / export {@link Species} in csv format. @@ -59,7 +60,15 @@ public class SpeciesModel extends AbstractTuttiImportExportModel<SpeciesRow> { protected void forImport() { - newMandatoryColumn(SpeciesRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(n("tutti.service.referential.import.species.idNotNegative.error"))); + newMandatoryColumn(SpeciesRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser( + t("tutti.service.referential.import.species.error.idNotNegative")){ + + @Override + protected boolean isTemporaryId(String parse) { + int id = Integer.parseInt(parse); + return Speciess.isTemporaryId(id); + } + }); newMandatoryColumn(SpeciesRow.PROPERTY_NAME); newMandatoryColumn(SpeciesRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java index 2825792..f934769 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java @@ -35,12 +35,12 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 3.8 */ -public class TemporaryReferentialEntityIdParser implements ValueParser<String> { +public abstract class TemporaryReferentialEntityIdParser implements ValueParser<String> { - protected String idNotNegativeMessageKey; + protected String errorMessage; - public TemporaryReferentialEntityIdParser(String idNotNegativeMessageKey) { - this.idNotNegativeMessageKey = idNotNegativeMessageKey; + public TemporaryReferentialEntityIdParser(String errorMessage) { + this.errorMessage = errorMessage; } @Override @@ -49,12 +49,19 @@ public class TemporaryReferentialEntityIdParser implements ValueParser<String> { value = StringUtils.trimToNull(value); if (value != null) { + if (!isTemporaryId(value)) { + String message = String.format("%s : %s", errorMessage, value); + throw new IllegalArgumentException(message); + } int id = Integer.parseInt(value); if (id >= 0) { - throw new IllegalArgumentException(t(idNotNegativeMessageKey, id)); + throw new IllegalArgumentException(t(errorMessage, id)); } } return value; } + + protected abstract boolean isTemporaryId(String value); + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/VesselModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/VesselModel.java index 9c02179..2fdb238 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/VesselModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/VesselModel.java @@ -24,9 +24,9 @@ package fr.ifremer.tutti.service.referential.csv; import fr.ifremer.adagio.core.dao.technical.hibernate.TemporaryDataHelper; import fr.ifremer.tutti.persistence.entities.referential.Vessel; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; -import org.apache.commons.lang3.StringUtils; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import org.nuiton.csv.Common; import static org.nuiton.i18n.I18n.t; @@ -66,28 +66,14 @@ public class VesselModel extends AbstractTuttiImportExportModel<VesselRow> { protected void forImport() { - newMandatoryColumn(VesselRow.PROPERTY_ID, new Common.StringValueParser() { + newMandatoryColumn(GearRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser( + t("tutti.service.referential.import.vessel.codePrefixMissing.error", TemporaryDataHelper.TEMPORARY_NAME_PREFIX)){ @Override - public String parse(String value) { - - // must be an integer - String parse = super.parse(value); - - if (StringUtils.isNotBlank(parse)) { - - // 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", TemporaryDataHelper.TEMPORARY_NAME_PREFIX, parse));//"Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); - } - } - - return parse; - + protected boolean isTemporaryId(String parse) { + return Vessels.isTemporaryId(parse); } - }); - newMandatoryColumn(VesselRow.PROPERTY_NAME); newMandatoryColumn(VesselRow.PROPERTY_INTERNATIONAL_REGISTRATION_CODE); newMandatoryColumn(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 b141fe5..f2f5ef5 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 @@ -98,6 +98,7 @@ tutti.service.bigfinimport.error.no.protocol= tutti.service.compressZipFile.error= tutti.service.context.serviceInstanciation.error= tutti.service.csv.parse.entityNotFound= +tutti.service.csv.parse.foreignEntityNotFound= tutti.service.cvs.format.error= tutti.service.cvs.mandatory.value= tutti.service.error.species.null= @@ -269,50 +270,59 @@ 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.add.noName.error= +tutti.service.referential.import.error.vessel.used= tutti.service.referential.import.gear.cannotDeleteNotExisting.error= -tutti.service.referential.import.gear.cannotDeleteWithoutId.error= +tutti.service.referential.import.gear.error.cannotDeleteWithoutId= tutti.service.referential.import.gear.error.cannotUpdateOrDeleteForGenericFormatImport= -tutti.service.referential.import.gear.existingName.error= +tutti.service.referential.import.gear.error.existingName= +tutti.service.referential.import.gear.error.idNotNegative= +tutti.service.referential.import.gear.error.idNotTemporary= +tutti.service.referential.import.gear.error.noId= +tutti.service.referential.import.gear.error.noName= +tutti.service.referential.import.gear.error.notExistingId= +tutti.service.referential.import.gear.error.used= 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.add.noName.error= tutti.service.referential.import.person.cannotDeleteNotExisting.error= -tutti.service.referential.import.person.cannotDeleteWithoutId.error= +tutti.service.referential.import.person.error.cannotDeleteWithoutId= tutti.service.referential.import.person.error.cannotUpdateOrDeleteForGenericFormatImport= -tutti.service.referential.import.person.existingName.error= +tutti.service.referential.import.person.error.existingName= +tutti.service.referential.import.person.error.idNotNegative= +tutti.service.referential.import.person.error.idNotTemporary= +tutti.service.referential.import.person.error.noId= +tutti.service.referential.import.person.error.noName= +tutti.service.referential.import.person.error.notExistingId= +tutti.service.referential.import.person.error.used= 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.add.noName.error= tutti.service.referential.import.species.cannotDeleteNotExisting.error= -tutti.service.referential.import.species.cannotDeleteWithoutId.error= tutti.service.referential.import.species.error= +tutti.service.referential.import.species.error.cannotDeleteWithoutId= tutti.service.referential.import.species.error.cannotUpdateOrDeleteForGenericFormatImport= -tutti.service.referential.import.species.existingName.error= +tutti.service.referential.import.species.error.existingName= +tutti.service.referential.import.species.error.idNotNegative= +tutti.service.referential.import.species.error.idNotTemporary= +tutti.service.referential.import.species.error.noId= +tutti.service.referential.import.species.error.noName= +tutti.service.referential.import.species.error.notExistingId= +tutti.service.referential.import.species.error.used= 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.add.noName.error= -tutti.service.referential.import.vessel.add.noRegistrationCode.error= tutti.service.referential.import.vessel.cannotDeleteNotExisting.error= -tutti.service.referential.import.vessel.cannotDeleteWithoutId.error= tutti.service.referential.import.vessel.codePrefixMissing.error= +tutti.service.referential.import.vessel.error.cannotDeleteWithoutId= tutti.service.referential.import.vessel.error.cannotUpdateOrDeleteForGenericFormatImport= +tutti.service.referential.import.vessel.error.existingRegistrationCode= +tutti.service.referential.import.vessel.error.idNotTemporary= +tutti.service.referential.import.vessel.error.noId= +tutti.service.referential.import.vessel.error.noRegistrationCode= +tutti.service.referential.import.vessel.error.notExistingId= tutti.service.referential.import.vessel.existingInternationalRegistrationCode.error= tutti.service.referential.import.vessel.existingName.error= -tutti.service.referential.import.vessel.existingRegistrationCode.error= tutti.service.referential.import.vessel.noInternationalRegistrationCode.error= tutti.service.referential.import.vessel.noName.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= tutti.service.sumatra.export.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 9b3b478..4ad1f0e 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 @@ -5,8 +5,8 @@ tutti.caracteristicType.VESSEL_USE_FEATURE=Autres caractéristiques tutti.caracteristicType.lengthStep= tutti.csv.import.error.on.field=Colonne %s \: %s tutti.csv.import.error.on.row=Des erreurs ont été détectées à la ligne %s \: \n%s -tutti.error.messages= -tutti.fatal.messages= +tutti.error.messages=Erreurs :\n %s +tutti.fatal.messages=Erreurs critiques :\n %s tutti.genericFormat.import.accidentalCatches= tutti.genericFormat.import.catches= tutti.genericFormat.import.cruises= @@ -90,7 +90,7 @@ tutti.service.csv.parse.entityNotFound=L'entité de type %1s avec la propriété tutti.service.csv.parse.foreignEntityNotFound=L'entité de type %1s avec l'identifiant %3s n'a pas été trouvée tutti.service.cvs.format.error=Erreur lors du formatage de la valeur %s tutti.service.cvs.mandatory.value=Valeur obligatoire -tutti.service.error.species.null= +tutti.service.error.species.null=Taxon non trouvé tutti.service.export.accidentalCatch.error=Erreur lors de l'export des captures accidentelles tutti.service.export.catches.error=Erreur lors de l'export des captures tutti.service.export.closeContext.error=Erreur lors de la fermeture du contexte d'export @@ -114,7 +114,7 @@ tutti.service.exportCruise.exportOperations=<html>Export du fichier <strong>oper tutti.service.exportCruise.exportParameters=<html>Export du fichier <strong>parameters.csv</strong> pour la campagne %s</html> tutti.service.exportCruise.exportSpecies=<html>Export du fichier <strong>species.csv</strong> pour la campagne %s</html> tutti.service.exportCruise.exportSurvey=<html>Export du fichier <strong>survey.csv</strong> pour la campagne %s</html> -tutti.service.exportPdf.error= +tutti.service.exportPdf.error=Erreur lors de la génération du pdf %s tutti.service.exportSumatra.error.species.null=L'espèce est nulle tutti.service.exportSumatra.error.station.null=Le trait est nul tutti.service.exportSumatra.header.averageSize=longueurmoy @@ -244,45 +244,50 @@ 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.add.noName.error=Le nom de l'engin est obligatoire +tutti.service.referential.import.error.vessel.used=Le navire temporaire '%s' est utilisé dans l'application. Vous devez le remplacer pour pouvoir le supprimer. tutti.service.referential.import.gear.cannotDeleteNotExisting.error=L'engin temporaire d'identifiant %s n'extsite pas, impossible de la supprimer -tutti.service.referential.import.gear.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression -tutti.service.referential.import.gear.error.cannotUpdateOrDeleteForGenericFormatImport= -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.error.cannotDeleteWithoutId=L'identifiant est obligatoire pour la suppression +tutti.service.referential.import.gear.error.existingName=L'engin '%s' n'a pas été ajouté au référentiel car il est déjà présent +tutti.service.referential.import.gear.error.idNotNegative=L'identifiant d'un engin temporaire doit être négatif +tutti.service.referential.import.gear.error.idNotTemporary=L'identifiant %s n'est pas un identifiant temporaire d'engin +tutti.service.referential.import.gear.error.noId=Un identifiant temporaire d'engin est obligatoire +tutti.service.referential.import.gear.error.noName=Le nom de l'engin est obligatoire +tutti.service.referential.import.gear.error.notExistingId=L'identifiant '%s' n'a pas été trouvé parmi les engins temporaires +tutti.service.referential.import.gear.error.used=L'engin temporaire '%s' est utilisé dans l'application. Vous devez le remplacer pour pouvoir le supprimer. 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.add.noName.error=Le nom de la personne (prénom ou nom) est obligatoire tutti.service.referential.import.person.cannotDeleteNotExisting.error=La personne temporaire d'identifiant %s n'extsite pas, impossible de la supprimer -tutti.service.referential.import.person.cannotDeleteWithoutId.error=L'identifiant est obligatoire pour la suppression -tutti.service.referential.import.person.error.cannotUpdateOrDeleteForGenericFormatImport= -tutti.service.referential.import.person.existingName.error=Une personne avec ce nom %s (nom + prénom) existe déjà +tutti.service.referential.import.person.error.cannotDeleteWithoutId=L'identifiant est obligatoire pour la suppression +tutti.service.referential.import.person.error.existingName=Une personne avec ce nom %s (nom + prénom) existe déjà +tutti.service.referential.import.person.error.idNotNegative=L'identifiant d'une personne temporaire doit être négatif +tutti.service.referential.import.person.error.idNotTemporary=L'identifiant %s n'est pas un identifiant temporaire de personne +tutti.service.referential.import.person.error.noId=Un identifiant temporaire de personne est obligatoire +tutti.service.referential.import.person.error.noName=Le nom de la personne (prénom ou nom) est obligatoire +tutti.service.referential.import.person.error.notExistingId=L'identifiant '%s' n'a pas été trouvé parmi les personnes temporaires +tutti.service.referential.import.person.error.used=La personne temporaire '%s' est utilisée dans l'application. Vous devez la remplacer pour pouvoir la supprimer. 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.add.noName.error=Le nom pour l'espèce %s est obligatoire. tutti.service.referential.import.species.cannotDeleteNotExisting.error=L'espèce temporaire d'identifiant %s n'extsite pas, impossible de la supprimer -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.error.cannotUpdateOrDeleteForGenericFormatImport= -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.error.cannotDeleteWithoutId=L'identifiant est obligatoire pour la suppression +tutti.service.referential.import.species.error.existingName=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.error.idNotNegative=L'identifiant d'une espèce temporaire doit être négatif +tutti.service.referential.import.species.error.idNotTemporary=L'identifiant %s n'est pas un identifiant temporaire de taxon +tutti.service.referential.import.species.error.noId=Un identifiant temporaire de taxon est obligatoire +tutti.service.referential.import.species.error.noName=Le nom pour l'espèce %s est obligatoire. +tutti.service.referential.import.species.error.notExistingId=L'identifiant '%s' n'a pas été trouvé parmi les espèces temporaires +tutti.service.referential.import.species.error.used=L'espèce temporaire '%s' est utilisée dans l'application. Vous devez la remplacer pour pouvoir la supprimer. 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.add.noRegistrationCode.error=L'immatriculation est obligatoire tutti.service.referential.import.vessel.cannotDeleteNotExisting.error=Le navire temporaire d'identifiant %s n'extsite pas, impossible de 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.error.cannotUpdateOrDeleteForGenericFormatImport= -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.vessel.error.cannotDeleteWithoutId=L'identifiant est obligatoire pour la suppression +tutti.service.referential.import.vessel.error.existingRegistrationCode=Le navire '%s' n'a pas été ajouté au référentiel car il est déjà présent +tutti.service.referential.import.vessel.error.idNotTemporary=L'identifiant %s n'est pas un identifiant temporaire de navire +tutti.service.referential.import.vessel.error.noId=Un identifiant temporaire de navire est obligatoire +tutti.service.referential.import.vessel.error.noRegistrationCode=L'immatriculation est obligatoire +tutti.service.referential.import.vessel.error.notExistingId=L'identifiant '%s' n'a pas été trouvé parmi les navires temporaires 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 @@ -374,4 +379,4 @@ tutti.validator.warning.latitude.outOfBounds=La Latitude doit être comprise ent tutti.validator.warning.longitude.outOfBounds=La longitude doit être comprise entre -180.0 et 180.0 tutti.validator.warning.marineLitter.weight.required=Vous devez saisir la valeur du poids total des déchets<br/>ou le poids de chacune des catégories observées. tutti.validator.warning.species.protocolNotRespected=Espèces - le lot de %s / %s ne suit pas les recommandations du protocole -tutti.warning.messages= +tutti.warning.messages=Avertissements :\n %s diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java index e041cd3..0ee4941 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java @@ -57,7 +57,7 @@ public class PupitriImportServiceAno5079Test extends PupitryImportServiceTestSup // Import MELA-NGE species SpeciesBean melagSpecies = new SpeciesBean(); melagSpecies.setName("MELA-NGE"); - Collection<Species> specieses = persistenceService.importTemporarySpecies(Lists.<Species>newArrayList(melagSpecies)); + Collection<Species> specieses = persistenceService.addTemporarySpecies(Lists.<Species>newArrayList(melagSpecies)); Iterables.get(specieses, 0).setRefTaxCode(melagSpecies.getName()); File trunk = dbResource.copyClassPathResource("pupitri/ano-5079.tnk", "pupitri.tnk"); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.