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>.