branch feature/8180 updated (ce6f852 -> 59af2e0)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git from ce6f852 Add translation new 3a36842 Create mooring import service new 59af2e0 Introduce entityId in importLog (not working in UI) The 2 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 59af2e00db8da4026e70caee758118dac54e39cd Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Tue Jun 21 16:23:06 2016 +0200 Introduce entityId in importLog (not working in UI) commit 3a36842921147bdd918f043fbf4a6fa8e1308310 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Fri Jun 17 16:33:48 2016 +0200 Create mooring import service Summary of changes: .../Ports.java => DataAccousticProvider.java} | 28 +++--- .../fr/ifremer/echobase/entities/ImportLogs.java | 4 +- .../fr/ifremer/echobase/entities/ImportType.java | 20 +++- ...WorkingDbMigrationCallBackForVersion3_906.java} | 16 +-- .../i18n/echobase-domain_en_GB.properties | 2 + .../i18n/echobase-domain_fr_FR.properties | 2 + .../h2/3.906-0-update-importLog-entityId.sql | 1 + .../pg/3.906-0-update-importLog-entityId.sql | 1 + echobase-domain/src/main/xmi/echobase.properties | 2 +- echobase-domain/src/main/xmi/echobase.zargo | Bin 98231 -> 98213 bytes .../echobase/services/csv/EchoBaseCsvUtil.java | 10 ++ .../services/service/UserDbPersistenceService.java | 14 ++- ...eption.java => DuplicatedMooringException.java} | 8 +- .../service/importdata/ImportDataService.java | 15 ++- .../actions/ImportDataActionSupport.java | 3 + ... => MooringCommonsImportDataActionSupport.java} | 11 ++- .../actions/MooringCommonsMooringImportAction.java | 109 +++++++++++++++++++++ .../actions/VoyageCommonsVoyageImportAction.java | 2 +- .../MooringAcousticsImportConfiguration.java | 14 +-- ...java => MooringCommonsImportConfiguration.java} | 31 +++--- ... => MooringImportDataConfigurationSupport.java} | 20 ++-- .../contexts/ImportDataContextSupport.java | 10 ++ .../MooringAcousticsImportDataContext.java | 2 +- ...t.java => MooringCommonsImportDataContext.java} | 13 ++- ...t.java => MooringImportDataContextSupport.java} | 24 +++-- .../contexts/VoyageImportDataContextSupport.java | 2 +- .../MooringCommonsMooringImportExportModel.java | 93 ++++++++++++++++++ .../strategy/AbstractImportDbStrategy.java | 37 +++---- .../importdb/strategy/FreeImportDbStrategy.java | 22 ++++- .../strategy/ReferentialImportDbStrategy.java | 3 +- .../service/removedata/RemoveDataService.java | 42 ++++---- .../strategy/AbstractRemoveDataStrategy.java | 20 ++-- .../strategy/AcousticRemoveDataStrategy.java | 13 ++- .../strategy/CatchesRemoveDataStrategy.java | 7 +- .../strategy/CommonAllRemoveDataStrategy.java | 10 +- .../strategy/CommonTransectRemoveDataStrategy.java | 13 ++- .../strategy/CommonTransitRemoveDataStrategy.java | 14 ++- .../strategy/CommonVoyageRemoveDataStrategy.java | 11 ++- .../strategy/LegacyVoyageRemoveDataStrategy.java | 10 +- .../strategy/OperationRemoveDataStrategy.java | 7 +- .../strategy/ResultEsduRemoveDataStrategy.java | 7 +- .../strategy/ResultMapFishRemoveDataStrategy.java | 8 +- .../strategy/ResultMapOtherRemoveDataStrategy.java | 8 +- .../strategy/ResultRegionRemoveDataStrategy.java | 8 +- .../strategy/ResultVoyageRemoveDataStrategy.java | 13 ++- .../i18n/echobase-services_en_GB.properties | 2 + .../i18n/echobase-services_fr_FR.properties | 2 + .../removedata/AbstractRemoveDataServiceTest.java | 2 +- ...sticImport.java => ConfigureMooringImport.java} | 39 +++++--- .../ui/actions/importData/ImportMooringMode.java | 5 +- .../ui/actions/importData/SelectImportType.java | 2 +- .../resources/i18n/echobase-ui_en_GB.properties | 1 + .../resources/i18n/echobase-ui_fr_FR.properties | 1 + ...atchesImport.jsp => configureMooringImport.jsp} | 32 ++---- 54 files changed, 558 insertions(+), 238 deletions(-) copy echobase-domain/src/main/java/fr/ifremer/echobase/entities/{references/Ports.java => DataAccousticProvider.java} (70%) copy echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/{WorkingDbMigrationCallBackForVersion3_905.java => WorkingDbMigrationCallBackForVersion3_906.java} (62%) create mode 100644 echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql create mode 100644 echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/{DuplicatedVoyageException.java => DuplicatedMooringException.java} (77%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/{MooringAcousticsImportDataActionSupport.java => MooringCommonsImportDataActionSupport.java} (73%) create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/{VoyageImportDataConfigurationSupport.java => MooringCommonsImportConfiguration.java} (55%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/{VoyageImportDataConfigurationSupport.java => MooringImportDataConfigurationSupport.java} (67%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/{VoyageCommonsImportDataContext.java => MooringCommonsImportDataContext.java} (72%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/{MooringAcousticsImportDataContext.java => MooringImportDataContextSupport.java} (64%) create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java copy echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/{LaunchMooringAcousticImport.java => ConfigureMooringImport.java} (52%) copy echobase-ui/src/main/webapp/WEB-INF/jsp/importData/{configureCatchesImport.jsp => configureMooringImport.jsp} (65%) -- 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 feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 3a36842921147bdd918f043fbf4a6fa8e1308310 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Fri Jun 17 16:33:48 2016 +0200 Create mooring import service --- .../fr/ifremer/echobase/entities/ImportType.java | 12 ++- .../i18n/echobase-domain_en_GB.properties | 2 + .../i18n/echobase-domain_fr_FR.properties | 2 + .../echobase/services/csv/EchoBaseCsvUtil.java | 10 ++ .../services/service/UserDbPersistenceService.java | 6 ++ .../importdata/DuplicatedMooringException.java | 37 +++---- .../service/importdata/ImportDataService.java | 13 +++ .../MooringCommonsImportDataActionSupport.java | 35 +++---- .../actions/MooringCommonsMooringImportAction.java | 108 +++++++++++++++++++++ .../MooringAcousticsImportConfiguration.java | 2 +- .../MooringCommonsImportConfiguration.java | 39 ++++---- .../contexts/ImportDataContextSupport.java | 10 ++ .../contexts/MooringCommonsImportDataContext.java | 41 ++++++++ .../MooringCommonsMooringImportExportModel.java | 93 ++++++++++++++++++ .../service/removedata/RemoveDataService.java | 8 +- .../i18n/echobase-services_en_GB.properties | 2 + .../i18n/echobase-services_fr_FR.properties | 2 + .../actions/importData/ConfigureMooringImport.java | 62 ++++++++++++ .../ui/actions/importData/ImportMooringMode.java | 5 +- .../ui/actions/importData/SelectImportType.java | 2 +- .../resources/i18n/echobase-ui_en_GB.properties | 1 + .../resources/i18n/echobase-ui_fr_FR.properties | 1 + .../jsp/importData/configureMooringImport.jsp | 60 ++++++++++++ 23 files changed, 478 insertions(+), 75 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java index c341564..03c6063 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java @@ -65,6 +65,10 @@ public enum ImportType implements I18nAble { ACOUSTIC(n("echobase.common.importType.acoustic"), n("echobase.common.importType.acoustic.short")), + /** Import accoustic data (Cells ESDU and Elementary). */ + MOORING_ACOUSTIC(n("echobase.common.importType.acoustic"), + n("echobase.common.importType.acoustic.short")), + /** Import results at voyage level. */ RESULT_VOYAGE(n("echobase.common.importType.resultsVoyage"), n("echobase.common.importType.resultsVoyage.short")), @@ -79,12 +83,16 @@ public enum ImportType implements I18nAble { /** Import cells Map Fish. */ RESULT_MAP_FISH(n("echobase.common.importType.resultsMapFish"), - n("echobase.common.importType.resultsMapFish.short")), + n("echobase.common.importType.resultsMapFish.short")), /** Import cells Map Other. */ RESULT_MAP_OTHER(n("echobase.common.importType.resultsMapOther"), - n("echobase.common.importType.resultsMapOther.short")); + n("echobase.common.importType.resultsMapOther.short")), + /** Import mooring data. */ + MOORING(n("echobase.common.importType.mooring"), + n("echobase.common.importType.mooring.short")); + /** * All common import types. * diff --git a/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties b/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties index 0c80451..1529209 100644 --- a/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties +++ b/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties @@ -12,6 +12,8 @@ echobase.common.importType.commonDataTransit=Transits import echobase.common.importType.commonDataTransit.short=Transit echobase.common.importType.commonDataVoyage=Voyage import echobase.common.importType.commonDataVoyage.short=Voyage +echobase.common.importType.mooring= +echobase.common.importType.mooring.short= echobase.common.importType.operation=Operations data import echobase.common.importType.operation.short=Operation echobase.common.importType.resultsEsdu=Import the “ESDU” cells results diff --git a/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties b/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties index 6d0debd..6933fa1 100644 --- a/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties +++ b/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties @@ -12,6 +12,8 @@ echobase.common.importType.commonDataTransit=Import Transits echobase.common.importType.commonDataTransit.short=Transits echobase.common.importType.commonDataVoyage=Import Voyage echobase.common.importType.commonDataVoyage.short=Voyage +echobase.common.importType.mooring= +echobase.common.importType.mooring.short= echobase.common.importType.operation=Import des opérations echobase.common.importType.operation.short=Opérations echobase.common.importType.resultsEsdu=Import des résultats des cellules de type "ESDU" diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EchoBaseCsvUtil.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EchoBaseCsvUtil.java index a4a5792..c6fdb54 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EchoBaseCsvUtil.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EchoBaseCsvUtil.java @@ -34,6 +34,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; +import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.entities.references.Port; import fr.ifremer.echobase.entities.references.SampleDataType; @@ -245,6 +246,15 @@ public class EchoBaseCsvUtil extends TopiaCsvCommons { } ); + public static final ValueFormatter<Mission> MISSION_FORMATTER = newValueFormatterByFunction( + new Function<Mission, String>() { + @Override + public String apply(Mission input) { + return input.getName(); + } + } + ); + public static <E> ValueFormatter<E> newValueFormatterByFunction(Function<E, String> function) { return new ValueFormatterByFunction<>(function); } 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 3dc2c43..0a09691 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 @@ -1056,6 +1056,12 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { .exists(); } + public boolean containsMooringByCode(String mooringCode) { + return persistenceContext.getMooringDao() + .forCodeEquals(mooringCode) + .exists(); + } + //------------------------------------------------------------------------// //--- Transversal --------------------------------------------------------// //------------------------------------------------------------------------// diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedMooringException.java similarity index 50% copy from echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedMooringException.java index dbd772e..da0dded 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedMooringException.java @@ -1,8 +1,10 @@ +package fr.ifremer.echobase.services.service.importdata; + /* * #%L - * EchoBase :: UI + * EchoBase :: Services * %% - * Copyright (C) 2011 Ifremer, Codelutin + * Copyright (C) 2011 - 2015 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -18,35 +20,24 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ -package fr.ifremer.echobase.ui.actions.importData; -import fr.ifremer.echobase.I18nAble; -import fr.ifremer.echobase.entities.ImportType; +import org.nuiton.csv.ImportRuntimeException; + +import java.util.Locale; -import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.l; /** - * To define the mode of import data for mooring (says files to be imported). + * Created on 5/09/16. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.3 + * @since 4.0 */ -public enum ImportMooringMode implements I18nAble { - - /** Import accoustic data (Cells ESDU and Elementary). */ - MooringAcoustic(ImportType.ACOUSTIC.getI18nKey()), +public class DuplicatedMooringException extends ImportRuntimeException { - /** Import results. */ - MooringResults(n("echobase.common.importType.results")); - - private final String i18nKey; - - ImportMooringMode(String i18nKey) { - this.i18nKey = i18nKey; - } + private static final long serialVersionUID = 1L; - @Override - public String getI18nKey() { - return i18nKey; + public DuplicatedMooringException(Locale locale, int rowNumber, String voyageName) { + super(l(locale, "echobase.importError.duplicate.mooring", rowNumber, voyageName)); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java index fa56373..ecadd50 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java @@ -31,6 +31,7 @@ import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.actions.ImportDataActionSupport; import fr.ifremer.echobase.services.service.importdata.actions.MooringAcousticsImportAction; +import fr.ifremer.echobase.services.service.importdata.actions.MooringCommonsMooringImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageAcousticsImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageCatchesBiometrySampleImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageCatchesSubSampleImportAction; @@ -55,6 +56,7 @@ import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsVoya import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsVoyageLengthWeightKeyImportAction; import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; import fr.ifremer.echobase.services.service.importdata.configurations.MooringAcousticsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageAcousticsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCatchesImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCommonsImportConfiguration; @@ -62,6 +64,7 @@ import fr.ifremer.echobase.services.service.importdata.configurations.VoyageOper import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; import fr.ifremer.echobase.services.service.importdata.contexts.MooringAcousticsImportDataContext; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageAcousticsImportDataContext; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCatchesImportDataContext; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCommonsImportDataContext; @@ -181,6 +184,12 @@ public class ImportDataService extends EchoBaseServiceSupport { return doImport(importDataContext, importActions); } + + public ImportDataResult<MooringCommonsImportConfiguration> doImportMooring(MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { + MooringCommonsImportDataContext importDataContext = newMooringCommonsImportContext(configuration, user); + Set<MooringCommonsMooringImportAction> importActions = Collections.singleton(new MooringCommonsMooringImportAction(importDataContext)); + return doImport(importDataContext, importActions); + } public ImportDataResult<MooringAcousticsImportConfiguration> doImportMooringAcoustics(MooringAcousticsImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -303,6 +312,10 @@ public class ImportDataService extends EchoBaseServiceSupport { return new VoyageAcousticsImportDataContext(persistenceService, getLocale(), getCsvSeparator(), configuration, user, newDate()); } + private MooringCommonsImportDataContext newMooringCommonsImportContext(MooringCommonsImportConfiguration configuration, EchoBaseUser user) { + return new MooringCommonsImportDataContext(persistenceService, getLocale(), getCsvSeparator(), configuration, user, newDate()); + } + private MooringAcousticsImportDataContext newMooringAcousticsImportContext(MooringAcousticsImportConfiguration configuration, EchoBaseUser user) { return new MooringAcousticsImportDataContext(persistenceService, getLocale(), getCsvSeparator(), configuration, user, newDate()); } diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java similarity index 50% copy from echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java index dbd772e..65ef1ac 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java @@ -1,8 +1,10 @@ +package fr.ifremer.echobase.services.service.importdata.actions; + /* * #%L - * EchoBase :: UI + * EchoBase :: Services * %% - * Copyright (C) 2011 Ifremer, Codelutin + * Copyright (C) 2011 - 2016 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -18,35 +20,20 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ -package fr.ifremer.echobase.ui.actions.importData; - -import fr.ifremer.echobase.I18nAble; -import fr.ifremer.echobase.entities.ImportType; -import static org.nuiton.i18n.I18n.n; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; /** - * To define the mode of import data for mooring (says files to be imported). + * Created on 30/03/16. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.3 */ -public enum ImportMooringMode implements I18nAble { - - /** Import accoustic data (Cells ESDU and Elementary). */ - MooringAcoustic(ImportType.ACOUSTIC.getI18nKey()), +public abstract class MooringCommonsImportDataActionSupport<E> extends ImportDataActionSupport<MooringCommonsImportConfiguration, MooringCommonsImportDataContext, E> { - /** Import results. */ - MooringResults(n("echobase.common.importType.results")); - - private final String i18nKey; - - ImportMooringMode(String i18nKey) { - this.i18nKey = i18nKey; + protected MooringCommonsImportDataActionSupport(MooringCommonsImportDataContext importDataContext, InputFile inputFile) { + super(importDataContext, inputFile); } - @Override - public String getI18nKey() { - return i18nKey; - } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java new file mode 100644 index 0000000..3aea32e --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java @@ -0,0 +1,108 @@ +package fr.ifremer.echobase.services.service.importdata.actions; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2016 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.DuplicatedMooringException; +import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; +import fr.ifremer.echobase.services.service.importdata.csv.MooringCommonsMooringImportExportModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; + +import java.util.Locale; + +/** + * Created on 25/03/16. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringCommonsMooringImportAction extends MooringCommonsImportDataActionSupport<Mooring> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(MooringCommonsMooringImportAction.class); + + public MooringCommonsMooringImportAction(MooringCommonsImportDataContext importDataContext) { + super(importDataContext, importDataContext.getConfiguration().getMooringFile()); + } + + @Override + protected MooringCommonsMooringImportExportModel createCsvImportModel(MooringCommonsImportDataContext importDataContext) { + return MooringCommonsMooringImportExportModel.forImport(importDataContext); + } + + @Override + protected MooringCommonsMooringImportExportModel createCsvExportModel(MooringCommonsImportDataContext importDataContext) { + return MooringCommonsMooringImportExportModel.forExport(importDataContext); + } + + @Override + public void performImport(MooringCommonsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { + + + if (log.isInfoEnabled()) { + log.info("Starts import of mooring from file " + inputFile.getFileName()); + } + + Locale locale = getLocale(); + + try (Import<Mooring> importer = open()) { + + incrementsProgress(); + + int rowNumber = 0; + + for (Mooring mooring : importer) { + + doFlushTransaction(++rowNumber); + + if (persistenceService.containsMooringByCode(mooring.getCode())) { + throw new DuplicatedMooringException(locale, rowNumber, mooring.getCode()); + } + + Mooring createdMooring = persistenceService.createMooring(mooring); + addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); + + addProcessedRow(result, createdMooring); + } + } + } + + @Override + protected void computeImportedExport(MooringCommonsImportDataContext importDataContext, ImportDataFileResult result) { + + for (Mooring mooring : getImportedEntities(Mooring.class, result)) { + + String mooringId = mooring.getTopiaId(); + if (log.isInfoEnabled()) { + log.info("Adding mooring: " + mooringId + " to imported export."); + } + + addImportedRow(result, mooring); + } + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java index 6033166..75707d3 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java @@ -78,7 +78,7 @@ public class MooringAcousticsImportConfiguration extends ImportDataConfiguration public MooringAcousticsImportConfiguration(Locale locale) { moviesFile = InputFile.newFile(l(locale, "echobase.common.moviesFile")); - importType = ImportType.ACOUSTIC; + importType = ImportType.MOORING_ACOUSTIC; } public String getMooringId() { diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java similarity index 50% copy from echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java index dbd772e..87907db 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java @@ -1,8 +1,8 @@ /* * #%L - * EchoBase :: UI + * EchoBase :: Services * %% - * Copyright (C) 2011 Ifremer, Codelutin + * Copyright (C) 2011 - 2012 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -18,35 +18,36 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ -package fr.ifremer.echobase.ui.actions.importData; +package fr.ifremer.echobase.services.service.importdata.configurations; -import fr.ifremer.echobase.I18nAble; import fr.ifremer.echobase.entities.ImportType; - -import static org.nuiton.i18n.I18n.n; +import fr.ifremer.echobase.io.InputFile; +import java.util.Locale; +import static org.nuiton.i18n.I18n.l; /** - * To define the mode of import data for mooring (says files to be imported). + * Configuration mooring import. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.3 + * @since 0.4 */ -public enum ImportMooringMode implements I18nAble { - - /** Import accoustic data (Cells ESDU and Elementary). */ - MooringAcoustic(ImportType.ACOUSTIC.getI18nKey()), +public class MooringCommonsImportConfiguration extends ImportDataConfigurationSupport { - /** Import results. */ - MooringResults(n("echobase.common.importType.results")); + private static final long serialVersionUID = 1L; + + protected final InputFile mooringFile; - private final String i18nKey; + public MooringCommonsImportConfiguration(Locale locale) { + mooringFile = InputFile.newFile(l(locale, "echobase.common.mooringFile")); + importType = ImportType.MOORING; + } - ImportMooringMode(String i18nKey) { - this.i18nKey = i18nKey; + public InputFile getMooringFile() { + return mooringFile; } @Override - public String getI18nKey() { - return i18nKey; + public InputFile[] getInputFiles() { + return new InputFile[]{mooringFile}; } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/ImportDataContextSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/ImportDataContextSupport.java index a24b12e..64ad8e7 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/ImportDataContextSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/ImportDataContextSupport.java @@ -39,6 +39,8 @@ import fr.ifremer.echobase.entities.references.DepthStratums; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.GearMetadatas; +import fr.ifremer.echobase.entities.references.Mission; +import fr.ifremer.echobase.entities.references.Missions; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.entities.references.OperationMetadatas; import fr.ifremer.echobase.entities.references.Port; @@ -98,6 +100,7 @@ public abstract class ImportDataContextSupport<C extends ImportDataConfiguration private Map<String, CellType> regionCellTypesById; private Map<String, AgeCategory> ageCategoriesByName; private Map<String, Port> portsByCode; + private Map<String, Mission> missionByName; private CellType esduCellType; private CellType elementaryCellType; @@ -247,6 +250,13 @@ public abstract class ImportDataContextSupport<C extends ImportDataConfiguration } return portsByCode; } + + public Map<String, Mission> getMissionByName() { + if (missionByName == null) { + missionByName = persistenceService.getEntitiesMap(Mission.class, Missions.MISSION_NAME); + } + return missionByName; + } public final Map<String, DataMetadata> getDataMetadatasByName() { if (dataMetadatasByName == null) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java new file mode 100644 index 0000000..a63cee1 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java @@ -0,0 +1,41 @@ +package fr.ifremer.echobase.services.service.importdata.contexts; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2016 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; + +import java.util.Date; +import java.util.Locale; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 0.4 + */ +public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { + + public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { + super(persistenceService, locale, csvSeparator, configuration, user, importDate); + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java new file mode 100644 index 0000000..ea148d3 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java @@ -0,0 +1,93 @@ +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.services.service.importdata.csv; + +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.entities.data.MooringImpl; +import fr.ifremer.echobase.entities.references.Mission; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; + +/** + * Model to import Mooring. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 0.4 + */ +public class MooringCommonsMooringImportExportModel extends EchoBaseImportExportModelSupport<Mooring> { + + private MooringCommonsMooringImportExportModel(char separator) { + super(separator); + } + + public static MooringCommonsMooringImportExportModel forImport(MooringCommonsImportDataContext importDataContext) { + MooringCommonsMooringImportExportModel model = new MooringCommonsMooringImportExportModel(importDataContext.getCsvSeparator()); + + model.newForeignKeyColumn(Mooring.PROPERTY_MISSION, Mooring.PROPERTY_MISSION, Mission.class, Mission.PROPERTY_NAME, importDataContext.getMissionByName()); + model.newMandatoryColumn(Mooring.PROPERTY_CODE); + model.newMandatoryColumn(Mooring.PROPERTY_DESCRIPTION); + model.newMandatoryColumn(Mooring.PROPERTY_DEPTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_NORTH_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_EAST_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_SOUTH_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_UP_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_DOWN_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Mooring.PROPERTY_UNITS); + model.newMandatoryColumn(Mooring.PROPERTY_ZUNITS); + model.newMandatoryColumn(Mooring.PROPERTY_PROJECTION); + model.newMandatoryColumn(Mooring.PROPERTY_DEPLOYMENT_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + model.newMandatoryColumn(Mooring.PROPERTY_RETRIEVAL_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + model.newMandatoryColumn(Mooring.PROPERTY_SITE_NAME); + model.newMandatoryColumn(Mooring.PROPERTY_OPERATOR); + model.newMandatoryColumn(Mooring.PROPERTY_COMMENTS); + + return model; + } + + public static MooringCommonsMooringImportExportModel forExport(MooringCommonsImportDataContext importDataContext) { + MooringCommonsMooringImportExportModel model = new MooringCommonsMooringImportExportModel(importDataContext.getCsvSeparator()); + + model.newColumnForExport(Mooring.PROPERTY_MISSION, Mooring.PROPERTY_MISSION, EchoBaseCsvUtil.MISSION_FORMATTER); + model.newColumnForExport(Mooring.PROPERTY_CODE); + model.newColumnForExport(Mooring.PROPERTY_DESCRIPTION); + model.newColumnForExport(Mooring.PROPERTY_DEPTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_NORTH_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_EAST_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_SOUTH_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_UP_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_DOWN_LIMIT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newColumnForExport(Mooring.PROPERTY_UNITS); + model.newColumnForExport(Mooring.PROPERTY_ZUNITS); + model.newColumnForExport(Mooring.PROPERTY_PROJECTION); + model.newColumnForExport(Mooring.PROPERTY_DEPLOYMENT_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + model.newColumnForExport(Mooring.PROPERTY_RETRIEVAL_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + model.newColumnForExport(Mooring.PROPERTY_SITE_NAME); + model.newColumnForExport(Mooring.PROPERTY_OPERATOR); + model.newColumnForExport(Mooring.PROPERTY_COMMENTS); + + return model; + } + + @Override + public Mooring newEmptyInstance() { + return new MooringImpl(); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java index 64dbf15..fbcd454 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java @@ -124,8 +124,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { // and compute nb steps int nbSteps = 0; - Map<ImportLog, ImportContext> toTreat = - Maps.newTreeMap(IMPORT_LOG_COMPARATOR); + Map<ImportLog, ImportContext> toTreat = Maps.newTreeMap(IMPORT_LOG_COMPARATOR); for (String id : model.getImportLogIds()) { Optional<ImportLog> optionalImportLog = persistenceService.getOptionalImportLog(id); @@ -283,6 +282,8 @@ public class RemoveDataService extends EchoBaseServiceSupport { strategies.put(ImportType.RESULT_MAP_FISH, ResultMapFishRemoveDataStrategy.class); strategies.put(ImportType.RESULT_MAP_OTHER, ResultMapOtherRemoveDataStrategy.class); strategies.put(ImportType.RESULT_REGION, ResultRegionRemoveDataStrategy.class); + strategies.put(ImportType.MOORING, LegacyVoyageRemoveDataStrategy.class); + strategies.put(ImportType.MOORING_ACOUSTIC, AcousticRemoveDataStrategy.class); Preconditions.checkState( ImportType.values().length == strategies.size(), "It miss some remove data strategies..."); @@ -294,8 +295,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { List<ImportLog> obsoleteImportLogs, EchoBaseUser user) { - Decorator<ImportLog> decorator = decoratorService. - getDecorator(ImportLog.class, null); + Decorator<ImportLog> decorator = decoratorService.getDecorator(ImportLog.class, null); StringBuilder buffer = new StringBuilder(); buffer.append("Suppression import "); 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 ada9863..3340ecc 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 @@ -21,6 +21,7 @@ echobase.common.importDbMode.free=Free import echobase.common.importDbMode.referential=Referential import echobase.common.lengthAgeKeyFile=Size-age equations file echobase.common.lengthWeightKeyFile=Size-weight equations file +echobase.common.mooringFile=Mooring file echobase.common.moviesFile=Acoustic data file echobase.common.operationFile=Operation data file echobase.common.operationMetadataFile=Operation metadata file @@ -37,6 +38,7 @@ echobase.importError.duplicate.elementaryCell=Line %s - Elementary cell named « echobase.importError.duplicate.esduCell=Line %s - ESDU cell named «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.gearMetataValue=Line %s - A gear meta data (type «%s») value on engin «%s» for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.mapCell=Line %s - Map cell named «%s» on voyage «%s» already exists in database. +echobase.importError.duplicate.mooring= echobase.importError.duplicate.operation=Line %s - An operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operationMetataValue=Line %s - An operation meta data (type «%s») value for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.regionCell=Line %s - Region cell named «%s» (of type «%s») on voyage «%s» already exists in database. 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 2a579b3..7dae792 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 @@ -21,6 +21,7 @@ echobase.common.importDbMode.free=Import libre echobase.common.importDbMode.referential=Import Référentiel echobase.common.lengthAgeKeyFile=Fichier des relations taille-âge echobase.common.lengthWeightKeyFile=Fichier des relations taille-poids +echobase.common.mooringFile=Fichier des données bouées echobase.common.moviesFile=Fichier des données acoustiques echobase.common.operationFile=Fichier des données opérations echobase.common.operationMetadataFile=Fichier des méta-données d'opérations @@ -37,6 +38,7 @@ echobase.importError.duplicate.elementaryCell=Ligne %s - La cellule élémentair echobase.importError.duplicate.esduCell=Ligne %s - La cellule ESDU d'identifiant «%s» sur la marée nommée «%s» existe déjà en base. echobase.importError.duplicate.gearMetataValue=Ligne %s - La mise en œuvre (type %s) de l'engin «%s» (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. echobase.importError.duplicate.mapCell=Ligne %s - La cellule de type Carte d'identifiant «%s» sur la marée nommée «%s» existe déjà en base. +echobase.importError.duplicate.mooring= echobase.importError.duplicate.operation=Ligne %s - L'opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.operationMetataValue=Ligne %s - La donnée (type %s) (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. echobase.importError.duplicate.regionCell=Ligne %s - La cellule de type Région d'identifiant «%s» et de type «%s» sur la marée nommée «%s» existe déjà en base. diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringImport.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringImport.java new file mode 100644 index 0000000..b2d91e1 --- /dev/null +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringImport.java @@ -0,0 +1,62 @@ +/* + * #%L + * EchoBase :: UI + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.ui.actions.importData; + +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; + +import java.io.File; + +/** + * Configure a data import for mooring. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 0.4 + */ +public class ConfigureMooringImport extends AbstractConfigureImport<MooringCommonsImportConfiguration> { + + private static final long serialVersionUID = 1L; + + + public ConfigureMooringImport() { + super(MooringCommonsImportConfiguration.class); + } + + @Override + protected MooringCommonsImportConfiguration createModel() { + return new MooringCommonsImportConfiguration(getLocale()); + } + + @Override + protected void prepareInputAction(MooringCommonsImportConfiguration model) { + } + + public void setMooringFile(File file) { + getModel().getMooringFile().setFile(file); + } + + public void setMooringFileContentType(String contentType) { + getModel().getMooringFile().setContentType(contentType); + } + + public void setMooringFileFileName(String fileName) { + getModel().getMooringFile().setFileName(fileName); + } +} diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java index dbd772e..8ff5506 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ImportMooringMode.java @@ -29,10 +29,13 @@ import static org.nuiton.i18n.I18n.n; * To define the mode of import data for mooring (says files to be imported). * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.3 + * @since 0.4 */ public enum ImportMooringMode implements I18nAble { + /** Import mooring **/ + Mooring(n("echobase.common.importType.mooring")), + /** Import accoustic data (Cells ESDU and Elementary). */ MooringAcoustic(ImportType.ACOUSTIC.getI18nKey()), diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java index f88d748..4e94e0e 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java @@ -76,7 +76,7 @@ public class SelectImportType extends EchoBaseActionSupport { voyageMode = ImportVoyageMode.Common; } if (mooringMode == null) { - mooringMode = ImportMooringMode.MooringAcoustic; + mooringMode = ImportMooringMode.Mooring; } return INPUT; } diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties index ff9d18a..209c3e8 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties @@ -138,6 +138,7 @@ echobase.common.modificationDate=Last modified date echobase.common.modificationText=Last modification echobase.common.modificationUser=User echobase.common.mooring=Mooring +echobase.common.mooringFile= echobase.common.moviesFile= echobase.common.name=Name echobase.common.northLimit=North limit diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties index 21aa861..9a22b88 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties @@ -138,6 +138,7 @@ echobase.common.modificationDate=Date de modification echobase.common.modificationText=Modification echobase.common.modificationUser=Utilisateur echobase.common.mooring=Bouée +echobase.common.mooringFile= echobase.common.moviesFile= echobase.common.name=Nom echobase.common.northLimit=Limite Nord diff --git a/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureMooringImport.jsp b/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureMooringImport.jsp new file mode 100644 index 0000000..63e6e4e --- /dev/null +++ b/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureMooringImport.jsp @@ -0,0 +1,60 @@ +<%-- + #%L + EchoBase :: UI + %% + Copyright (C) 2011 Ifremer, Codelutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ taglib prefix="sj" uri="/struts-jquery-tags" %> +<title> + Configuration <s:text name="echobase.common.importType.mooring"/> +</title> + +<script type="text/javascript" + src="<s:url value='/js/gridHelper.js' />"></script> + +<script type="text/javascript"> + + jQuery(document).ready(function () { + $.addCheckFileSize(<s:property value="uploadFileMaxLength"/>); + }); +</script> + +<s:form namespace="/importData" method="POST" enctype="multipart/form-data"> + + <fieldset> + <legend> + <s:text name="echobase.legend.importData.configure"/> + </legend> + + <div class="cleanBoth help"> + <s:a href="%{getDocumentation('importData.html', null)}" target="doc"> + <s:text name="echobase.action.show.import.documentation"/> + </s:a> + </div> + <br/> + + <s:file key="moviesFile" requiredLabel="true" + label='%{getText("echobase.common.mooringFile")}'/> + + </fieldset> + <br/> + <s:submit action="configureMooring-execute" key='echobase.action.import'/> + +</s:form> + -- 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 feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 59af2e00db8da4026e70caee758118dac54e39cd Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Tue Jun 21 16:23:06 2016 +0200 Introduce entityId in importLog (not working in UI) --- ...{ImportLogs.java => DataAccousticProvider.java} | 32 ++++++++---------- .../fr/ifremer/echobase/entities/ImportLogs.java | 4 +-- .../fr/ifremer/echobase/entities/ImportType.java | 20 +++++++---- .../WorkingDbMigrationCallBackForVersion3_906.java | 33 ++++++++++++++++++ .../h2/3.906-0-update-importLog-entityId.sql | 1 + .../pg/3.906-0-update-importLog-entityId.sql | 1 + echobase-domain/src/main/xmi/echobase.properties | 2 +- echobase-domain/src/main/xmi/echobase.zargo | Bin 98231 -> 98213 bytes .../services/service/UserDbPersistenceService.java | 8 +++-- .../service/importdata/ImportDataService.java | 2 +- .../actions/ImportDataActionSupport.java | 3 ++ .../actions/MooringCommonsMooringImportAction.java | 1 + .../actions/VoyageCommonsVoyageImportAction.java | 2 +- .../MooringAcousticsImportConfiguration.java | 12 +------ .../MooringCommonsImportConfiguration.java | 2 +- ... => MooringImportDataConfigurationSupport.java} | 27 +++++---------- .../MooringAcousticsImportDataContext.java | 2 +- .../contexts/MooringCommonsImportDataContext.java | 2 +- ...t.java => MooringImportDataContextSupport.java} | 16 ++++++--- .../contexts/VoyageImportDataContextSupport.java | 2 +- .../strategy/AbstractImportDbStrategy.java | 37 +++++++++++---------- .../importdb/strategy/FreeImportDbStrategy.java | 22 +++++++++--- .../strategy/ReferentialImportDbStrategy.java | 3 +- .../service/removedata/RemoveDataService.java | 34 +++++++++++-------- .../strategy/AbstractRemoveDataStrategy.java | 20 ++++++----- .../strategy/AcousticRemoveDataStrategy.java | 13 +++++--- .../strategy/CatchesRemoveDataStrategy.java | 7 ++-- .../strategy/CommonAllRemoveDataStrategy.java | 10 +++--- .../strategy/CommonTransectRemoveDataStrategy.java | 13 +++++--- .../strategy/CommonTransitRemoveDataStrategy.java | 14 +++++--- .../strategy/CommonVoyageRemoveDataStrategy.java | 11 +++--- .../strategy/LegacyVoyageRemoveDataStrategy.java | 10 +++--- .../strategy/OperationRemoveDataStrategy.java | 7 ++-- .../strategy/ResultEsduRemoveDataStrategy.java | 7 ++-- .../strategy/ResultMapFishRemoveDataStrategy.java | 8 +++-- .../strategy/ResultMapOtherRemoveDataStrategy.java | 8 +++-- .../strategy/ResultRegionRemoveDataStrategy.java | 8 +++-- .../strategy/ResultVoyageRemoveDataStrategy.java | 13 +++++--- .../removedata/AbstractRemoveDataServiceTest.java | 2 +- 39 files changed, 253 insertions(+), 166 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java similarity index 56% copy from echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java copy to echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java index a1515ba..60e298e 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java @@ -1,5 +1,7 @@ package fr.ifremer.echobase.entities; +import org.nuiton.topia.persistence.TopiaEntity; + /* * #%L * EchoBase :: Domain @@ -21,27 +23,19 @@ package fr.ifremer.echobase.entities; * #L% */ -import com.google.common.base.Function; - /** - * Created on 1/21/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 2.9 + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 */ -public class ImportLogs { +public class DataAccousticProvider<E extends TopiaEntity> { - public static final Function<ImportLog, String> IMPORT_LOG_VOYAGE_ID = new Function<ImportLog, String>() { - @Override - public String apply(ImportLog input) { - return input.getVoyageId(); - } - }; + protected E entity; + + public DataAccousticProvider(E entity) { + this.entity = entity; + } - public static final Function<ImportLog, ImportType> IMPORT_LOG_IMPORT_TYPE = new Function<ImportLog, ImportType>() { - @Override - public ImportType apply(ImportLog input) { - return input.getImportType(); - } - }; + public E getEntity() { + return entity; + } } diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java index a1515ba..9d3b0aa 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java @@ -31,10 +31,10 @@ import com.google.common.base.Function; */ public class ImportLogs { - public static final Function<ImportLog, String> IMPORT_LOG_VOYAGE_ID = new Function<ImportLog, String>() { + public static final Function<ImportLog, String> IMPORT_LOG_ENTITY_ID = new Function<ImportLog, String>() { @Override public String apply(ImportLog input) { - return input.getVoyageId(); + return input.getEntityId(); } }; diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java index 03c6063..dbbbd07 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java @@ -65,10 +65,6 @@ public enum ImportType implements I18nAble { ACOUSTIC(n("echobase.common.importType.acoustic"), n("echobase.common.importType.acoustic.short")), - /** Import accoustic data (Cells ESDU and Elementary). */ - MOORING_ACOUSTIC(n("echobase.common.importType.acoustic"), - n("echobase.common.importType.acoustic.short")), - /** Import results at voyage level. */ RESULT_VOYAGE(n("echobase.common.importType.resultsVoyage"), n("echobase.common.importType.resultsVoyage.short")), @@ -88,10 +84,22 @@ public enum ImportType implements I18nAble { /** Import cells Map Other. */ RESULT_MAP_OTHER(n("echobase.common.importType.resultsMapOther"), n("echobase.common.importType.resultsMapOther.short")), - + /** Import mooring data. */ MOORING(n("echobase.common.importType.mooring"), - n("echobase.common.importType.mooring.short")); + n("echobase.common.importType.mooring.short")), + + /** Import accoustic data (Cells ESDU and Elementary). */ + MOORING_ACOUSTIC(n("echobase.common.importType.acoustic"), + n("echobase.common.importType.acoustic.short")), + + /** Import results at voyage level. */ + RESULT_MOORING(n("echobase.common.importType.resultsMooring"), + n("echobase.common.importType.resultsMooring.short")), + + /** Import esdu results by echotype. */ + RESULT_MOORING_ESDU(n("echobase.common.importType.resultsMooringEsdu"), + n("echobase.common.importType.resultsMooringEsdu.short")); /** * All common import types. diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java new file mode 100644 index 0000000..db2bb82 --- /dev/null +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java @@ -0,0 +1,33 @@ +package fr.ifremer.echobase.persistence.migration.workingDb; + +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; +import org.nuiton.version.Version; +import org.nuiton.version.Versions; + +import java.util.List; + +/** + * Created on 26/04/16. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class WorkingDbMigrationCallBackForVersion3_906 extends WorkingDbMigrationCallBackForVersionSupport { + + @Override + public Version getVersion() { + return Versions.valueOf("3.906"); + } + + @Override + protected void prepareMigrationScript(TopiaSqlSupport sqlSupport, + List<String> queries, + boolean showSql, + boolean showProgression) throws TopiaException { + + // update the model structure + addSpecificScript("3.906-0-update-importLog-entityId.sql", queries); + } + +} diff --git a/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql b/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql new file mode 100644 index 0000000..65f7962 --- /dev/null +++ b/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql @@ -0,0 +1 @@ +alter table importlog alter column voyageId rename to entityId; diff --git a/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql b/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql new file mode 100644 index 0000000..a2cdb5d --- /dev/null +++ b/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql @@ -0,0 +1 @@ +alter table importlog rename column voyageId to entityId; diff --git a/echobase-domain/src/main/xmi/echobase.properties b/echobase-domain/src/main/xmi/echobase.properties index 748abc6..1e9d25a 100644 --- a/echobase-domain/src/main/xmi/echobase.properties +++ b/echobase-domain/src/main/xmi/echobase.properties @@ -23,7 +23,7 @@ model.tagValue.notGenerateToString=true model.tagValue.generateOperatorForDAOHelper=true -model.tagValue.version=3.905 +model.tagValue.version=3.906 model.tagValue.generatePropertyChangeSupport=false model.tagValue.generateBooleanGetMethods=false model.tagValue.indexForeignKeys=true diff --git a/echobase-domain/src/main/xmi/echobase.zargo b/echobase-domain/src/main/xmi/echobase.zargo index 0be020a..33aa4f5 100644 Binary files a/echobase-domain/src/main/xmi/echobase.zargo and b/echobase-domain/src/main/xmi/echobase.zargo differ 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 0a09691..aeb556a 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 @@ -373,6 +373,10 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { return persistenceContext.getDataMetadataDao().forNameIn(names).findAll(); } + public TopiaEntity getEntity(String id) { + return persistenceContext.findByTopiaId(id); + } + public CoserIndicators getRegionIndicators(String missionId, List<DataMetadata> dataMetadatas) { if (log.isInfoEnabled()) { @@ -659,9 +663,9 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { } - public boolean isImportLogForVoyageExists(String voyageId, String importLogId) { + public boolean isImportLogFor(String entityId, String importLogId) { ImportLogTopiaDao importLogDao = persistenceContext.getImportLogDao(); - return importLogDao.forVoyageIdEquals(voyageId) + return importLogDao.forEntityIdEquals(entityId) .addNotEquals(ImportLog.PROPERTY_TOPIA_ID, importLogId) .addEquals(ImportLog.PROPERTY_IMPORT_TYPE, ImportType.RESULT_VOYAGE) .exists(); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java index ecadd50..3bd0d86 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java @@ -212,7 +212,7 @@ public class ImportDataService extends EchoBaseServiceSupport { case RESULT_VOYAGE: { // check if there is a such same import on this voyage (with a different id) String importLogId = importDataContext.getImportLog().getTopiaId(); - boolean importExists = persistenceService.isImportLogForVoyageExists(configuration.getVoyageId(), importLogId); + boolean importExists = persistenceService.isImportLogFor(configuration.getVoyageId(), importLogId); if (importExists) { if (log.isWarnEnabled()) { log.warn("there is already a voyage result import for this voyage, won't import."); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java index 3f0514b..5658c02 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java @@ -66,6 +66,9 @@ import static org.nuiton.i18n.I18n.l; * Created on 25/03/16. * * @author Tony Chemit - chemit@codelutin.com + * @param <M> Configuration from client + * @param <C> Database context + * @param <E> Model of the lines in cvs */ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationSupport, C extends ImportDataContextSupport<M>, E> implements Closeable { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java index 3aea32e..3c1320c 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java @@ -86,6 +86,7 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA Mooring createdMooring = persistenceService.createMooring(mooring); addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); + addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); addProcessedRow(result, createdMooring); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java index af03699..76fbb5d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java @@ -125,7 +125,7 @@ public class VoyageCommonsVoyageImportAction extends VoyageCommonsImportDataActi // push back to id of the voyage in configuration for next imports getConfiguration().setVoyageId(newVoyage.getTopiaId()); - importDataContext.getImportLog().setVoyageId(newVoyage.getTopiaId()); + importDataContext.getImportLog().setEntityId(newVoyage.getTopiaId()); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java index 75707d3..2f57da4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java @@ -35,13 +35,11 @@ import static org.nuiton.i18n.I18n.l; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.5 */ -public class MooringAcousticsImportConfiguration extends ImportDataConfigurationSupport { +public class MooringAcousticsImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; /** Movies file to import. */ protected final InputFile moviesFile; - /** Selected mooring id to find where to import datas. */ - protected String mooringId; /** Flag to always add new dataAcquisition when a new instrument is found in movies file. */ protected boolean addDataAcquisition = true; /** Manual transceiverAcquisitionAbsorptionDescription. */ @@ -81,14 +79,6 @@ public class MooringAcousticsImportConfiguration extends ImportDataConfiguration importType = ImportType.MOORING_ACOUSTIC; } - public String getMooringId() { - return mooringId; - } - - public void setMooringId(String mooringId) { - this.mooringId = mooringId; - } - public boolean isAddDataAcquisition() { return addDataAcquisition; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java index 87907db..21792af 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java @@ -31,7 +31,7 @@ import static org.nuiton.i18n.I18n.l; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportConfiguration extends ImportDataConfigurationSupport { +public class MooringCommonsImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java similarity index 59% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java index 87907db..75f0fa4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java @@ -20,34 +20,25 @@ */ package fr.ifremer.echobase.services.service.importdata.configurations; -import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.io.InputFile; -import java.util.Locale; -import static org.nuiton.i18n.I18n.l; - /** - * Configuration mooring import. + * Common import data configuration for mooring. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportConfiguration extends ImportDataConfigurationSupport { +public abstract class MooringImportDataConfigurationSupport extends ImportDataConfigurationSupport { private static final long serialVersionUID = 1L; - - protected final InputFile mooringFile; - public MooringCommonsImportConfiguration(Locale locale) { - mooringFile = InputFile.newFile(l(locale, "echobase.common.mooringFile")); - importType = ImportType.MOORING; - } + /** Selected mooring id where to import datas. */ + protected String mooringId; - public InputFile getMooringFile() { - return mooringFile; + public String getMooringId() { + return mooringId; } - @Override - public InputFile[] getInputFiles() { - return new InputFile[]{mooringFile}; + public void setMooringId(String mooringId) { + this.mooringId = mooringId; } + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java index 19273b2..c5e1295 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java @@ -33,7 +33,7 @@ import java.util.Locale; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.5 */ -public class MooringAcousticsImportDataContext extends ImportDataContextSupport<MooringAcousticsImportConfiguration> { +public class MooringAcousticsImportDataContext extends MooringImportDataContextSupport<MooringAcousticsImportConfiguration> { private Mooring mooring; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java index a63cee1..8dbb9eb 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java @@ -32,7 +32,7 @@ import java.util.Locale; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +public class MooringCommonsImportDataContext extends MooringImportDataContextSupport<MooringCommonsImportConfiguration> { public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { super(persistenceService, locale, csvSeparator, configuration, user, importDate); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java similarity index 65% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java index a63cee1..5b7e825 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java @@ -22,20 +22,28 @@ package fr.ifremer.echobase.services.service.importdata.contexts; */ import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.services.service.UserDbPersistenceService; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringImportDataConfigurationSupport; import java.util.Date; import java.util.Locale; /** + * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +class MooringImportDataContextSupport<C extends MooringImportDataConfigurationSupport> extends ImportDataContextSupport<C> { - public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { + public MooringImportDataContextSupport(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, C configuration, EchoBaseUser user, Date importDate) { super(persistenceService, locale, csvSeparator, configuration, user, importDate); } + @Override + protected final ImportLog createImportLog(Date importDate) { + ImportLog importLog = super.createImportLog(importDate); + importLog.setEntityId(configuration.getMooringId()); + return importLog; + } + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java index b4b5dca..c2c2f92 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java @@ -72,7 +72,7 @@ class VoyageImportDataContextSupport<C extends VoyageImportDataConfigurationSupp @Override protected final ImportLog createImportLog(Date importDate) { ImportLog importLog = super.createImportLog(importDate); - importLog.setVoyageId(configuration.getVoyageId()); + importLog.setEntityId(configuration.getVoyageId()); return importLog; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java index 9674839..31131e1 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java @@ -23,6 +23,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; @@ -51,10 +52,12 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.nuiton.topia.persistence.TopiaEntity; /** * Abstract import db strategy. @@ -137,7 +140,7 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { 1000 ); - Iterable<Voyage> importedVoyages = importTables(strategy, + List<DataAccousticProvider> importedEntities = importTables(strategy, model, zipFile, tables @@ -150,11 +153,9 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { log.info("Import done with user " + user.getEmail()); } - if (importedVoyages != null && - !Iterables.isEmpty(importedVoyages)) { - - createImportLogEntry(user, file, importedVoyages); - + if (importedEntities != null && + !Iterables.isEmpty(importedEntities)) { + createImportLogEntry(user, file, importedEntities); } createLogBookEntry(user, file); @@ -177,28 +178,29 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { protected abstract void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) throws TopiaException; + List<DataAccousticProvider> importedEntities) throws TopiaException; protected abstract void createLogBookEntry(EchoBaseUser user, File file) throws TopiaException; - protected Iterable<Voyage> importTables(ImportStrategy<EchoBaseUserEntityEnum> strategy, + protected List<DataAccousticProvider> importTables(ImportStrategy<EchoBaseUserEntityEnum> strategy, ImportDbConfiguration model, ZipFile zipFile, Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entriestoConsume) throws IOException, TopiaException { boolean commitAfterEachFile = model.isCommitAfterEachFile(); - Iterable<Voyage> result = null; + List<DataAccousticProvider> result = new ArrayList<>(); for (Map.Entry<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entry : entriestoConsume.entrySet()) { TableMeta<EchoBaseUserEntityEnum> entryDef = entry.getKey(); + EchoBaseUserEntityEnum source = entryDef.getSource(); ZipEntry value = entry.getValue(); + CsvImportResult<EchoBaseUserEntityEnum> csvResult = - CsvImportResult.newResult( - entryDef.getSource(), + CsvImportResult.newResult(source, value.getName(), false, model @@ -214,12 +216,13 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { log.info("Will import " + entryDef); } - if (EchoBaseUserEntityEnum.Voyage == entryDef.getSource()) { - result = TopiaCsvImports.importTableAndReturn(reader, - strategy, - entryDef, - csvResult - ); + if (EchoBaseUserEntityEnum.Voyage == source || EchoBaseUserEntityEnum.Mooring == source) { + Iterable<TopiaEntity> importEntities = TopiaCsvImports.importTableAndReturn(reader, strategy, entryDef, csvResult); + for (TopiaEntity importEntity : importEntities) { + DataAccousticProvider dataAccousticProvider = new DataAccousticProvider(importEntity); + result.add(dataAccousticProvider); + } + } else { TopiaCsvImports.importTable(reader, strategy, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java index 1afc7eb..fe64c1d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; @@ -37,8 +38,10 @@ import org.nuiton.topia.persistence.metadata.TableMeta; import javax.inject.Inject; import java.io.File; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; +import org.nuiton.topia.persistence.TopiaEntity; /** * Free import db strategy (can import either referential or/and data). @@ -66,20 +69,29 @@ public class FreeImportDbStrategy extends AbstractImportDbStrategy { @Override protected void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) throws TopiaException { + List<DataAccousticProvider> importedEntities) throws TopiaException { Date date = newDate(); Decorator<Voyage> decorator = decoratorService.getDecorator(Voyage.class, null); - for (Voyage importedVoyage : importedVoyages) { + for (DataAccousticProvider provider : importedEntities) { + TopiaEntity entity = provider.getEntity(); + String topiaId = entity.getTopiaId(); + ImportType type; + if (topiaId.startsWith(Voyage.class.getName())) { + type = ImportType.VOYAGE; + } else { + type = ImportType.MOORING; + } + // create a importLog entry ImportLog importLog = persistenceService.createImportLog( - ImportType.VOYAGE, + type, user.getEmail(), date, - "Import voyage " + decorator.toString(importedVoyage) + " from file " + file.getName() + "Import voyage " + decorator.toString(entity) + " from file " + file.getName() ); - importLog.setVoyageId(importedVoyage.getTopiaId()); + importLog.setEntityId(topiaId); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java index 890f1d2..1f23900 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; */ import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; @@ -86,7 +87,7 @@ public class ReferentialImportDbStrategy extends AbstractImportDbStrategy { @Override protected void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) { + List<DataAccousticProvider> importedEntities) { // no importLog entry to add } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java index fbcd454..852df35 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java @@ -26,12 +26,12 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ImportFile; import fr.ifremer.echobase.entities.ImportFileId; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.service.DecoratorService; import fr.ifremer.echobase.services.service.UserDbPersistenceService; @@ -61,6 +61,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import org.nuiton.topia.persistence.TopiaEntity; /** * Service to remove an import data. @@ -80,7 +81,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { public static final Comparator<ImportLog> IMPORT_LOG_COMPARATOR = new Comparator<ImportLog>() { @Override public int compare(ImportLog o1, ImportLog o2) { - int result = o1.getVoyageId().compareTo(o2.getVoyageId()); + int result = o1.getEntityId().compareTo(o2.getEntityId()); if (result == 0) { result = o1.getImportType().ordinal() - o2.getImportType().ordinal(); } @@ -99,16 +100,16 @@ public class RemoveDataService extends EchoBaseServiceSupport { final AbstractRemoveDataStrategy strategy; - final Voyage voyage; + final DataAccousticProvider provider; public ImportContext(String importLogId, long nbSteps, AbstractRemoveDataStrategy strategy, - Voyage voyage) { + DataAccousticProvider provider) { this.importLogId = importLogId; this.nbSteps = nbSteps; this.strategy = strategy; - this.voyage = voyage; + this.provider = provider; } } @@ -130,15 +131,22 @@ public class RemoveDataService extends EchoBaseServiceSupport { Optional<ImportLog> optionalImportLog = persistenceService.getOptionalImportLog(id); if (optionalImportLog.isPresent()) { - ImportLog importLog = optionalImportLog.get(); - Class<? extends AbstractRemoveDataStrategy> strategyType = - getStrategy(importLog); + Class<? extends AbstractRemoveDataStrategy> strategyType = getStrategy(importLog); + AbstractRemoveDataStrategy strategy = newService(strategyType); strategy.setProgressModel(model); - Voyage voyage = persistenceService.getVoyage(importLog.getVoyageId()); - long l = strategy.computeNbSteps(voyage, importLog); - ImportContext importContext = new ImportContext(id, l + 3, strategy, voyage); + + DataAccousticProvider provider = null; + String entityId = importLog.getEntityId(); + if (entityId != null) { + TopiaEntity entity = persistenceService.getEntity(entityId); + provider = new DataAccousticProvider(entity); + } + + long l = strategy.computeNbSteps(provider, importLog); + + ImportContext importContext = new ImportContext(id, l + 3, strategy, provider); toTreat.put(importLog, importContext); if (log.isInfoEnabled()) { log.info("Nb steps for importLog " + id + ": " + l); @@ -183,7 +191,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { long s0 = TimeLog.getTime(); try { - strategy.doRemove(importContext.voyage, importLog); + strategy.doRemove(importContext.provider, importLog); } catch (TopiaException e) { throw new EchoBaseTechnicalException("Could not remove data", e); } @@ -223,7 +231,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { continue; } - if (!importLog.getVoyageId().equals(logEntry.getVoyageId())) { + if (!importLog.getEntityId().equals(logEntry.getEntityId())) { // not on same voyage, this importLog can not be obsoleted continue; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java index 45b9896..f2bd49d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java @@ -24,6 +24,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; import com.google.common.base.Optional; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportFile; import fr.ifremer.echobase.entities.ImportFileId; import fr.ifremer.echobase.entities.ImportLog; @@ -43,6 +44,7 @@ import javax.inject.Inject; import java.util.Collection; import java.util.List; import java.util.Set; +import org.nuiton.topia.persistence.TopiaEntity; /** * Abstract service to remove import data. @@ -50,7 +52,7 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport { +public abstract class AbstractRemoveDataStrategy<E extends TopiaEntity> extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = @@ -88,16 +90,16 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport this.progressModel = progressModel; } - public abstract long computeNbSteps(Voyage voyage, ImportLog importLog); + public abstract long computeNbSteps(DataAccousticProvider<E> provider, ImportLog importLog); - protected abstract void removeImportData(Voyage voyage, + protected abstract void removeImportData(DataAccousticProvider<E> provider, String id) throws TopiaException; public abstract Set<ImportType> getPossibleSubImportType(); - public void doRemove(Voyage voyage, ImportLog importLog) throws TopiaException { + public void doRemove(DataAccousticProvider<E> provider, ImportLog importLog) throws TopiaException { - removePreDataInVoyage(voyage); + removePreData(provider); persistenceService.flush(); @@ -111,7 +113,7 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport boolean exists = persistenceService.isIdExists(importId); if (exists) { try { - removeImportData(voyage, importId); + removeImportData(provider, importId); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } @@ -125,18 +127,18 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport persistenceService.flush(); - removePostDataInVoyage(voyage); + removePostData(provider); persistenceService.flush(); } long opIndex; - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<E> provider) throws TopiaException { // by default nothing to remove } - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<E> provider) throws TopiaException { // by default nothing to remove } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java index cfce8d2..85fc991 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -43,14 +44,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(AcousticRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,8 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -76,14 +79,14 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(DataAcquisition.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java index 5730677..e912f11 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Operation; @@ -41,19 +42,19 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CatchesRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CatchesRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CatchesRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Sample.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java index a4b6f64..082a979 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; @@ -39,21 +40,22 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonAllRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,7 @@ public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java index dc64ee8..720aa4a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transect; @@ -41,14 +42,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -64,7 +66,8 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -74,14 +77,14 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Transect.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java index 62d10c8..41228ed 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transit; @@ -40,14 +41,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -63,7 +65,8 @@ public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -73,14 +76,15 @@ public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Transit.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java index 2de98c1..45d0501 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transit; @@ -40,21 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { - + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -67,7 +68,7 @@ public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java index e2281a3..480b237 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; @@ -39,21 +40,22 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(LegacyVoyageRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,7 @@ public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java index 6e8f0db..05d8115 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.GearMetadataValue; @@ -43,20 +44,20 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class OperationRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class OperationRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(OperationRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(OperationMetadataValue.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java index 3d28f18..3d7ee95 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -41,20 +42,20 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultEsduRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultEsduRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultEsduRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Result.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java index eac2068..b202f1b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultMapFishRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultMapFishRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultMapFishRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java index 3cdcc0b..f797603 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultMapFishRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java index 1977093..ba1192d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultRegionRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultRegionRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultRegionRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java index 5908730..607be3e 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Category; @@ -45,14 +46,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultVoyageRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -65,15 +67,16 @@ public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePreDataInVoyage(final Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); removeVoyageCellResults(voyage); - removeVoyagePostCell(voyage); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Echotype.class.getName())) { diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java index a114b7b..ab569df 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java @@ -856,7 +856,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS createFakeUser().getEmail(), newDate(), importNote); - importLog.setVoyageId(voyageId); + importLog.setEntityId(voyageId); InputFile fakeInputFile = InputFile.newFile("Fake import: " + importConf); try { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm