branch feature/8180 updated (33247f7 -> 4b96b1f)
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 33247f7 Add DataAcousticProvider in the model to avoid cast new 4b96b1f Create basic import AncillaryInstrumentation for Mooring The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 4b96b1f11ca71f2727bde6e93619542fc85d2f62 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Wed Jun 29 15:32:43 2016 +0200 Create basic import AncillaryInstrumentation for Mooring Summary of changes: .../echobase/entities/ImportFileIdTopiaDao.java | 9 -- .../fr/ifremer/echobase/entities/ImportType.java | 14 +++ .../entities/data/DataAcousticProvider.java | 18 ++-- .../{references/Ports.java => data/Moorings.java} | 12 +-- .../ifremer/echobase/entities/data/VoyageImpl.java | 11 ++ .../{Ports.java => AncillaryInstrumentations.java} | 12 +-- .../i18n/echobase-domain_en_GB.properties | 4 + .../i18n/echobase-domain_fr_FR.properties | 4 + .../echobase/services/csv/EchoBaseCsvUtil.java | 22 ++++ .../services/service/UserDbPersistenceService.java | 9 ++ ...illaryInstrumentationAssociationException.java} | 10 +- .../service/importdata/ImportDataService.java | 38 +++++-- ...mportAncillaryInstrumentationActionSupport.java | 113 +++++++++++++++++++++ .../actions/ImportDataActionSupport.java | 6 -- ...ommonsAncillaryInstrumentationImportAction.java | 66 ++++++++++++ .../MooringCommonsImportDataActionSupport.java | 8 +- .../actions/MooringCommonsMooringImportAction.java | 18 ++-- ...VoyageResultsRegionAssociationImportAction.java | 4 - ...cillaryInstrumentationImportConfiguration.java} | 18 ++-- ... MooringCommonsMooringImportConfiguration.java} | 6 +- .../MooringImportDataConfigurationSupport.java | 2 +- .../VoyageCommonsImportConfiguration.java | 9 +- .../contexts/ImportDataContextSupport.java | 11 ++ ...AncillaryInstrumentationImportDataContext.java} | 19 +++- ...=> MooringCommonsMooringImportDataContext.java} | 8 +- .../contexts/VoyageImportDataContextSupport.java | 4 - .../importdata/csv/AcousticImportExportModel.java | 2 +- .../csv/AncillaryInstrumentationImportRow.java | 57 +++++++++++ ...sAncillaryInstrumentationImportExportModel.java | 60 +++++++++++ ...ngCommonsAncillaryInstrumentationImportRow.java | 69 +++++++++++++ ...=> MooringCommonsMooringImportExportModel.java} | 14 +-- ...sAncillaryInstrumentationImportExportModel.java | 60 +++++++++++ ...eCommonsAncillaryInstrumentationImportRow.java} | 23 ++--- .../service/removedata/RemoveDataService.java | 8 +- ...aStrategy.java => DummyRemoveDataStrategy.java} | 9 +- .../i18n/echobase-services_en_GB.properties | 2 + .../i18n/echobase-services_fr_FR.properties | 2 + .../echobase/services/EchoBaseServiceFixtures.java | 8 ++ .../echobase/services/ImportDataFixtures.java | 2 + ...nsAncillaryInstrumentationImportServiceIT.java} | 28 ++--- ...a => MooringCommonsMooringImportServiceIT.java} | 16 +-- .../removedata/AbstractRemoveDataServiceTest.java | 5 +- .../import-data/echobase-mooring.h2.db.gz | Bin 936865 -> 938590 bytes .../mooring/ancillaryInstrumentation.csv.gz | Bin 0 -> 96 bytes .../importData/ConfigureMooringCommonsImport.java | 10 +- .../importData/LaunchMooringCommonsImport.java | 10 +- 46 files changed, 684 insertions(+), 156 deletions(-) copy echobase-domain/src/main/java/fr/ifremer/echobase/entities/{references/Ports.java => data/Moorings.java} (79%) copy echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/{Ports.java => AncillaryInstrumentations.java} (75%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/{DuplicatedEchotypeAssociationException.java => DuplicatedAncillaryInstrumentationAssociationException.java} (71%) create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsAncillaryInstrumentationImportAction.java copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/{MooringCommonsImportConfiguration.java => MooringCommonsAncillaryInstrumentationImportConfiguration.java} (66%) rename echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/{MooringCommonsImportConfiguration.java => MooringCommonsMooringImportConfiguration.java} (89%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/{MooringAcousticsImportDataContext.java => MooringCommonsAncillaryInstrumentationImportDataContext.java} (63%) rename echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/{MooringCommonsImportDataContext.java => MooringCommonsMooringImportDataContext.java} (75%) create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AncillaryInstrumentationImportRow.java create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportExportModel.java create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportRow.java rename echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/{MooringCommonsImportExportModel.java => MooringCommonsMooringImportExportModel.java} (85%) create mode 100644 echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportExportModel.java copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/{VoyageResultsVoyageEchotypeImportRow.java => VoyageCommonsAncillaryInstrumentationImportRow.java} (67%) rename echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/{DummyMooringRemoveDataStrategy.java => DummyRemoveDataStrategy.java} (77%) copy echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/{MooringCommonsImportServiceIT.java => MooringCommonsAncillaryInstrumentationImportServiceIT.java} (53%) rename echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/{MooringCommonsImportServiceIT.java => MooringCommonsMooringImportServiceIT.java} (74%) create mode 100644 echobase-services/src/test/resources/import-data/mooring/ancillaryInstrumentation.csv.gz -- 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 4b96b1f11ca71f2727bde6e93619542fc85d2f62 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Wed Jun 29 15:32:43 2016 +0200 Create basic import AncillaryInstrumentation for Mooring --- .../echobase/entities/ImportFileIdTopiaDao.java | 9 -- .../fr/ifremer/echobase/entities/ImportType.java | 14 +++ .../entities/data/DataAcousticProvider.java | 18 ++-- .../ifremer/echobase/entities/data/Moorings.java | 35 +++---- .../ifremer/echobase/entities/data/VoyageImpl.java | 11 ++ .../references/AncillaryInstrumentations.java | 35 +++---- .../i18n/echobase-domain_en_GB.properties | 4 + .../i18n/echobase-domain_fr_FR.properties | 4 + .../echobase/services/csv/EchoBaseCsvUtil.java | 22 ++++ .../services/service/UserDbPersistenceService.java | 9 ++ ...illaryInstrumentationAssociationException.java} | 20 ++-- .../service/importdata/ImportDataService.java | 38 +++++-- ...mportAncillaryInstrumentationActionSupport.java | 113 +++++++++++++++++++++ .../actions/ImportDataActionSupport.java | 6 -- ...ommonsAncillaryInstrumentationImportAction.java | 66 ++++++++++++ .../MooringCommonsImportDataActionSupport.java | 8 +- .../actions/MooringCommonsMooringImportAction.java | 18 ++-- ...VoyageResultsRegionAssociationImportAction.java | 4 - ...cillaryInstrumentationImportConfiguration.java} | 18 ++-- ... MooringCommonsMooringImportConfiguration.java} | 6 +- .../MooringImportDataConfigurationSupport.java | 2 +- .../VoyageCommonsImportConfiguration.java | 9 +- .../contexts/ImportDataContextSupport.java | 11 ++ ...AncillaryInstrumentationImportDataContext.java} | 33 +++++- ...=> MooringCommonsMooringImportDataContext.java} | 8 +- .../contexts/VoyageImportDataContextSupport.java | 4 - .../importdata/csv/AcousticImportExportModel.java | 2 +- .../csv/AncillaryInstrumentationImportRow.java | 57 +++++++++++ ...sAncillaryInstrumentationImportExportModel.java | 60 +++++++++++ ...ngCommonsAncillaryInstrumentationImportRow.java | 69 +++++++++++++ ...=> MooringCommonsMooringImportExportModel.java} | 14 +-- ...sAncillaryInstrumentationImportExportModel.java | 60 +++++++++++ ...geCommonsAncillaryInstrumentationImportRow.java | 70 +++++++++++++ .../service/removedata/RemoveDataService.java | 8 +- ...aStrategy.java => DummyRemoveDataStrategy.java} | 9 +- .../i18n/echobase-services_en_GB.properties | 2 + .../i18n/echobase-services_fr_FR.properties | 2 + .../echobase/services/EchoBaseServiceFixtures.java | 8 ++ .../echobase/services/ImportDataFixtures.java | 2 + ...nsAncillaryInstrumentationImportServiceIT.java} | 28 ++--- ...a => MooringCommonsMooringImportServiceIT.java} | 16 +-- .../removedata/AbstractRemoveDataServiceTest.java | 5 +- .../import-data/echobase-mooring.h2.db.gz | Bin 936865 -> 938590 bytes .../mooring/ancillaryInstrumentation.csv.gz | Bin 0 -> 96 bytes .../importData/ConfigureMooringCommonsImport.java | 10 +- .../importData/LaunchMooringCommonsImport.java | 10 +- 46 files changed, 780 insertions(+), 177 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportFileIdTopiaDao.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportFileIdTopiaDao.java index 6247693..72a136b 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportFileIdTopiaDao.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportFileIdTopiaDao.java @@ -53,28 +53,19 @@ public class ImportFileIdTopiaDao extends AbstractImportFileIdTopiaDao<ImportFil } public <E extends TopiaEntity> Iterable<E> getImportedEntities(ImportFile importFile, Class<E> entityType) { - return findAllLazy(importFile, entityType, "e"); - } public Iterable<ImportedCellResult> getImportedCellResults(ImportFile importFile) { - return findAllLazy(importFile, Result.class, "new fr.ifremer.echobase.entities.ImportedCellResult(i.lineNumber, e.cell, e.category, e)"); - } - public Iterable<ImportedSampleDataResult> getImportedSampleDataResults(ImportFile importFile) { - return findAllLazy(importFile, SampleData.class, "new fr.ifremer.echobase.entities.ImportedSampleDataResult(i.lineNumber, e.sample.operation, e.sample, e.sample.speciesCategory, e)"); - } public Iterable<ImportedCell> getImportedAcousticCells(ImportFile importFile) { - return findAllLazy(importFile, Cell.class, "new fr.ifremer.echobase.entities.ImportedCell(i.lineNumber, e)"); - } protected <T, E extends TopiaEntity> Iterable<T> findAllLazy(ImportFile importFile, Class<E> entityType, String constructor) { 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 90e192c..c3e472d 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 @@ -68,6 +68,13 @@ public enum ImportType implements I18nAble { n("echobase.common.importType.commonDataTransect.short") ), + /** Import ancillary instrumentation data. */ + COMMON_ANCILLARY_INSTRUMENTATION( + EchoBaseUserEntityEnum.Mooring, + n("echobase.common.importType.ancillaryInstrumentationVoyage"), + n("echobase.common.importType.ancillaryInstrumentationVoyage.short") + ), + /** Import Operations. */ OPERATION( EchoBaseUserEntityEnum.Voyage, @@ -131,6 +138,13 @@ public enum ImportType implements I18nAble { n("echobase.common.importType.mooring.short") ), + /** Import ancillary instrumentation data. */ + MOORING_ANCILLARY_INSTRUMENTATION( + EchoBaseUserEntityEnum.Mooring, + n("echobase.common.importType.ancillaryInstrumentationMooring"), + n("echobase.common.importType.ancillaryInstrumentationMooring.short") + ), + /** Import accoustic data (Cells ESDU and Elementary). */ MOORING_ACOUSTIC( EchoBaseUserEntityEnum.Mooring, diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/DataAcousticProvider.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/DataAcousticProvider.java index bb35e6a..9347d0a 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/DataAcousticProvider.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/DataAcousticProvider.java @@ -1,7 +1,6 @@ package fr.ifremer.echobase.entities.data; -import fr.ifremer.echobase.entities.data.DataAcquisition; -import fr.ifremer.echobase.entities.data.Echotype; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import java.util.Collection; import org.nuiton.topia.persistence.TopiaEntity; @@ -27,7 +26,7 @@ import org.nuiton.topia.persistence.TopiaEntity; */ /** - * Common part on Voyage or Mooring. + * Common part on Voyage or Mooring or Transect. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 @@ -42,13 +41,18 @@ public interface DataAcousticProvider<E extends TopiaEntity> { Collection<DataAcquisition> getDataAcquisition(); - public void addDataAcquisition(DataAcquisition dataAcquisition); + void addDataAcquisition(DataAcquisition dataAcquisition); // For Echotype import - public boolean isEchotypeEmpty(); + boolean isEchotypeEmpty(); - public Collection<Echotype> getEchotype(); + Collection<Echotype> getEchotype(); - public void addEchotype(Echotype echotype); + void addEchotype(Echotype echotype); + + // For AncillaryInstrumentation import + AncillaryInstrumentation getAncillaryInstrumentationByTopiaId(String topiaId); + + void addAncillaryInstrumentation(AncillaryInstrumentation ancillaryInstrumentation); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/Moorings.java similarity index 55% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java copy to echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/Moorings.java index 75f0fa4..b6cd4c0 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/Moorings.java @@ -1,8 +1,10 @@ +package fr.ifremer.echobase.entities.data; + /* * #%L - * EchoBase :: Services + * EchoBase :: Domain * %% - * Copyright (C) 2011 - 2012 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,27 +20,18 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ -package fr.ifremer.echobase.services.service.importdata.configurations; + +import com.google.common.base.Function; /** - * Common import data configuration for mooring. - * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public abstract class MooringImportDataConfigurationSupport extends ImportDataConfigurationSupport { - - private static final long serialVersionUID = 1L; - - /** Selected mooring id where to import datas. */ - protected String mooringId; - - public String getMooringId() { - return mooringId; - } - - public void setMooringId(String mooringId) { - this.mooringId = mooringId; - } - +public class Moorings { + public static final Function<Mooring, String> MOORING_CODE = new Function<Mooring, String>() { + @Override + public String apply(Mooring input) { + return input.getCode(); + } + }; } diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java index 3488b9a..4174a49 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java @@ -25,6 +25,7 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import fr.ifremer.echobase.entities.references.Vessel; import java.util.Collection; @@ -186,4 +187,14 @@ public class VoyageImpl extends VoyageAbstract { public Voyage getEntity() { return this; } + + @Override + public AncillaryInstrumentation getAncillaryInstrumentationByTopiaId(String topiaId) { + throw new UnsupportedOperationException(); + } + + @Override + public void addAncillaryInstrumentation(AncillaryInstrumentation ancillaryInstrumentation) { + throw new UnsupportedOperationException(); + } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/AncillaryInstrumentations.java similarity index 55% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java copy to echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/AncillaryInstrumentations.java index 75f0fa4..45cb4b1 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/AncillaryInstrumentations.java @@ -1,8 +1,10 @@ +package fr.ifremer.echobase.entities.references; + /* * #%L - * EchoBase :: Services + * EchoBase :: Domain * %% - * Copyright (C) 2011 - 2012 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,27 +20,18 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ -package fr.ifremer.echobase.services.service.importdata.configurations; + +import com.google.common.base.Function; /** - * Common import data configuration for mooring. - * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public abstract class MooringImportDataConfigurationSupport extends ImportDataConfigurationSupport { - - private static final long serialVersionUID = 1L; - - /** Selected mooring id where to import datas. */ - protected String mooringId; - - public String getMooringId() { - return mooringId; - } - - public void setMooringId(String mooringId) { - this.mooringId = mooringId; - } - +public class AncillaryInstrumentations { + public static final Function<AncillaryInstrumentation, String> ANCILLARY_INSTRUMENTATION_NAME = new Function<AncillaryInstrumentation, String>() { + @Override + public String apply(AncillaryInstrumentation input) { + return input.getName(); + } + }; } 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 2c35a90..59915f1 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 @@ -2,6 +2,10 @@ echobase.common.driverType.h2=H2 Database echobase.common.driverType.postgres=Postgresql Database echobase.common.importType.acoustic=Acoustic data import echobase.common.importType.acoustic.short=Acoustic +echobase.common.importType.ancillaryInstrumentationMooring= +echobase.common.importType.ancillaryInstrumentationMooring.short= +echobase.common.importType.ancillaryInstrumentationVoyage= +echobase.common.importType.ancillaryInstrumentationVoyage.short= echobase.common.importType.catches=Fishing data import echobase.common.importType.catches.short=Fishing echobase.common.importType.commonDataAll=Voyage / Transit / Transects import 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 fbc89ba..501c657 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 @@ -2,6 +2,10 @@ echobase.common.driverType.h2=Base H2 echobase.common.driverType.postgres=Base Postgresql echobase.common.importType.acoustic=Import des données acoustiques echobase.common.importType.acoustic.short=Acoustique +echobase.common.importType.ancillaryInstrumentationMooring= +echobase.common.importType.ancillaryInstrumentationMooring.short= +echobase.common.importType.ancillaryInstrumentationVoyage= +echobase.common.importType.ancillaryInstrumentationVoyage.short= echobase.common.importType.catches=Import des données de pêche echobase.common.importType.catches.short=Pêche echobase.common.importType.commonDataAll=Import Voyage / Transit / Transects 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 c6fdb54..96b7d4d 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 @@ -23,11 +23,13 @@ package fr.ifremer.echobase.services.csv; import com.google.common.base.Function; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; +import fr.ifremer.echobase.entities.data.Mooring; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.AgeCategory; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; @@ -254,6 +256,26 @@ public class EchoBaseCsvUtil extends TopiaCsvCommons { } } ); + + public static final ValueFormatter<Mooring> MOORING_FORMATTER = newValueFormatterByFunction( + new Function<Mooring, String>() { + + @Override + public String apply(Mooring input) { + return input.getCode(); + } + } + ); + + public static final ValueFormatter<AncillaryInstrumentation> ANCILLARY_INSTRUMENTATION_FORMATTER = newValueFormatterByFunction( + new Function<AncillaryInstrumentation, String>() { + + @Override + public String apply(AncillaryInstrumentation 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 a80067b..ec7c0ce 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 @@ -63,6 +63,7 @@ import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.AgeCategory; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.CellTypeImpl; @@ -166,6 +167,14 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { } //------------------------------------------------------------------------// + //--- AncillaryInstrumentation ----------------------------------------------------// + //------------------------------------------------------------------------// + + public AncillaryInstrumentation getAncillaryInstrumentation(String id) { + return persistenceContext.getAncillaryInstrumentationDao().forTopiaIdEquals(id).findUnique(); + } + + //------------------------------------------------------------------------// //--- Category -----------------------------------------------------------// //------------------------------------------------------------------------// diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedAncillaryInstrumentationAssociationException.java similarity index 55% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedAncillaryInstrumentationAssociationException.java index 65ef1ac..20f7b2d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedAncillaryInstrumentationAssociationException.java @@ -1,4 +1,4 @@ -package fr.ifremer.echobase.services.service.importdata.actions; +package fr.ifremer.echobase.services.service.importdata; /* * #%L @@ -21,19 +21,19 @@ package fr.ifremer.echobase.services.service.importdata.actions; * #L% */ -import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; -import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; +import org.nuiton.csv.ImportRuntimeException; + +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l; /** - * Created on 30/03/16. - * * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 */ -public abstract class MooringCommonsImportDataActionSupport<E> extends ImportDataActionSupport<MooringCommonsImportConfiguration, MooringCommonsImportDataContext, E> { +public class DuplicatedAncillaryInstrumentationAssociationException extends ImportRuntimeException { - protected MooringCommonsImportDataActionSupport(MooringCommonsImportDataContext importDataContext, InputFile inputFile) { - super(importDataContext, inputFile); + public DuplicatedAncillaryInstrumentationAssociationException(Locale locale, int rowNumber, String providerName, String ancillaryInstrumentationName) { + super(l(locale, "echobase.importError.duplicate.echotypeAncillaryInstrumentationAssociation", rowNumber, providerName, ancillaryInstrumentationName)); } - } 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 154fd2d..240e418 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.MooringCommonsAncillaryInstrumentationImportAction; 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; @@ -56,7 +57,8 @@ 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.MooringCommonsAncillaryInstrumentationImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; 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; @@ -64,7 +66,8 @@ 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.MooringCommonsAncillaryInstrumentationImportDataContext; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsMooringImportDataContext; 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; @@ -185,11 +188,17 @@ public class ImportDataService extends EchoBaseServiceSupport { } - public ImportDataResult<MooringCommonsImportConfiguration> doImportMooringCommons(MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { - MooringCommonsImportDataContext importDataContext = newMooringCommonsImportContext(configuration, user); + public ImportDataResult<MooringCommonsMooringImportConfiguration> doImportMooringCommonsMooring(MooringCommonsMooringImportConfiguration configuration, EchoBaseUser user) throws ImportException { + MooringCommonsMooringImportDataContext importDataContext = newMooringCommonsMooringImportContext(configuration, user); Set<MooringCommonsMooringImportAction> importActions = Collections.singleton(new MooringCommonsMooringImportAction(importDataContext)); return doImport(importDataContext, importActions); } + + public ImportDataResult<MooringCommonsAncillaryInstrumentationImportConfiguration> doImportMooringCommonsAncillaryInstrumentation(MooringCommonsAncillaryInstrumentationImportConfiguration configuration, EchoBaseUser user) throws ImportException { + MooringCommonsAncillaryInstrumentationImportDataContext importDataContext = newMooringCommonsAncillaryInstrumentationImportContext(configuration, user); + Set<MooringCommonsAncillaryInstrumentationImportAction> importActions = Collections.singleton(new MooringCommonsAncillaryInstrumentationImportAction(importDataContext)); + return doImport(importDataContext, importActions); + } public ImportDataResult<MooringAcousticsImportConfiguration> doImportMooringAcoustics(MooringAcousticsImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -312,8 +321,12 @@ 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 MooringCommonsMooringImportDataContext newMooringCommonsMooringImportContext(MooringCommonsMooringImportConfiguration configuration, EchoBaseUser user) { + return new MooringCommonsMooringImportDataContext(persistenceService, getLocale(), getCsvSeparator(), configuration, user, newDate()); + } + + private MooringCommonsAncillaryInstrumentationImportDataContext newMooringCommonsAncillaryInstrumentationImportContext(MooringCommonsAncillaryInstrumentationImportConfiguration configuration, EchoBaseUser user) { + return new MooringCommonsAncillaryInstrumentationImportDataContext(persistenceService, getLocale(), getCsvSeparator(), configuration, user, newDate()); } private MooringAcousticsImportDataContext newMooringAcousticsImportContext(MooringAcousticsImportConfiguration configuration, EchoBaseUser user) { @@ -436,10 +449,17 @@ public class ImportDataService extends EchoBaseServiceSupport { } } - public static class MooringCommonsImportDataAction implements ImportDataAction<MooringCommonsImportConfiguration> { + public static class MooringCommonsMooringImportDataAction implements ImportDataAction<MooringCommonsMooringImportConfiguration> { + @Override + public ImportDataResult<MooringCommonsMooringImportConfiguration> doImport(ImportDataService service, MooringCommonsMooringImportConfiguration configuration, EchoBaseUser user) throws ImportException { + return service.doImportMooringCommonsMooring(configuration, user); + } + } + + public static class MooringCommonsAncillaryInstrumentationImportDataAction implements ImportDataAction<MooringCommonsAncillaryInstrumentationImportConfiguration> { @Override - public ImportDataResult<MooringCommonsImportConfiguration> doImport(ImportDataService service, MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { - return service.doImportMooringCommons(configuration, user); + public ImportDataResult<MooringCommonsAncillaryInstrumentationImportConfiguration> doImport(ImportDataService service, MooringCommonsAncillaryInstrumentationImportConfiguration configuration, EchoBaseUser user) throws ImportException { + return service.doImportMooringCommonsAncillaryInstrumentation(configuration, user); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java new file mode 100644 index 0000000..5a41ebf --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java @@ -0,0 +1,113 @@ +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 com.google.common.base.Preconditions; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.data.DataAcousticProvider; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.DuplicatedAncillaryInstrumentationAssociationException; +import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; +import fr.ifremer.echobase.services.service.importdata.MismatchProviderException; +import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; +import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; +import fr.ifremer.echobase.services.service.importdata.csv.AncillaryInstrumentationImportRow; +import java.util.LinkedList; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public abstract class ImportAncillaryInstrumentationActionSupport<M extends ImportDataConfigurationSupport, C extends ImportDataContextSupport<M>, E extends AncillaryInstrumentationImportRow> extends ImportDataActionSupport<M, C, E> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ImportAncillaryInstrumentationActionSupport.class); + + private final LinkedList<String> ancillaryInstrumentations = new LinkedList<>(); + + public ImportAncillaryInstrumentationActionSupport(C importDataContext, InputFile inputFile) { + super(importDataContext, inputFile); + } + + protected abstract E newImportedRow(DataAcousticProvider provider, AncillaryInstrumentation ancillaryInstrumentation); + + protected abstract DataAcousticProvider getDataProvider(C importDataContext); + + @Override + protected void performImport(C importDataContext, InputFile inputFile, ImportDataFileResult result) { + if (log.isInfoEnabled()) { + log.info("Starts import of ancillary instrumentation from file " + inputFile.getFileName()); + } + + DataAcousticProvider expectedProvider = getDataProvider(importDataContext); + + try (Import<E> importer = open()) { + + incrementsProgress(); + + int rowNumber = 0; + for (E row : importer) { + + doFlushTransaction(++rowNumber); + + DataAcousticProvider provider = row.getProvider(); + + if (!expectedProvider.equals(provider)) { + throw new MismatchProviderException(getLocale(), rowNumber, provider.getName()); + } + + AncillaryInstrumentation ancillaryInstrumentation = row.getAncillaryInstrumentation(); + + AncillaryInstrumentation existingAncillaryInstrumentation = provider.getAncillaryInstrumentationByTopiaId(ancillaryInstrumentation.getTopiaId()); + if (existingAncillaryInstrumentation != null) { + throw new DuplicatedAncillaryInstrumentationAssociationException(getLocale(), rowNumber, provider.getName(), ancillaryInstrumentation.getName()); + } + + // add it + provider.addAncillaryInstrumentation(ancillaryInstrumentation); + ancillaryInstrumentations.add(ancillaryInstrumentation.getTopiaId()); + + + result.incrementsNumberUpdated(EchoBaseUserEntityEnum.AncillaryInstrumentation); + addProcessedRow(result, row); + } + } + } + + @Override + protected void computeImportedExport(C importDataContext, ImportDataFileResult result) { + DataAcousticProvider provider = getDataProvider(importDataContext); + + for (String ancillaryInstrumentationId : ancillaryInstrumentations) { + AncillaryInstrumentation ancillaryInstrumentation = persistenceService.getAncillaryInstrumentation(ancillaryInstrumentationId); + Preconditions.checkNotNull(ancillaryInstrumentation); + + E row = newImportedRow(provider, ancillaryInstrumentation); + addImportedRow(result, row); + } + } + +} 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 0039f23..3031c0a 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 @@ -431,7 +431,6 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } public <EE extends TopiaEntity> void addId(ImportDataFileResult importResult, EchoBaseUserEntityEnum entityEnum, EE entity, int lineNumber) { - int entityCount = importResult.addId(entityEnum); ImportFileId importFileId = persistenceService.newImportFileId(importResult.getImportFile(), entity, lineNumber, entityCount); @@ -440,13 +439,10 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS if (importedFileIdsToPersist.size() % EXPORT_FLUSH_MAX == 0) { flushImportFileIds(importResult); } - } protected <EE extends TopiaEntity> Iterable<EE> getImportedEntities(Class<EE> type, ImportDataFileResult result) { - return persistenceService.getImportedEntities(result.getImportFile(), type); - } protected Iterable<ImportFileId> getImportFileIds(ImportDataFileResult result) { @@ -454,7 +450,6 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } private void flushProcessedExport(ImportDataFileResult result) { - try { csvProcessedExport.export(processedRowsToExport); } catch (Exception e) { @@ -462,7 +457,6 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } finally { processedRowsToExport.clear(); } - } private void flushImportedExport(ImportDataFileResult result) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsAncillaryInstrumentationImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsAncillaryInstrumentationImportAction.java new file mode 100644 index 0000000..8931dc3 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsAncillaryInstrumentationImportAction.java @@ -0,0 +1,66 @@ +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.data.DataAcousticProvider; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsAncillaryInstrumentationImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsAncillaryInstrumentationImportDataContext; +import fr.ifremer.echobase.services.service.importdata.csv.MooringCommonsAncillaryInstrumentationImportExportModel; +import fr.ifremer.echobase.services.service.importdata.csv.MooringCommonsAncillaryInstrumentationImportRow; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringCommonsAncillaryInstrumentationImportAction extends ImportAncillaryInstrumentationActionSupport<MooringCommonsAncillaryInstrumentationImportConfiguration, MooringCommonsAncillaryInstrumentationImportDataContext, MooringCommonsAncillaryInstrumentationImportRow> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(MooringCommonsAncillaryInstrumentationImportAction.class); + + public MooringCommonsAncillaryInstrumentationImportAction(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + super(importDataContext, importDataContext.getConfiguration().getAncillaryInstrumentationFile()); + } + + @Override + protected MooringCommonsAncillaryInstrumentationImportRow newImportedRow(DataAcousticProvider provider, AncillaryInstrumentation ancillaryInstrumentation) { + return MooringCommonsAncillaryInstrumentationImportRow.of(provider, ancillaryInstrumentation); + } + + @Override + protected DataAcousticProvider getDataProvider(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + return importDataContext.getMooring(); + } + + @Override + protected MooringCommonsAncillaryInstrumentationImportExportModel createCsvImportModel(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + return MooringCommonsAncillaryInstrumentationImportExportModel.forImport(importDataContext); + } + + @Override + protected MooringCommonsAncillaryInstrumentationImportExportModel createCsvExportModel(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + return MooringCommonsAncillaryInstrumentationImportExportModel.forExport(importDataContext); + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java index 65ef1ac..d5997d7 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsImportDataActionSupport.java @@ -22,17 +22,17 @@ package fr.ifremer.echobase.services.service.importdata.actions; */ import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; -import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsMooringImportDataContext; /** * Created on 30/03/16. * * @author Julien Ruchaud - ruchaud@codelutin.com */ -public abstract class MooringCommonsImportDataActionSupport<E> extends ImportDataActionSupport<MooringCommonsImportConfiguration, MooringCommonsImportDataContext, E> { +public abstract class MooringCommonsImportDataActionSupport<E> extends ImportDataActionSupport<MooringCommonsMooringImportConfiguration, MooringCommonsMooringImportDataContext, E> { - protected MooringCommonsImportDataActionSupport(MooringCommonsImportDataContext importDataContext, InputFile inputFile) { + protected MooringCommonsImportDataActionSupport(MooringCommonsMooringImportDataContext importDataContext, InputFile inputFile) { super(importDataContext, inputFile); } 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 f95301c..79ca3a8 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 @@ -26,8 +26,8 @@ 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.MooringCommonsImportExportModel; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsMooringImportDataContext; +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; @@ -45,22 +45,22 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA /** Logger. */ private static final Log log = LogFactory.getLog(MooringCommonsMooringImportAction.class); - public MooringCommonsMooringImportAction(MooringCommonsImportDataContext importDataContext) { + public MooringCommonsMooringImportAction(MooringCommonsMooringImportDataContext importDataContext) { super(importDataContext, importDataContext.getConfiguration().getMooringFile()); } @Override - protected MooringCommonsImportExportModel createCsvImportModel(MooringCommonsImportDataContext importDataContext) { - return MooringCommonsImportExportModel.forImport(importDataContext); + protected MooringCommonsMooringImportExportModel createCsvImportModel(MooringCommonsMooringImportDataContext importDataContext) { + return MooringCommonsMooringImportExportModel.forImport(importDataContext); } @Override - protected MooringCommonsImportExportModel createCsvExportModel(MooringCommonsImportDataContext importDataContext) { - return MooringCommonsImportExportModel.forExport(importDataContext); + protected MooringCommonsMooringImportExportModel createCsvExportModel(MooringCommonsMooringImportDataContext importDataContext) { + return MooringCommonsMooringImportExportModel.forExport(importDataContext); } @Override - public void performImport(MooringCommonsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { + public void performImport(MooringCommonsMooringImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { if (log.isInfoEnabled()) { log.info("Starts import of mooring from file " + inputFile.getFileName()); } @@ -89,7 +89,7 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA } @Override - protected void computeImportedExport(MooringCommonsImportDataContext importDataContext, ImportDataFileResult result) { + protected void computeImportedExport(MooringCommonsMooringImportDataContext importDataContext, ImportDataFileResult result) { for (Mooring mooring : getImportedEntities(Mooring.class, result)) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionAssociationImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionAssociationImportAction.java index c297e8d..b3f0aef 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionAssociationImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionAssociationImportAction.java @@ -65,7 +65,6 @@ public class VoyageResultsRegionAssociationImportAction extends VoyageResultsImp @Override protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - if (log.isInfoEnabled()) { log.info("Starts import of Region cells association from file " + inputFile.getFileName()); } @@ -86,11 +85,8 @@ public class VoyageResultsRegionAssociationImportAction extends VoyageResultsImp addProcessedRow(result, row); regionCellIds.add(regionCell.getTopiaId()); - } - } - } @Override 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/MooringCommonsAncillaryInstrumentationImportConfiguration.java similarity index 66% 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/MooringCommonsAncillaryInstrumentationImportConfiguration.java index 7e16fc1..30298ce 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/MooringCommonsAncillaryInstrumentationImportConfiguration.java @@ -29,25 +29,25 @@ import static org.nuiton.i18n.I18n.l; * Configuration mooring import. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public class MooringCommonsImportConfiguration extends MooringImportDataConfigurationSupport { +public class MooringCommonsAncillaryInstrumentationImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; - protected final InputFile mooringFile; + protected final InputFile ancillaryInstrumentationFile; - public MooringCommonsImportConfiguration(Locale locale) { - mooringFile = InputFile.newFile(l(locale, "echobase.common.mooringFile")); - importType = ImportType.MOORING_COMMONS; + public MooringCommonsAncillaryInstrumentationImportConfiguration(Locale locale) { + ancillaryInstrumentationFile = InputFile.newFile(l(locale, "echobase.common.ancillaryInstrumentationFile")); + importType = ImportType.MOORING_ANCILLARY_INSTRUMENTATION; } - public InputFile getMooringFile() { - return mooringFile; + public InputFile getAncillaryInstrumentationFile() { + return ancillaryInstrumentationFile; } @Override public InputFile[] getInputFiles() { - return new InputFile[]{mooringFile}; + return new InputFile[]{ancillaryInstrumentationFile}; } } 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/MooringCommonsMooringImportConfiguration.java similarity index 89% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsMooringImportConfiguration.java index 7e16fc1..8f1f48f 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/MooringCommonsMooringImportConfiguration.java @@ -29,15 +29,15 @@ import static org.nuiton.i18n.I18n.l; * Configuration mooring import. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public class MooringCommonsImportConfiguration extends MooringImportDataConfigurationSupport { +public class MooringCommonsMooringImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; protected final InputFile mooringFile; - public MooringCommonsImportConfiguration(Locale locale) { + public MooringCommonsMooringImportConfiguration(Locale locale) { mooringFile = InputFile.newFile(l(locale, "echobase.common.mooringFile")); importType = ImportType.MOORING_COMMONS; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java index 75f0fa4..02dbb6d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.service.importdata.configurations; * Common import data configuration for mooring. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ public abstract class MooringImportDataConfigurationSupport extends ImportDataConfigurationSupport { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageCommonsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageCommonsImportConfiguration.java index e435853..9b3aaf3 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageCommonsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageCommonsImportConfiguration.java @@ -41,6 +41,8 @@ public class VoyageCommonsImportConfiguration extends VoyageImportDataConfigurat protected final InputFile transitFile; /** Transect file to import. */ protected final InputFile transectFile; + /** Ancillary instrumentation file to import. */ + protected final InputFile ancillaryInstrumentationFile; /** Selected mission id to use in voyage. */ protected String missionId; /** Selected area of operation to use for voyage. */ @@ -62,6 +64,7 @@ public class VoyageCommonsImportConfiguration extends VoyageImportDataConfigurat voyageFile = InputFile.newFile(l(locale, "echobase.common.voyageFile")); transitFile = InputFile.newFile(l(locale, "echobase.common.transitFile")); transectFile = InputFile.newFile(l(locale, "echobase.common.transectFile")); + ancillaryInstrumentationFile = InputFile.newFile(l(locale, "echobase.common.ancillaryInstrumentationFile")); } public String getMissionId() { @@ -140,8 +143,12 @@ public class VoyageCommonsImportConfiguration extends VoyageImportDataConfigurat return transectFile; } + public InputFile getAncillaryInstrumentationFile() { + return ancillaryInstrumentationFile; + } + @Override public InputFile[] getInputFiles() { - return new InputFile[]{voyageFile, transitFile, transectFile}; + return new InputFile[]{voyageFile, transitFile, transectFile, ancillaryInstrumentationFile}; } } 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 4beb532..b594846 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 @@ -28,6 +28,8 @@ import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.AcousticInstruments; import fr.ifremer.echobase.entities.references.AgeCategories; import fr.ifremer.echobase.entities.references.AgeCategory; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentations; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.CellTypes; import fr.ifremer.echobase.entities.references.DataMetadata; @@ -84,6 +86,7 @@ public abstract class ImportDataContextSupport<C extends ImportDataConfiguration private final EchoBaseUser user; private final ImportLog importLog; + // Referential private Map<String, Vessel> vesselsByName; private Map<String, Gear> gearsByCasinoGearName; private Map<String, DepthStratum> depthStratumsById; @@ -101,6 +104,7 @@ public abstract class ImportDataContextSupport<C extends ImportDataConfiguration private Map<String, AgeCategory> ageCategoriesByName; private Map<String, Port> portsByCode; private Map<String, Mission> missionByName; + private Map<String, AncillaryInstrumentation> ancillaryInstrumentationsByName; private CellType esduCellType; private CellType elementaryCellType; @@ -264,6 +268,13 @@ public abstract class ImportDataContextSupport<C extends ImportDataConfiguration } return dataMetadatasByName; } + + public final Map<String, AncillaryInstrumentation> getAncillaryInstrumentationsByName() { + if (ancillaryInstrumentationsByName == null) { + ancillaryInstrumentationsByName = persistenceService.getEntitiesMap(AncillaryInstrumentation.class, AncillaryInstrumentations.ANCILLARY_INSTRUMENTATION_NAME); + } + return ancillaryInstrumentationsByName; + } public final Locale getLocale() { return locale; 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/MooringCommonsAncillaryInstrumentationImportDataContext.java similarity index 50% 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/MooringCommonsAncillaryInstrumentationImportDataContext.java index 2fae937..df421d0 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/MooringCommonsAncillaryInstrumentationImportDataContext.java @@ -21,26 +21,49 @@ package fr.ifremer.echobase.services.service.importdata.contexts; * #L% */ +import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.entities.data.Moorings; import fr.ifremer.echobase.services.service.UserDbPersistenceService; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsAncillaryInstrumentationImportConfiguration; +import java.util.Collections; import java.util.Date; import java.util.Locale; +import java.util.Map; /** * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.O */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +public class MooringCommonsAncillaryInstrumentationImportDataContext extends ImportDataContextSupport<MooringCommonsAncillaryInstrumentationImportConfiguration> { - public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { + private Mooring mooring; + + private Map<String, Mooring> mooringsByCode; + + public MooringCommonsAncillaryInstrumentationImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsAncillaryInstrumentationImportConfiguration configuration, EchoBaseUser user, Date importDate) { super(persistenceService, locale, csvSeparator, configuration, user, importDate); } + + public final Mooring getMooring() { + if (mooring == null) { + mooring = persistenceService.getMooring(configuration.getMooringId()); + } + return mooring; + } @Override public String getEntityId() { - return null; + return configuration.getMooringId(); + } + + public final Map<String, Mooring> getMooringsByCode() { + if (mooringsByCode == null) { + mooringsByCode = Maps.uniqueIndex(Collections.singletonList(getMooring()), Moorings.MOORING_CODE); + } + return mooringsByCode; } } 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/MooringCommonsMooringImportDataContext.java similarity index 75% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsMooringImportDataContext.java index 2fae937..0a00fdb 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/MooringCommonsMooringImportDataContext.java @@ -23,18 +23,18 @@ package fr.ifremer.echobase.services.service.importdata.contexts; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.services.service.UserDbPersistenceService; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; import java.util.Date; import java.util.Locale; /** * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +public class MooringCommonsMooringImportDataContext extends ImportDataContextSupport<MooringCommonsMooringImportConfiguration> { - public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { + public MooringCommonsMooringImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsMooringImportConfiguration 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/VoyageImportDataContextSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java index 17f5b46..28a14c1 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 @@ -24,10 +24,6 @@ package fr.ifremer.echobase.services.service.importdata.contexts; import com.google.common.collect.Collections2; import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.Cells; -import fr.ifremer.echobase.entities.data.Echotype; -import fr.ifremer.echobase.entities.data.Echotypes; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Operations; import fr.ifremer.echobase.entities.data.Voyage; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java index 6f44d2b..77f8fe8 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java @@ -34,7 +34,7 @@ import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContex * {@link DataProcessing}, {@link Cell} and {@link Data}. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.5 + * @since 4.0 */ public class AcousticImportExportModel extends EchoBaseImportExportModelSupport<AcousticImportRow> { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AncillaryInstrumentationImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AncillaryInstrumentationImportRow.java new file mode 100644 index 0000000..8c127b9 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AncillaryInstrumentationImportRow.java @@ -0,0 +1,57 @@ +/* + * #%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.references.AncillaryInstrumentation; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentationImpl; +import fr.ifremer.echobase.services.csv.ProviderAble; + +import java.io.Serializable; +import org.nuiton.topia.persistence.TopiaEntity; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public abstract class AncillaryInstrumentationImportRow<E extends TopiaEntity> implements Serializable, ProviderAble<E> { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_ANCILLARY_INSTRUMENTATION = "ancillaryInstrumentation"; + + protected AncillaryInstrumentation ancillaryInstrumentation; + + public AncillaryInstrumentationImportRow() { + this(new AncillaryInstrumentationImpl()); + } + + public AncillaryInstrumentationImportRow(AncillaryInstrumentation ancillaryInstrumentation) { + this.ancillaryInstrumentation = ancillaryInstrumentation; + } + + public AncillaryInstrumentation getAncillaryInstrumentation() { + return ancillaryInstrumentation; + } + + public void setAncillaryInstrumentation(AncillaryInstrumentation ancillaryInstrumentation) { + this.ancillaryInstrumentation = ancillaryInstrumentation; + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportExportModel.java new file mode 100644 index 0000000..1086637 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportExportModel.java @@ -0,0 +1,60 @@ +/* + * #%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.references.AncillaryInstrumentation; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsAncillaryInstrumentationImportDataContext; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringCommonsAncillaryInstrumentationImportExportModel extends EchoBaseImportExportModelSupport<MooringCommonsAncillaryInstrumentationImportRow> { + + private MooringCommonsAncillaryInstrumentationImportExportModel(char separator) { + super(separator); + } + + public static MooringCommonsAncillaryInstrumentationImportExportModel forImport(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + MooringCommonsAncillaryInstrumentationImportExportModel model = new MooringCommonsAncillaryInstrumentationImportExportModel(importDataContext.getCsvSeparator()); + + model.newForeignKeyColumn(MooringCommonsAncillaryInstrumentationImportRow.PROPERTY_MOORING, Mooring.class, Mooring.PROPERTY_CODE, importDataContext.getMooringsByCode()); + model.newForeignKeyColumn(MooringCommonsAncillaryInstrumentationImportRow.PROPERTY_ANCILLARY_INSTRUMENTATION, AncillaryInstrumentation.class, AncillaryInstrumentation.PROPERTY_NAME, importDataContext.getAncillaryInstrumentationsByName()); + + return model; + } + + public static MooringCommonsAncillaryInstrumentationImportExportModel forExport(MooringCommonsAncillaryInstrumentationImportDataContext importDataContext) { + MooringCommonsAncillaryInstrumentationImportExportModel model = new MooringCommonsAncillaryInstrumentationImportExportModel(importDataContext.getCsvSeparator()); + + model.newColumnForExport(MooringCommonsAncillaryInstrumentationImportRow.PROPERTY_MOORING, EchoBaseCsvUtil.MOORING_FORMATTER); + model.newColumnForExport(MooringCommonsAncillaryInstrumentationImportRow.PROPERTY_ANCILLARY_INSTRUMENTATION, EchoBaseCsvUtil.ANCILLARY_INSTRUMENTATION_FORMATTER); + + return model; + } + + @Override + public MooringCommonsAncillaryInstrumentationImportRow newEmptyInstance() { + return new MooringCommonsAncillaryInstrumentationImportRow(); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportRow.java new file mode 100644 index 0000000..38d9e9b --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsAncillaryInstrumentationImportRow.java @@ -0,0 +1,69 @@ +/* + * #%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.DataAcousticProvider; +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringCommonsAncillaryInstrumentationImportRow extends AncillaryInstrumentationImportRow<Mooring> { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_MOORING = "mooring"; + protected Mooring mooring; + + public static MooringCommonsAncillaryInstrumentationImportRow of(DataAcousticProvider provider, AncillaryInstrumentation ancillaryInstrumentation) { + MooringCommonsAncillaryInstrumentationImportRow row = new MooringCommonsAncillaryInstrumentationImportRow(ancillaryInstrumentation); + row.setProvider(provider); + return row; + } + + public MooringCommonsAncillaryInstrumentationImportRow() { + super(); + } + + public MooringCommonsAncillaryInstrumentationImportRow(AncillaryInstrumentation ancillaryInstrumentation) { + super(ancillaryInstrumentation); + } + + public Mooring getMooring() { + return mooring; + } + + public void setMooring(Mooring mooring) { + this.mooring = mooring; + } + + @Override + public DataAcousticProvider<Mooring> getProvider() { + return mooring; + } + + @Override + public void setProvider(DataAcousticProvider<Mooring> provider) { + this.mooring = provider.getEntity(); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java similarity index 85% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java index 92f7017..2de9de1 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java @@ -24,7 +24,7 @@ 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; +import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsMooringImportDataContext; /** * Model to import Mooring. @@ -32,14 +32,14 @@ import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsIm * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringCommonsImportExportModel extends EchoBaseImportExportModelSupport<Mooring> { +public class MooringCommonsMooringImportExportModel extends EchoBaseImportExportModelSupport<Mooring> { - private MooringCommonsImportExportModel(char separator) { + private MooringCommonsMooringImportExportModel(char separator) { super(separator); } - public static MooringCommonsImportExportModel forImport(MooringCommonsImportDataContext importDataContext) { - MooringCommonsImportExportModel model = new MooringCommonsImportExportModel(importDataContext.getCsvSeparator()); + public static MooringCommonsMooringImportExportModel forImport(MooringCommonsMooringImportDataContext 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); @@ -62,8 +62,8 @@ public class MooringCommonsImportExportModel extends EchoBaseImportExportModelSu return model; } - public static MooringCommonsImportExportModel forExport(MooringCommonsImportDataContext importDataContext) { - MooringCommonsImportExportModel model = new MooringCommonsImportExportModel(importDataContext.getCsvSeparator()); + public static MooringCommonsMooringImportExportModel forExport(MooringCommonsMooringImportDataContext importDataContext) { + MooringCommonsMooringImportExportModel model = new MooringCommonsMooringImportExportModel(importDataContext.getCsvSeparator()); model.newColumnForExport(Mooring.PROPERTY_MISSION, Mooring.PROPERTY_MISSION, EchoBaseCsvUtil.MISSION_FORMATTER); model.newColumnForExport(Mooring.PROPERTY_CODE); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportExportModel.java new file mode 100644 index 0000000..f32a7cb --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportExportModel.java @@ -0,0 +1,60 @@ +/* + * #%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.Voyage; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCommonsImportDataContext; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class VoyageCommonsAncillaryInstrumentationImportExportModel extends EchoBaseImportExportModelSupport<VoyageCommonsAncillaryInstrumentationImportRow> { + + private VoyageCommonsAncillaryInstrumentationImportExportModel(char separator) { + super(separator); + } + + public static VoyageCommonsAncillaryInstrumentationImportExportModel forImport(VoyageCommonsImportDataContext importDataContext) { + VoyageCommonsAncillaryInstrumentationImportExportModel model = new VoyageCommonsAncillaryInstrumentationImportExportModel(importDataContext.getCsvSeparator()); + + model.newForeignKeyColumn(VoyageCommonsAncillaryInstrumentationImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); + model.newForeignKeyColumn(VoyageCommonsAncillaryInstrumentationImportRow.PROPERTY_ANCILLARY_INSTRUMENTATION, AncillaryInstrumentation.class, AncillaryInstrumentation.PROPERTY_NAME, importDataContext.getAncillaryInstrumentationsByName()); + + return model; + } + + public static VoyageCommonsAncillaryInstrumentationImportExportModel forExport(VoyageCommonsImportDataContext importDataContext) { + VoyageCommonsAncillaryInstrumentationImportExportModel model = new VoyageCommonsAncillaryInstrumentationImportExportModel(importDataContext.getCsvSeparator()); + + model.newColumnForExport(VoyageCommonsAncillaryInstrumentationImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); + model.newColumnForExport(VoyageCommonsAncillaryInstrumentationImportRow.PROPERTY_ANCILLARY_INSTRUMENTATION, EchoBaseCsvUtil.ANCILLARY_INSTRUMENTATION_FORMATTER); + + return model; + } + + @Override + public VoyageCommonsAncillaryInstrumentationImportRow newEmptyInstance() { + return new VoyageCommonsAncillaryInstrumentationImportRow(); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportRow.java new file mode 100644 index 0000000..68c43fb --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageCommonsAncillaryInstrumentationImportRow.java @@ -0,0 +1,70 @@ +/* + * #%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.DataAcousticProvider; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class VoyageCommonsAncillaryInstrumentationImportRow extends AncillaryInstrumentationImportRow<Voyage> { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_VOYAGE = "voyage"; + + protected Voyage voyage; + + public static VoyageCommonsAncillaryInstrumentationImportRow of(DataAcousticProvider provider, AncillaryInstrumentation ancillaryInstrumentation) { + VoyageCommonsAncillaryInstrumentationImportRow row = new VoyageCommonsAncillaryInstrumentationImportRow(ancillaryInstrumentation); + row.setProvider(provider); + return row; + } + + public VoyageCommonsAncillaryInstrumentationImportRow() { + super(); + } + + public VoyageCommonsAncillaryInstrumentationImportRow(AncillaryInstrumentation ancillaryInstrumentation) { + super(ancillaryInstrumentation); + } + + public Voyage getVoyage() { + return voyage; + } + + public void setVoyage(Voyage voyage) { + this.voyage = voyage; + } + + @Override + public DataAcousticProvider<Voyage> getProvider() { + return voyage; + } + + @Override + public void setProvider(DataAcousticProvider<Voyage> provider) { + this.voyage = provider.getEntity(); + } +} 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 ebf8ee6..9a612da 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 @@ -41,7 +41,7 @@ import fr.ifremer.echobase.services.service.removedata.strategy.CommonAllRemoveD import fr.ifremer.echobase.services.service.removedata.strategy.CommonTransectRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.CommonTransitRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.CommonVoyageRemoveDataStrategy; -import fr.ifremer.echobase.services.service.removedata.strategy.DummyMooringRemoveDataStrategy; +import fr.ifremer.echobase.services.service.removedata.strategy.DummyRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.LegacyVoyageRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.MooringAcousticRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.MooringRemoveDataStrategy; @@ -283,6 +283,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { strategies.put(ImportType.COMMON_VOYAGE, CommonVoyageRemoveDataStrategy.class); strategies.put(ImportType.COMMON_TRANSIT, CommonTransitRemoveDataStrategy.class); strategies.put(ImportType.COMMON_TRANSECT, CommonTransectRemoveDataStrategy.class); + strategies.put(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, DummyRemoveDataStrategy.class); strategies.put(ImportType.OPERATION, OperationRemoveDataStrategy.class); strategies.put(ImportType.CATCHES, CatchesRemoveDataStrategy.class); strategies.put(ImportType.ACOUSTIC, AcousticRemoveDataStrategy.class); @@ -292,9 +293,10 @@ public class RemoveDataService extends EchoBaseServiceSupport { strategies.put(ImportType.RESULT_MAP_OTHER, ResultMapOtherRemoveDataStrategy.class); strategies.put(ImportType.RESULT_REGION, ResultRegionRemoveDataStrategy.class); strategies.put(ImportType.MOORING_COMMONS, MooringRemoveDataStrategy.class); + strategies.put(ImportType.MOORING_ANCILLARY_INSTRUMENTATION, DummyRemoveDataStrategy.class); strategies.put(ImportType.MOORING_ACOUSTIC, MooringAcousticRemoveDataStrategy.class); - strategies.put(ImportType.RESULT_MOORING, DummyMooringRemoveDataStrategy.class); - strategies.put(ImportType.RESULT_MOORING_ESDU, DummyMooringRemoveDataStrategy.class); + strategies.put(ImportType.RESULT_MOORING, DummyRemoveDataStrategy.class); + strategies.put(ImportType.RESULT_MOORING_ESDU, DummyRemoveDataStrategy.class); Preconditions.checkState( ImportType.values().length == strategies.size(), "It miss some remove data strategies..."); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyMooringRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyRemoveDataStrategy.java similarity index 77% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyMooringRemoveDataStrategy.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyRemoveDataStrategy.java index f437124..abf2934 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyMooringRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/DummyRemoveDataStrategy.java @@ -24,7 +24,6 @@ package fr.ifremer.echobase.services.service.removedata.strategy; import com.google.common.collect.Sets; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Mooring; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; @@ -36,20 +35,20 @@ import fr.ifremer.echobase.entities.data.DataAcousticProvider; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class DummyMooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Mooring> { +public class DummyRemoveDataStrategy extends AbstractRemoveDataStrategy { /** Logger. */ - private static final Log log = LogFactory.getLog(DummyMooringRemoveDataStrategy.class); + private static final Log log = LogFactory.getLog(DummyRemoveDataStrategy.class); @Override - public long computeNbSteps(DataAcousticProvider<Mooring> provider, ImportLog importLog) { + public long computeNbSteps(DataAcousticProvider provider, ImportLog importLog) { long result = getImportFileIdsCount(importLog); return result; } @Override - protected void removeImportData(DataAcousticProvider<Mooring> provider, String id) throws TopiaException { + protected void removeImportData(DataAcousticProvider provider, String id) throws TopiaException { } @Override 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 f458efc..6777c35 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 @@ -1,4 +1,5 @@ echobase.acousticImport.cellNotImported=List of not imported esdu cells \:\n%s +echobase.common.ancillaryInstrumentationFile= echobase.common.biometrySampleFile=BiometrySample file echobase.common.cellMapsFile=Map cells file echobase.common.cellPositionReference.end=End @@ -33,6 +34,7 @@ echobase.common.voyageFile=Voyage data file echobase.exportError.toFile=An error occured while exporting file %s \:%s echobase.importError.can.only.import.one.voyage.atime=Impossible to import more that one voyage at a time echobase.importError.dataMetadata.notFound=Metadata column %s missing (existing values \:%s) +echobase.importError.duplicate.echotypeAncillaryInstrumentationAssociation= echobase.importError.duplicate.echotypeSpeciesAssociation=Line %s - Echotype «%s» on voyage named «%s» already contains the species «%s». echobase.importError.duplicate.elementaryCell=Line %s - Elementary cell named «%s» on «%s» already exists in database. echobase.importError.duplicate.esduCell=Line %s - ESDU cell named «%s» on «%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 49f2286..58e0019 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 @@ -1,4 +1,5 @@ echobase.acousticImport.cellNotImported=Liste des cellules ESDU non importées \:\n%s +echobase.common.ancillaryInstrumentationFile= echobase.common.biometrySampleFile=Fichier de biométries (BiometrySample) echobase.common.cellMapsFile=Fichier des cellules Cartes echobase.common.cellPositionReference.end=Fin @@ -33,6 +34,7 @@ echobase.common.voyageFile=Fichier des données de voyages echobase.exportError.toFile=Erreur lors de l'extraction du fichier %s \: %s echobase.importError.can.only.import.one.voyage.atime=Vous ne pouvez pas importer plus d'un voyage à la fois echobase.importError.dataMetadata.notFound=Colonne de métadonnées nommée %s non trouvée (valeurs existantes \: %s) +echobase.importError.duplicate.echotypeAncillaryInstrumentationAssociation= echobase.importError.duplicate.echotypeSpeciesAssociation=Ligne %s - L'échotype «%s» sur la marée nommée «%s» contient déjà l'espèce «%s». echobase.importError.duplicate.elementaryCell=Ligne %s - La cellule élémentaire d'identifiant «%s» sur «%s» existe déjà en base. echobase.importError.duplicate.esduCell=Ligne %s - La cellule ESDU d'identifiant «%s» sur «%s» existe déjà en base. diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java index 1f77e05..bd97004 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java @@ -65,6 +65,14 @@ public class EchoBaseServiceFixtures { return 1; } + public int NB_ANCILLAY_INSTRUMENTATION() { + return 3; + } + + public int NB_PROVIDER_ANCILLAY_INSTRUMENTATION() { + return 2; + } + public int NB_TRANSIT() { return 3; } diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java index 1b6c1bf..b05ab67 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java @@ -38,6 +38,7 @@ import fr.ifremer.echobase.entities.data.SampleData; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; /** * Created on 07/04/16. @@ -147,6 +148,7 @@ public enum ImportDataFixtures { @Override public void assertBeforeImportExisting(FakeEchoBaseServiceContext serviceContext, EchoBaseServiceFixtures fixtures) { serviceContext.assertNbEntities(Mooring.class, fixtures.NB_MOORING_TOTAL()); + serviceContext.assertNbEntities(AncillaryInstrumentation.class, fixtures.NB_ANCILLAY_INSTRUMENTATION()); } }; diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsAncillaryInstrumentationImportServiceIT.java similarity index 53% copy from echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java copy to echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsAncillaryInstrumentationImportServiceIT.java index a74ad8e..721ce55 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsAncillaryInstrumentationImportServiceIT.java @@ -22,8 +22,9 @@ package fr.ifremer.echobase.services.service.importdata; import com.google.common.collect.Iterables; import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import fr.ifremer.echobase.services.ImportDataFixtures; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsAncillaryInstrumentationImportConfiguration; import java.io.IOException; @@ -31,15 +32,15 @@ import java.io.IOException; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringCommonsImportServiceIT extends AbstractImportDataServiceIT<MooringCommonsImportConfiguration> { +public class MooringCommonsAncillaryInstrumentationImportServiceIT extends AbstractImportDataServiceIT<MooringCommonsAncillaryInstrumentationImportConfiguration> { - public MooringCommonsImportServiceIT() { + public MooringCommonsAncillaryInstrumentationImportServiceIT() { super(1); } @Override public ImportDataFixtures getImportDataFixture() { - return ImportDataFixtures.IMPORT_DATA_ECHOBASE_NO_DATA; + return ImportDataFixtures.IMPORT_DATA_ECHOBASE_MOORING; } @Override @@ -48,24 +49,25 @@ public class MooringCommonsImportServiceIT extends AbstractImportDataServiceIT<M } @Override - protected MooringCommonsImportConfiguration createConfiguration() throws IOException { - MooringCommonsImportConfiguration conf = new MooringCommonsImportConfiguration(getLocale()); - prepareInputFile(conf.getMooringFile(), getImportPath("mooring.csv.gz")); + protected MooringCommonsAncillaryInstrumentationImportConfiguration createConfiguration() throws IOException { + MooringCommonsAncillaryInstrumentationImportConfiguration conf = new MooringCommonsAncillaryInstrumentationImportConfiguration(getLocale()); + conf.setMooringId(getMooringId()); + prepareInputFile(conf.getAncillaryInstrumentationFile(), getImportPath("ancillaryInstrumentation.csv.gz")); return conf; } @Override - protected ImportDataService.MooringCommonsImportDataAction newAction() throws IOException { - return new ImportDataService.MooringCommonsImportDataAction(); + protected ImportDataService.MooringCommonsAncillaryInstrumentationImportDataAction newAction() throws IOException { + return new ImportDataService.MooringCommonsAncillaryInstrumentationImportDataAction(); } @Override - protected void assertAfertImport(ImportDataResult<MooringCommonsImportConfiguration> result) throws IOException { - int nbMooring = fixtures.NB_MOORING(); + protected void assertAfertImport(ImportDataResult<MooringCommonsAncillaryInstrumentationImportConfiguration> result) throws IOException { + int nbAncillaryInstrumentation = fixtures.NB_ANCILLAY_INSTRUMENTATION(); + int updated = fixtures.NB_PROVIDER_ANCILLAY_INSTRUMENTATION(); ImportDataFileResult importDataFileResult = Iterables.get(result.getImportResults(), 0); - assertCsvImportResultPerEntity(importDataFileResult, Mooring.class, nbMooring, 0, nbMooring); - assertCsvImportResult0(importDataFileResult, nbMooring); + assertCsvImportResultPerEntity(importDataFileResult, AncillaryInstrumentation.class, 0, updated, nbAncillaryInstrumentation); } } diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsMooringImportServiceIT.java similarity index 74% rename from echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java rename to echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsMooringImportServiceIT.java index a74ad8e..9c49058 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsMooringImportServiceIT.java @@ -23,7 +23,7 @@ package fr.ifremer.echobase.services.service.importdata; import com.google.common.collect.Iterables; import fr.ifremer.echobase.entities.data.Mooring; import fr.ifremer.echobase.services.ImportDataFixtures; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; import java.io.IOException; @@ -31,9 +31,9 @@ import java.io.IOException; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringCommonsImportServiceIT extends AbstractImportDataServiceIT<MooringCommonsImportConfiguration> { +public class MooringCommonsMooringImportServiceIT extends AbstractImportDataServiceIT<MooringCommonsMooringImportConfiguration> { - public MooringCommonsImportServiceIT() { + public MooringCommonsMooringImportServiceIT() { super(1); } @@ -48,19 +48,19 @@ public class MooringCommonsImportServiceIT extends AbstractImportDataServiceIT<M } @Override - protected MooringCommonsImportConfiguration createConfiguration() throws IOException { - MooringCommonsImportConfiguration conf = new MooringCommonsImportConfiguration(getLocale()); + protected MooringCommonsMooringImportConfiguration createConfiguration() throws IOException { + MooringCommonsMooringImportConfiguration conf = new MooringCommonsMooringImportConfiguration(getLocale()); prepareInputFile(conf.getMooringFile(), getImportPath("mooring.csv.gz")); return conf; } @Override - protected ImportDataService.MooringCommonsImportDataAction newAction() throws IOException { - return new ImportDataService.MooringCommonsImportDataAction(); + protected ImportDataService.MooringCommonsMooringImportDataAction newAction() throws IOException { + return new ImportDataService.MooringCommonsMooringImportDataAction(); } @Override - protected void assertAfertImport(ImportDataResult<MooringCommonsImportConfiguration> result) throws IOException { + protected void assertAfertImport(ImportDataResult<MooringCommonsMooringImportConfiguration> result) throws IOException { int nbMooring = fixtures.NB_MOORING(); ImportDataFileResult importDataFileResult = Iterables.get(result.getImportResults(), 0); 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 bdae5bc..d093783 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 @@ -85,7 +85,7 @@ import fr.ifremer.echobase.services.ImportDataFixtures; import fr.ifremer.echobase.services.service.UserDbPersistenceService; 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.MooringCommonsMooringImportConfiguration; 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; @@ -879,8 +879,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS persistenceContext.commit(); - importMooringId = createImport( - new MooringCommonsImportConfiguration(getLocale()), + importMooringId = createImport(new MooringCommonsMooringImportConfiguration(getLocale()), ImportType.MOORING_COMMONS, "Common/Mooring", null, diff --git a/echobase-services/src/test/resources/import-data/echobase-mooring.h2.db.gz b/echobase-services/src/test/resources/import-data/echobase-mooring.h2.db.gz index 32fa1b1..fad04bc 100644 Binary files a/echobase-services/src/test/resources/import-data/echobase-mooring.h2.db.gz and b/echobase-services/src/test/resources/import-data/echobase-mooring.h2.db.gz differ diff --git a/echobase-services/src/test/resources/import-data/mooring/ancillaryInstrumentation.csv.gz b/echobase-services/src/test/resources/import-data/mooring/ancillaryInstrumentation.csv.gz new file mode 100644 index 0000000..a56af0f Binary files /dev/null and b/echobase-services/src/test/resources/import-data/mooring/ancillaryInstrumentation.csv.gz differ diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringCommonsImport.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringCommonsImport.java index 303a951..c1abcb0 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringCommonsImport.java +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureMooringCommonsImport.java @@ -20,7 +20,7 @@ */ package fr.ifremer.echobase.ui.actions.importData; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; import java.io.File; @@ -30,18 +30,18 @@ import java.io.File; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class ConfigureMooringCommonsImport extends AbstractConfigureImport<MooringCommonsImportConfiguration> { +public class ConfigureMooringCommonsImport extends AbstractConfigureImport<MooringCommonsMooringImportConfiguration> { private static final long serialVersionUID = 1L; public ConfigureMooringCommonsImport() { - super(MooringCommonsImportConfiguration.class); + super(MooringCommonsMooringImportConfiguration.class); } @Override - protected MooringCommonsImportConfiguration createModel() { - return new MooringCommonsImportConfiguration(getLocale()); + protected MooringCommonsMooringImportConfiguration createModel() { + return new MooringCommonsMooringImportConfiguration(getLocale()); } public void setMooringFile(File file) { diff --git a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchMooringCommonsImport.java b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchMooringCommonsImport.java index 52b22da..006f606 100644 --- a/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchMooringCommonsImport.java +++ b/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchMooringCommonsImport.java @@ -24,7 +24,7 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.services.service.importdata.ImportDataResult; import fr.ifremer.echobase.services.service.importdata.ImportDataService; import fr.ifremer.echobase.services.service.importdata.ImportException; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; /** * Launch a commons data import for mooring. @@ -32,16 +32,16 @@ import fr.ifremer.echobase.services.service.importdata.configurations.MooringCom * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class LaunchMooringCommonsImport extends AbstractLaunchImport<MooringCommonsImportConfiguration, ImportDataService> { +public class LaunchMooringCommonsImport extends AbstractLaunchImport<MooringCommonsMooringImportConfiguration, ImportDataService> { private static final long serialVersionUID = 1L; public LaunchMooringCommonsImport() { - super(MooringCommonsImportConfiguration.class, ImportDataService.class); + super(MooringCommonsMooringImportConfiguration.class, ImportDataService.class); } @Override - protected ImportDataResult<MooringCommonsImportConfiguration> doImport(ImportDataService service, MooringCommonsImportConfiguration model, EchoBaseUser user) throws ImportException { - return service.doImportMooringCommons(model, user); + protected ImportDataResult<MooringCommonsMooringImportConfiguration> doImport(ImportDataService service, MooringCommonsMooringImportConfiguration model, EchoBaseUser user) throws ImportException { + return service.doImportMooringCommonsMooring(model, user); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm