This is an automated email from the git hooks/post-receive script. New commit to branch feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 59af2e00db8da4026e70caee758118dac54e39cd Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Tue Jun 21 16:23:06 2016 +0200 Introduce entityId in importLog (not working in UI) --- ...{ImportLogs.java => DataAccousticProvider.java} | 32 ++++++++---------- .../fr/ifremer/echobase/entities/ImportLogs.java | 4 +-- .../fr/ifremer/echobase/entities/ImportType.java | 20 +++++++---- .../WorkingDbMigrationCallBackForVersion3_906.java | 33 ++++++++++++++++++ .../h2/3.906-0-update-importLog-entityId.sql | 1 + .../pg/3.906-0-update-importLog-entityId.sql | 1 + echobase-domain/src/main/xmi/echobase.properties | 2 +- echobase-domain/src/main/xmi/echobase.zargo | Bin 98231 -> 98213 bytes .../services/service/UserDbPersistenceService.java | 8 +++-- .../service/importdata/ImportDataService.java | 2 +- .../actions/ImportDataActionSupport.java | 3 ++ .../actions/MooringCommonsMooringImportAction.java | 1 + .../actions/VoyageCommonsVoyageImportAction.java | 2 +- .../MooringAcousticsImportConfiguration.java | 12 +------ .../MooringCommonsImportConfiguration.java | 2 +- ... => MooringImportDataConfigurationSupport.java} | 27 +++++---------- .../MooringAcousticsImportDataContext.java | 2 +- .../contexts/MooringCommonsImportDataContext.java | 2 +- ...t.java => MooringImportDataContextSupport.java} | 16 ++++++--- .../contexts/VoyageImportDataContextSupport.java | 2 +- .../strategy/AbstractImportDbStrategy.java | 37 +++++++++++---------- .../importdb/strategy/FreeImportDbStrategy.java | 22 +++++++++--- .../strategy/ReferentialImportDbStrategy.java | 3 +- .../service/removedata/RemoveDataService.java | 34 +++++++++++-------- .../strategy/AbstractRemoveDataStrategy.java | 20 ++++++----- .../strategy/AcousticRemoveDataStrategy.java | 13 +++++--- .../strategy/CatchesRemoveDataStrategy.java | 7 ++-- .../strategy/CommonAllRemoveDataStrategy.java | 10 +++--- .../strategy/CommonTransectRemoveDataStrategy.java | 13 +++++--- .../strategy/CommonTransitRemoveDataStrategy.java | 14 +++++--- .../strategy/CommonVoyageRemoveDataStrategy.java | 11 +++--- .../strategy/LegacyVoyageRemoveDataStrategy.java | 10 +++--- .../strategy/OperationRemoveDataStrategy.java | 7 ++-- .../strategy/ResultEsduRemoveDataStrategy.java | 7 ++-- .../strategy/ResultMapFishRemoveDataStrategy.java | 8 +++-- .../strategy/ResultMapOtherRemoveDataStrategy.java | 8 +++-- .../strategy/ResultRegionRemoveDataStrategy.java | 8 +++-- .../strategy/ResultVoyageRemoveDataStrategy.java | 13 +++++--- .../removedata/AbstractRemoveDataServiceTest.java | 2 +- 39 files changed, 253 insertions(+), 166 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java similarity index 56% copy from echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java copy to echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java index a1515ba..60e298e 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAccousticProvider.java @@ -1,5 +1,7 @@ package fr.ifremer.echobase.entities; +import org.nuiton.topia.persistence.TopiaEntity; + /* * #%L * EchoBase :: Domain @@ -21,27 +23,19 @@ package fr.ifremer.echobase.entities; * #L% */ -import com.google.common.base.Function; - /** - * Created on 1/21/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 2.9 + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 */ -public class ImportLogs { +public class DataAccousticProvider<E extends TopiaEntity> { - public static final Function<ImportLog, String> IMPORT_LOG_VOYAGE_ID = new Function<ImportLog, String>() { - @Override - public String apply(ImportLog input) { - return input.getVoyageId(); - } - }; + protected E entity; + + public DataAccousticProvider(E entity) { + this.entity = entity; + } - public static final Function<ImportLog, ImportType> IMPORT_LOG_IMPORT_TYPE = new Function<ImportLog, ImportType>() { - @Override - public ImportType apply(ImportLog input) { - return input.getImportType(); - } - }; + public E getEntity() { + return entity; + } } diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java index a1515ba..9d3b0aa 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportLogs.java @@ -31,10 +31,10 @@ import com.google.common.base.Function; */ public class ImportLogs { - public static final Function<ImportLog, String> IMPORT_LOG_VOYAGE_ID = new Function<ImportLog, String>() { + public static final Function<ImportLog, String> IMPORT_LOG_ENTITY_ID = new Function<ImportLog, String>() { @Override public String apply(ImportLog input) { - return input.getVoyageId(); + return input.getEntityId(); } }; diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java index 03c6063..dbbbd07 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java @@ -65,10 +65,6 @@ public enum ImportType implements I18nAble { ACOUSTIC(n("echobase.common.importType.acoustic"), n("echobase.common.importType.acoustic.short")), - /** Import accoustic data (Cells ESDU and Elementary). */ - MOORING_ACOUSTIC(n("echobase.common.importType.acoustic"), - n("echobase.common.importType.acoustic.short")), - /** Import results at voyage level. */ RESULT_VOYAGE(n("echobase.common.importType.resultsVoyage"), n("echobase.common.importType.resultsVoyage.short")), @@ -88,10 +84,22 @@ public enum ImportType implements I18nAble { /** Import cells Map Other. */ RESULT_MAP_OTHER(n("echobase.common.importType.resultsMapOther"), n("echobase.common.importType.resultsMapOther.short")), - + /** Import mooring data. */ MOORING(n("echobase.common.importType.mooring"), - n("echobase.common.importType.mooring.short")); + n("echobase.common.importType.mooring.short")), + + /** Import accoustic data (Cells ESDU and Elementary). */ + MOORING_ACOUSTIC(n("echobase.common.importType.acoustic"), + n("echobase.common.importType.acoustic.short")), + + /** Import results at voyage level. */ + RESULT_MOORING(n("echobase.common.importType.resultsMooring"), + n("echobase.common.importType.resultsMooring.short")), + + /** Import esdu results by echotype. */ + RESULT_MOORING_ESDU(n("echobase.common.importType.resultsMooringEsdu"), + n("echobase.common.importType.resultsMooringEsdu.short")); /** * All common import types. diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java new file mode 100644 index 0000000..db2bb82 --- /dev/null +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_906.java @@ -0,0 +1,33 @@ +package fr.ifremer.echobase.persistence.migration.workingDb; + +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; +import org.nuiton.version.Version; +import org.nuiton.version.Versions; + +import java.util.List; + +/** + * Created on 26/04/16. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class WorkingDbMigrationCallBackForVersion3_906 extends WorkingDbMigrationCallBackForVersionSupport { + + @Override + public Version getVersion() { + return Versions.valueOf("3.906"); + } + + @Override + protected void prepareMigrationScript(TopiaSqlSupport sqlSupport, + List<String> queries, + boolean showSql, + boolean showProgression) throws TopiaException { + + // update the model structure + addSpecificScript("3.906-0-update-importLog-entityId.sql", queries); + } + +} diff --git a/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql b/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql new file mode 100644 index 0000000..65f7962 --- /dev/null +++ b/echobase-domain/src/main/resources/migration/workingDb/h2/3.906-0-update-importLog-entityId.sql @@ -0,0 +1 @@ +alter table importlog alter column voyageId rename to entityId; diff --git a/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql b/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql new file mode 100644 index 0000000..a2cdb5d --- /dev/null +++ b/echobase-domain/src/main/resources/migration/workingDb/pg/3.906-0-update-importLog-entityId.sql @@ -0,0 +1 @@ +alter table importlog rename column voyageId to entityId; diff --git a/echobase-domain/src/main/xmi/echobase.properties b/echobase-domain/src/main/xmi/echobase.properties index 748abc6..1e9d25a 100644 --- a/echobase-domain/src/main/xmi/echobase.properties +++ b/echobase-domain/src/main/xmi/echobase.properties @@ -23,7 +23,7 @@ model.tagValue.notGenerateToString=true model.tagValue.generateOperatorForDAOHelper=true -model.tagValue.version=3.905 +model.tagValue.version=3.906 model.tagValue.generatePropertyChangeSupport=false model.tagValue.generateBooleanGetMethods=false model.tagValue.indexForeignKeys=true diff --git a/echobase-domain/src/main/xmi/echobase.zargo b/echobase-domain/src/main/xmi/echobase.zargo index 0be020a..33aa4f5 100644 Binary files a/echobase-domain/src/main/xmi/echobase.zargo and b/echobase-domain/src/main/xmi/echobase.zargo differ diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index 0a09691..aeb556a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -373,6 +373,10 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { return persistenceContext.getDataMetadataDao().forNameIn(names).findAll(); } + public TopiaEntity getEntity(String id) { + return persistenceContext.findByTopiaId(id); + } + public CoserIndicators getRegionIndicators(String missionId, List<DataMetadata> dataMetadatas) { if (log.isInfoEnabled()) { @@ -659,9 +663,9 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { } - public boolean isImportLogForVoyageExists(String voyageId, String importLogId) { + public boolean isImportLogFor(String entityId, String importLogId) { ImportLogTopiaDao importLogDao = persistenceContext.getImportLogDao(); - return importLogDao.forVoyageIdEquals(voyageId) + return importLogDao.forEntityIdEquals(entityId) .addNotEquals(ImportLog.PROPERTY_TOPIA_ID, importLogId) .addEquals(ImportLog.PROPERTY_IMPORT_TYPE, ImportType.RESULT_VOYAGE) .exists(); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java index ecadd50..3bd0d86 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java @@ -212,7 +212,7 @@ public class ImportDataService extends EchoBaseServiceSupport { case RESULT_VOYAGE: { // check if there is a such same import on this voyage (with a different id) String importLogId = importDataContext.getImportLog().getTopiaId(); - boolean importExists = persistenceService.isImportLogForVoyageExists(configuration.getVoyageId(), importLogId); + boolean importExists = persistenceService.isImportLogFor(configuration.getVoyageId(), importLogId); if (importExists) { if (log.isWarnEnabled()) { log.warn("there is already a voyage result import for this voyage, won't import."); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java index 3f0514b..5658c02 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java @@ -66,6 +66,9 @@ import static org.nuiton.i18n.I18n.l; * Created on 25/03/16. * * @author Tony Chemit - chemit@codelutin.com + * @param <M> Configuration from client + * @param <C> Database context + * @param <E> Model of the lines in cvs */ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationSupport, C extends ImportDataContextSupport<M>, E> implements Closeable { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java index 3aea32e..3c1320c 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java @@ -86,6 +86,7 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA Mooring createdMooring = persistenceService.createMooring(mooring); addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); + addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); addProcessedRow(result, createdMooring); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java index af03699..76fbb5d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsVoyageImportAction.java @@ -125,7 +125,7 @@ public class VoyageCommonsVoyageImportAction extends VoyageCommonsImportDataActi // push back to id of the voyage in configuration for next imports getConfiguration().setVoyageId(newVoyage.getTopiaId()); - importDataContext.getImportLog().setVoyageId(newVoyage.getTopiaId()); + importDataContext.getImportLog().setEntityId(newVoyage.getTopiaId()); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java index 75707d3..2f57da4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringAcousticsImportConfiguration.java @@ -35,13 +35,11 @@ import static org.nuiton.i18n.I18n.l; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.5 */ -public class MooringAcousticsImportConfiguration extends ImportDataConfigurationSupport { +public class MooringAcousticsImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; /** Movies file to import. */ protected final InputFile moviesFile; - /** Selected mooring id to find where to import datas. */ - protected String mooringId; /** Flag to always add new dataAcquisition when a new instrument is found in movies file. */ protected boolean addDataAcquisition = true; /** Manual transceiverAcquisitionAbsorptionDescription. */ @@ -81,14 +79,6 @@ public class MooringAcousticsImportConfiguration extends ImportDataConfiguration importType = ImportType.MOORING_ACOUSTIC; } - public String getMooringId() { - return mooringId; - } - - public void setMooringId(String mooringId) { - this.mooringId = mooringId; - } - public boolean isAddDataAcquisition() { return addDataAcquisition; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java index 87907db..21792af 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java @@ -31,7 +31,7 @@ import static org.nuiton.i18n.I18n.l; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportConfiguration extends ImportDataConfigurationSupport { +public class MooringCommonsImportConfiguration extends MooringImportDataConfigurationSupport { private static final long serialVersionUID = 1L; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java similarity index 59% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java index 87907db..75f0fa4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringCommonsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/MooringImportDataConfigurationSupport.java @@ -20,34 +20,25 @@ */ package fr.ifremer.echobase.services.service.importdata.configurations; -import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.io.InputFile; -import java.util.Locale; -import static org.nuiton.i18n.I18n.l; - /** - * Configuration mooring import. + * Common import data configuration for mooring. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportConfiguration extends ImportDataConfigurationSupport { +public abstract class MooringImportDataConfigurationSupport extends ImportDataConfigurationSupport { private static final long serialVersionUID = 1L; - - protected final InputFile mooringFile; - public MooringCommonsImportConfiguration(Locale locale) { - mooringFile = InputFile.newFile(l(locale, "echobase.common.mooringFile")); - importType = ImportType.MOORING; - } + /** Selected mooring id where to import datas. */ + protected String mooringId; - public InputFile getMooringFile() { - return mooringFile; + public String getMooringId() { + return mooringId; } - @Override - public InputFile[] getInputFiles() { - return new InputFile[]{mooringFile}; + public void setMooringId(String mooringId) { + this.mooringId = mooringId; } + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java index 19273b2..c5e1295 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringAcousticsImportDataContext.java @@ -33,7 +33,7 @@ import java.util.Locale; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.5 */ -public class MooringAcousticsImportDataContext extends ImportDataContextSupport<MooringAcousticsImportConfiguration> { +public class MooringAcousticsImportDataContext extends MooringImportDataContextSupport<MooringAcousticsImportConfiguration> { private Mooring mooring; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java index a63cee1..8dbb9eb 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java @@ -32,7 +32,7 @@ import java.util.Locale; * @author Julien Ruchaud - ruchaud@codelutin.com * @since 0.4 */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +public class MooringCommonsImportDataContext extends MooringImportDataContextSupport<MooringCommonsImportConfiguration> { public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { super(persistenceService, locale, csvSeparator, configuration, user, importDate); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java similarity index 65% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java index a63cee1..5b7e825 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringCommonsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/MooringImportDataContextSupport.java @@ -22,20 +22,28 @@ package fr.ifremer.echobase.services.service.importdata.contexts; */ import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.services.service.UserDbPersistenceService; -import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringImportDataConfigurationSupport; import java.util.Date; import java.util.Locale; /** + * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 */ -public class MooringCommonsImportDataContext extends ImportDataContextSupport<MooringCommonsImportConfiguration> { +class MooringImportDataContextSupport<C extends MooringImportDataConfigurationSupport> extends ImportDataContextSupport<C> { - public MooringCommonsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, MooringCommonsImportConfiguration configuration, EchoBaseUser user, Date importDate) { + public MooringImportDataContextSupport(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, C configuration, EchoBaseUser user, Date importDate) { super(persistenceService, locale, csvSeparator, configuration, user, importDate); } + @Override + protected final ImportLog createImportLog(Date importDate) { + ImportLog importLog = super.createImportLog(importDate); + importLog.setEntityId(configuration.getMooringId()); + return importLog; + } + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java index b4b5dca..c2c2f92 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageImportDataContextSupport.java @@ -72,7 +72,7 @@ class VoyageImportDataContextSupport<C extends VoyageImportDataConfigurationSupp @Override protected final ImportLog createImportLog(Date importDate) { ImportLog importLog = super.createImportLog(importDate); - importLog.setVoyageId(configuration.getVoyageId()); + importLog.setEntityId(configuration.getVoyageId()); return importLog; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java index 9674839..31131e1 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java @@ -23,6 +23,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; @@ -51,10 +52,12 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.nuiton.topia.persistence.TopiaEntity; /** * Abstract import db strategy. @@ -137,7 +140,7 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { 1000 ); - Iterable<Voyage> importedVoyages = importTables(strategy, + List<DataAccousticProvider> importedEntities = importTables(strategy, model, zipFile, tables @@ -150,11 +153,9 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { log.info("Import done with user " + user.getEmail()); } - if (importedVoyages != null && - !Iterables.isEmpty(importedVoyages)) { - - createImportLogEntry(user, file, importedVoyages); - + if (importedEntities != null && + !Iterables.isEmpty(importedEntities)) { + createImportLogEntry(user, file, importedEntities); } createLogBookEntry(user, file); @@ -177,28 +178,29 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { protected abstract void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) throws TopiaException; + List<DataAccousticProvider> importedEntities) throws TopiaException; protected abstract void createLogBookEntry(EchoBaseUser user, File file) throws TopiaException; - protected Iterable<Voyage> importTables(ImportStrategy<EchoBaseUserEntityEnum> strategy, + protected List<DataAccousticProvider> importTables(ImportStrategy<EchoBaseUserEntityEnum> strategy, ImportDbConfiguration model, ZipFile zipFile, Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entriestoConsume) throws IOException, TopiaException { boolean commitAfterEachFile = model.isCommitAfterEachFile(); - Iterable<Voyage> result = null; + List<DataAccousticProvider> result = new ArrayList<>(); for (Map.Entry<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entry : entriestoConsume.entrySet()) { TableMeta<EchoBaseUserEntityEnum> entryDef = entry.getKey(); + EchoBaseUserEntityEnum source = entryDef.getSource(); ZipEntry value = entry.getValue(); + CsvImportResult<EchoBaseUserEntityEnum> csvResult = - CsvImportResult.newResult( - entryDef.getSource(), + CsvImportResult.newResult(source, value.getName(), false, model @@ -214,12 +216,13 @@ public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport { log.info("Will import " + entryDef); } - if (EchoBaseUserEntityEnum.Voyage == entryDef.getSource()) { - result = TopiaCsvImports.importTableAndReturn(reader, - strategy, - entryDef, - csvResult - ); + if (EchoBaseUserEntityEnum.Voyage == source || EchoBaseUserEntityEnum.Mooring == source) { + Iterable<TopiaEntity> importEntities = TopiaCsvImports.importTableAndReturn(reader, strategy, entryDef, csvResult); + for (TopiaEntity importEntity : importEntities) { + DataAccousticProvider dataAccousticProvider = new DataAccousticProvider(importEntity); + result.add(dataAccousticProvider); + } + } else { TopiaCsvImports.importTable(reader, strategy, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java index 1afc7eb..fe64c1d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; @@ -37,8 +38,10 @@ import org.nuiton.topia.persistence.metadata.TableMeta; import javax.inject.Inject; import java.io.File; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; +import org.nuiton.topia.persistence.TopiaEntity; /** * Free import db strategy (can import either referential or/and data). @@ -66,20 +69,29 @@ public class FreeImportDbStrategy extends AbstractImportDbStrategy { @Override protected void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) throws TopiaException { + List<DataAccousticProvider> importedEntities) throws TopiaException { Date date = newDate(); Decorator<Voyage> decorator = decoratorService.getDecorator(Voyage.class, null); - for (Voyage importedVoyage : importedVoyages) { + for (DataAccousticProvider provider : importedEntities) { + TopiaEntity entity = provider.getEntity(); + String topiaId = entity.getTopiaId(); + ImportType type; + if (topiaId.startsWith(Voyage.class.getName())) { + type = ImportType.VOYAGE; + } else { + type = ImportType.MOORING; + } + // create a importLog entry ImportLog importLog = persistenceService.createImportLog( - ImportType.VOYAGE, + type, user.getEmail(), date, - "Import voyage " + decorator.toString(importedVoyage) + " from file " + file.getName() + "Import voyage " + decorator.toString(entity) + " from file " + file.getName() ); - importLog.setVoyageId(importedVoyage.getTopiaId()); + importLog.setEntityId(topiaId); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java index 890f1d2..1f23900 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.importdb.strategy; */ import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; @@ -86,7 +87,7 @@ public class ReferentialImportDbStrategy extends AbstractImportDbStrategy { @Override protected void createImportLogEntry(EchoBaseUser user, File file, - Iterable<Voyage> importedVoyages) { + List<DataAccousticProvider> importedEntities) { // no importLog entry to add } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java index fbcd454..852df35 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java @@ -26,12 +26,12 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ImportFile; import fr.ifremer.echobase.entities.ImportFileId; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.service.DecoratorService; import fr.ifremer.echobase.services.service.UserDbPersistenceService; @@ -61,6 +61,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import org.nuiton.topia.persistence.TopiaEntity; /** * Service to remove an import data. @@ -80,7 +81,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { public static final Comparator<ImportLog> IMPORT_LOG_COMPARATOR = new Comparator<ImportLog>() { @Override public int compare(ImportLog o1, ImportLog o2) { - int result = o1.getVoyageId().compareTo(o2.getVoyageId()); + int result = o1.getEntityId().compareTo(o2.getEntityId()); if (result == 0) { result = o1.getImportType().ordinal() - o2.getImportType().ordinal(); } @@ -99,16 +100,16 @@ public class RemoveDataService extends EchoBaseServiceSupport { final AbstractRemoveDataStrategy strategy; - final Voyage voyage; + final DataAccousticProvider provider; public ImportContext(String importLogId, long nbSteps, AbstractRemoveDataStrategy strategy, - Voyage voyage) { + DataAccousticProvider provider) { this.importLogId = importLogId; this.nbSteps = nbSteps; this.strategy = strategy; - this.voyage = voyage; + this.provider = provider; } } @@ -130,15 +131,22 @@ public class RemoveDataService extends EchoBaseServiceSupport { Optional<ImportLog> optionalImportLog = persistenceService.getOptionalImportLog(id); if (optionalImportLog.isPresent()) { - ImportLog importLog = optionalImportLog.get(); - Class<? extends AbstractRemoveDataStrategy> strategyType = - getStrategy(importLog); + Class<? extends AbstractRemoveDataStrategy> strategyType = getStrategy(importLog); + AbstractRemoveDataStrategy strategy = newService(strategyType); strategy.setProgressModel(model); - Voyage voyage = persistenceService.getVoyage(importLog.getVoyageId()); - long l = strategy.computeNbSteps(voyage, importLog); - ImportContext importContext = new ImportContext(id, l + 3, strategy, voyage); + + DataAccousticProvider provider = null; + String entityId = importLog.getEntityId(); + if (entityId != null) { + TopiaEntity entity = persistenceService.getEntity(entityId); + provider = new DataAccousticProvider(entity); + } + + long l = strategy.computeNbSteps(provider, importLog); + + ImportContext importContext = new ImportContext(id, l + 3, strategy, provider); toTreat.put(importLog, importContext); if (log.isInfoEnabled()) { log.info("Nb steps for importLog " + id + ": " + l); @@ -183,7 +191,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { long s0 = TimeLog.getTime(); try { - strategy.doRemove(importContext.voyage, importLog); + strategy.doRemove(importContext.provider, importLog); } catch (TopiaException e) { throw new EchoBaseTechnicalException("Could not remove data", e); } @@ -223,7 +231,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { continue; } - if (!importLog.getVoyageId().equals(logEntry.getVoyageId())) { + if (!importLog.getEntityId().equals(logEntry.getEntityId())) { // not on same voyage, this importLog can not be obsoleted continue; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java index 45b9896..f2bd49d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java @@ -24,6 +24,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; import com.google.common.base.Optional; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportFile; import fr.ifremer.echobase.entities.ImportFileId; import fr.ifremer.echobase.entities.ImportLog; @@ -43,6 +44,7 @@ import javax.inject.Inject; import java.util.Collection; import java.util.List; import java.util.Set; +import org.nuiton.topia.persistence.TopiaEntity; /** * Abstract service to remove import data. @@ -50,7 +52,7 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport { +public abstract class AbstractRemoveDataStrategy<E extends TopiaEntity> extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = @@ -88,16 +90,16 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport this.progressModel = progressModel; } - public abstract long computeNbSteps(Voyage voyage, ImportLog importLog); + public abstract long computeNbSteps(DataAccousticProvider<E> provider, ImportLog importLog); - protected abstract void removeImportData(Voyage voyage, + protected abstract void removeImportData(DataAccousticProvider<E> provider, String id) throws TopiaException; public abstract Set<ImportType> getPossibleSubImportType(); - public void doRemove(Voyage voyage, ImportLog importLog) throws TopiaException { + public void doRemove(DataAccousticProvider<E> provider, ImportLog importLog) throws TopiaException { - removePreDataInVoyage(voyage); + removePreData(provider); persistenceService.flush(); @@ -111,7 +113,7 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport boolean exists = persistenceService.isIdExists(importId); if (exists) { try { - removeImportData(voyage, importId); + removeImportData(provider, importId); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } @@ -125,18 +127,18 @@ public abstract class AbstractRemoveDataStrategy extends EchoBaseServiceSupport persistenceService.flush(); - removePostDataInVoyage(voyage); + removePostData(provider); persistenceService.flush(); } long opIndex; - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<E> provider) throws TopiaException { // by default nothing to remove } - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<E> provider) throws TopiaException { // by default nothing to remove } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java index cfce8d2..85fc991 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -43,14 +44,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(AcousticRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,8 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -76,14 +79,14 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(DataAcquisition.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java index 5730677..e912f11 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Operation; @@ -41,19 +42,19 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CatchesRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CatchesRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CatchesRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Sample.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java index a4b6f64..082a979 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; @@ -39,21 +40,22 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonAllRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,7 @@ public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java index dc64ee8..720aa4a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transect; @@ -41,14 +42,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -64,7 +66,8 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -74,14 +77,14 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Transect.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java index 62d10c8..41228ed 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transit; @@ -40,14 +41,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -63,7 +65,8 @@ public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); // remove all cell results removeVoyageCellResults(voyage); @@ -73,14 +76,15 @@ public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy } @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Transit.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java index 2de98c1..45d0501 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transit; @@ -40,21 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { - + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -67,7 +68,7 @@ public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java index e2281a3..480b237 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; @@ -39,21 +40,22 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(LegacyVoyageRemoveDataStrategy.class); @Override - protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells removeVoyageOrphanCells(); } @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -66,7 +68,7 @@ public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Voyage.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java index 6e8f0db..05d8115 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.GearMetadataValue; @@ -43,20 +44,20 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class OperationRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class OperationRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(OperationRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(OperationMetadataValue.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java index 3d28f18..3d7ee95 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -41,20 +42,20 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultEsduRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultEsduRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultEsduRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { if (id.startsWith(Result.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java index eac2068..b202f1b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultMapFishRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultMapFishRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultMapFishRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java index 3cdcc0b..f797603 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 2.2 */ -public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultMapFishRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java index 1977093..ba1192d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #L% */ +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Cell; @@ -40,20 +41,21 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultRegionRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultRegionRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultRegionRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { return getImportFileIdsCount(importLog); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Cell.class.getName())) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java index 5908730..607be3e 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; */ import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.DataAccousticProvider; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Category; @@ -45,14 +46,15 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ private static final Log log = LogFactory.getLog(ResultVoyageRemoveDataStrategy.class); @Override - public long computeNbSteps(Voyage voyage, ImportLog importLog) { + public long computeNbSteps(DataAccousticProvider<Voyage> provider, ImportLog importLog) { + Voyage voyage = provider.getEntity(); long result = getImportFileIdsCount(importLog); @@ -65,15 +67,16 @@ public class ResultVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { } @Override - protected void removePreDataInVoyage(final Voyage voyage) throws TopiaException { + protected void removePreData(DataAccousticProvider<Voyage> provider) throws TopiaException { + Voyage voyage = provider.getEntity(); removeVoyageCellResults(voyage); - removeVoyagePostCell(voyage); } @Override - protected void removeImportData(Voyage voyage, String id) throws TopiaException { + protected void removeImportData(DataAccousticProvider<Voyage> provider, String id) throws TopiaException { + Voyage voyage = provider.getEntity(); if (id.startsWith(Echotype.class.getName())) { diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java index a114b7b..ab569df 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java @@ -856,7 +856,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS createFakeUser().getEmail(), newDate(), importNote); - importLog.setVoyageId(voyageId); + importLog.setEntityId(voyageId); InputFile fakeInputFile = InputFile.newFile("Fake import: " + importConf); try { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.