06/27: Ne pas autoriser de réimporter des transects déjà existants (See #2246)
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 31e9b4548532e513bc3563f6f9e283f526d5e091 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon May 9 15:08:46 2016 +0200 Ne pas autoriser de réimporter des transects déjà existants (See #2246) --- .../echobase/services/service/UserDbPersistenceService.java | 7 +++++++ ...edVoyageException.java => DuplicatedTransectException.java} | 10 +++++----- .../service/importdata/DuplicatedTransitException.java | 4 ++-- .../services/service/importdata/DuplicatedVoyageException.java | 4 ++-- .../importdata/actions/VoyageCommonsTransectImportAction.java | 6 ++++++ .../src/main/resources/i18n/echobase-services_en_GB.properties | 3 ++- .../src/main/resources/i18n/echobase-services_fr_FR.properties | 1 + 7 files changed, 25 insertions(+), 10 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index 435c166..a1f09a4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -870,6 +870,13 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { //--- Transect -----------------------------------------------------------// //------------------------------------------------------------------------// + public boolean containsTransect(Voyage voyage, String title) { + return persistenceContext.getTransectDao() + .forTitleEquals(title) + .addEquals(Transect.PROPERTY_TRANSIT + "." + Transit.PROPERTY_VOYAGE, voyage) + .exists(); + } + public Transect getTransect(String id) { return persistenceContext.getTransectDao().forTopiaIdEquals(id).findUnique(); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransectException.java similarity index 78% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransectException.java index d6316a7..531c595 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransectException.java @@ -28,16 +28,16 @@ import java.util.Locale; import static org.nuiton.i18n.I18n.l; /** - * Created on 1/21/15. + * Created on 5/09/16. * * @author Tony Chemit - chemit@codelutin.com - * @since 2.9 + * @since 4.0 */ -public class DuplicatedVoyageException extends ImportRuntimeException { +public class DuplicatedTransectException extends ImportRuntimeException { private static final long serialVersionUID = 1L; - public DuplicatedVoyageException(Locale locale, String voyageName) { - super(l(locale, "echobase.importError.duplicate.voyage", voyageName)); + public DuplicatedTransectException(Locale locale, String voyageName, String title) { + super(l(locale, "echobase.importError.duplicate.transect", voyageName, title)); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransitException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransitException.java index faa1111..74fbb18 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransitException.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedTransitException.java @@ -29,10 +29,10 @@ import java.util.Locale; import static org.nuiton.i18n.I18n.l; /** - * Created on 1/21/15. + * Created on 5/09/16. * * @author Tony Chemit - chemit@codelutin.com - * @since 2.9 + * @since 4.0 */ public class DuplicatedTransitException extends ImportRuntimeException { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java index d6316a7..4ac4b03 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedVoyageException.java @@ -28,10 +28,10 @@ import java.util.Locale; import static org.nuiton.i18n.I18n.l; /** - * Created on 1/21/15. + * Created on 5/09/16. * * @author Tony Chemit - chemit@codelutin.com - * @since 2.9 + * @since 4.0 */ public class DuplicatedVoyageException extends ImportRuntimeException { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsTransectImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsTransectImportAction.java index fddf006..19e87a9 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsTransectImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsTransectImportAction.java @@ -5,6 +5,7 @@ import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.DuplicatedTransectException; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.NoTransitFoundBetweenDateException; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCommonsImportDataContext; @@ -67,6 +68,11 @@ public class VoyageCommonsTransectImportAction extends VoyageCommonsImportDataAc Transect transect = row.getTransect(); + boolean exists = persistenceService.containsTransect(voyage, transect.getTitle()); + if (exists) { + throw new DuplicatedTransectException(getLocale(), voyage.getName(), transect.getTitle()); + } + Date timeCoverageStart = transect.getTimeCoverageStart(); Date timeCoverageEnd = transect.getTimeCoverageEnd(); diff --git a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties index b4759c4..6275397 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties @@ -33,7 +33,8 @@ echobase.exportError.toFile=An error occured while exporting file %s \:%s echobase.importError.can.only.import.one.voyage.atime=Impossible to import more that one voyage at a time echobase.importError.dataMetadata.notFound=Metadata column %s missing (existing values \:%s) echobase.importError.duplicate.sample=Operation %s cannot comprise several samples of same type, species and size category -echobase.importError.duplicate.transit=A transit with voyage named «%s», start «%s» - end «%s» already exists un database. +echobase.importError.duplicate.transect=A transect titled «%s» on voyage «%s» already exists un database. +echobase.importError.duplicate.transit=A transit start «%s» - end «%s» on voyage «%s» already exists un database. echobase.importError.duplicate.voyage=A voyage named «%s» already exists un database. echobase.importError.elementaryCell.withMissingDepthEnd=Elementary Cell (id\: %s - name %s) does not contains data in column MOVIES_EILayer\\cellset\\depthend, this is not allowed echobase.importError.esduCell.notfound=A new « dataAquisition» entry must be created for survey %s, vessel %s, instrument %s, whereas some elementary cells are not associated to an ESDU cell (line %s) diff --git a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties index c69df8c..4b2fbdf 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties @@ -33,6 +33,7 @@ echobase.exportError.toFile=Erreur lors de l'extraction du fichier %s \: %s echobase.importError.can.only.import.one.voyage.atime=Vous ne pouvez pas importer plus d'un voyage à la fois echobase.importError.dataMetadata.notFound=Colonne de métadonnées nommée %s non trouvée (valeurs existantes \: %s) echobase.importError.duplicate.sample=L'opération %s ne peut pas contenir deux échantillons de même type %s, espèce %s et classe de taille %s +echobase.importError.duplicate.transect=Le transect de marée nommée «%s» - nom «%s» existe déjà dans la base. echobase.importError.duplicate.transit=Le transit de marée nommée «%s», début «%s» - fin «%s» existe déjà dans la base. echobase.importError.duplicate.voyage=La marée nommée «%s» existe déjà dans la base. echobase.importError.elementaryCell.withMissingDepthEnd=La cellule de type élémentaire (id\: %s - nom %s) ne contient pas la colonne MOVIES_EILayer\\cellset\\depthend renseignée, ce qui n'est pas autorisé. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm