This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit df5c305940ab6f45cd9865c5dfacb9aaa8c69d4c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun May 1 12:44:12 2016 +0200 Ajout de SpeciesCategory#lengthClass dans le cache de SpeciesCategory + renommage de l'import concerné (See #8297) --- .../echobase/services/csv/EchoBaseCsvUtil.java | 2 +- .../services/service/UserDbPersistenceService.java | 4 + .../service/importdata/ImportDataService.java | 6 +- .../service/importdata/ResultCategoryCache.java | 2 + .../service/importdata/SpeciesCategoryCache.java | 6 +- .../VoyageCatchesBiometrySampleImportAction.java | 2 +- .../VoyageCatchesSubSampleImportAction.java | 2 +- .../VoyageCatchesTotalSampleImportAction.java | 2 +- ...ndSpeciesCategoryAndLengthCellImportAction.java | 71 +++++++++++++++ ...EchotypeAndSpeciesCategoryCellImportAction.java | 1 + ...sEsduSpeciesAndAgeCategoryCellImportAction.java | 2 +- ...EsduSpeciesAndSizeCategoryCellImportAction.java | 63 ------------- .../VoyageResultsMapFishCellImportAction.java | 1 + .../VoyageResultsRegionResultsImportAction.java | 1 + ...geResultsVoyageLengthWeightKeyImportAction.java | 2 +- .../VoyageResultsImportConfiguration.java | 12 +-- ...dSpeciesCategoryAndLengthImportExportModel.java | 100 +++++++++++++++++++++ ...otypeAndSpeciesCategoryAndLengthImportRow.java} | 31 ++++++- ...chotypeAndSpeciesCategoryImportExportModel.java | 4 +- ...yageResultsEsduByEchotypeImportExportModel.java | 4 +- ...duBySpeciesAndAgeCategoryImportExportModel.java | 4 +- ...uBySpeciesAndSizeCategoryImportExportModel.java | 93 ------------------- .../i18n/echobase-services_en_GB.properties | 2 +- .../i18n/echobase-services_fr_FR.properties | 2 +- ...ndSpeciesCategoryAndLengthImportServiceIT.java} | 12 +-- ...> byEchotypeAndSpeciesCategoryAndLength.csv.gz} | Bin ...chotypeAndSpeciesCategoryAndLength_small.csv.gz | Bin 0 -> 2584 bytes .../esdu/bySpeciesAndSizeCategory_small.csv.gz | Bin 2544 -> 0 bytes 28 files changed, 240 insertions(+), 191 deletions(-) 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 8fbe18a..77d339f 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 @@ -221,7 +221,7 @@ public class EchoBaseCsvUtil extends TopiaCsvCommons { @Override public String apply(Echotype input) { - return input.getName(); + return input == null ? "" : input.getName(); } } ); 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 0161d7a..63c3cf8 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 @@ -834,11 +834,13 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { //------------------------------------------------------------------------// public SpeciesCategory getSpeciesCategory(Species species, + Float lengthClass, SizeCategory sizeCategory, AgeCategory ageCategory, SexCategory sexCategory) { return persistenceContext.getSpeciesCategoryDao().forProperties( SpeciesCategory.PROPERTY_SPECIES, species, + SpeciesCategory.PROPERTY_LENGTH_CLASS, lengthClass, SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory @@ -846,11 +848,13 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { } public SpeciesCategory createSpeciesCategory(Species species, + Float lengthClass, SizeCategory sizeCategory, AgeCategory ageCategory, SexCategory sexCategory) { return persistenceContext.getSpeciesCategoryDao().create( SpeciesCategory.PROPERTY_SPECIES, species, + SpeciesCategory.PROPERTY_LENGTH_CLASS, lengthClass, SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory 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 44d89e7..067c44e 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 @@ -22,7 +22,7 @@ import fr.ifremer.echobase.services.service.importdata.actions.VoyageOperationsO import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsEsduByEchotypeCellImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction; -import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction; +import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsMapFishCellImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsMapOtherCellImportAction; import fr.ifremer.echobase.services.service.importdata.actions.VoyageResultsRegionAssociationImportAction; @@ -214,9 +214,9 @@ public class ImportDataService extends EchoBaseServiceSupport { } - if (configuration.getEsduBySpeciesAndSizeCategoryFile().hasFile()) { + if (configuration.getEsduByEchotypeAndSpeciesCategoryAndLengthFile().hasFile()) { - importActions.add(new VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction(importDataContext)); + importActions.add(new VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction(importDataContext)); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultCategoryCache.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultCategoryCache.java index 5d8328d..254a8a5 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultCategoryCache.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultCategoryCache.java @@ -37,11 +37,13 @@ public class ResultCategoryCache { public Category getResultCategory(Echotype echotype, Species species, + Float lengthClass, SizeCategory sizeCategory, AgeCategory ageCategory, ImportDataFileResult importResult) { SpeciesCategory speciesCategory = speciesCategoryCache.getSpeciesCategory(species, + lengthClass, sizeCategory, ageCategory, null, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SpeciesCategoryCache.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SpeciesCategoryCache.java index b83df5b..bca7459 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SpeciesCategoryCache.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SpeciesCategoryCache.java @@ -33,6 +33,7 @@ public class SpeciesCategoryCache { } public SpeciesCategory getSpeciesCategory(Species species, + Float lengthClass, SizeCategory sizeCategory, AgeCategory ageCategory, SexCategory sexCategory, @@ -40,6 +41,7 @@ public class SpeciesCategoryCache { String key = species == null ? "" : species.getBaracoudaCode() + + "#" + (lengthClass == null ? "" : lengthClass) + "#" + (ageCategory == null ? "" : ageCategory.getName()) + "#" + (sizeCategory == null ? "" : sizeCategory.getName()) + "#" + (sexCategory == null ? "" : sexCategory.getName()); @@ -53,7 +55,7 @@ public class SpeciesCategoryCache { log.info("Species category (" + key + ") not found in cache."); } - category = persistenceService.getSpeciesCategory(species, sizeCategory, ageCategory, sexCategory); + category = persistenceService.getSpeciesCategory(species, lengthClass, sizeCategory, ageCategory, sexCategory); if (category == null) { @@ -61,7 +63,7 @@ public class SpeciesCategoryCache { if (log.isInfoEnabled()) { log.info("Species category (" + key + ") not found in database, create it."); } - category = persistenceService.createSpeciesCategory(species, sizeCategory, ageCategory, sexCategory); + category = persistenceService.createSpeciesCategory(species, lengthClass, sizeCategory, ageCategory, sexCategory); importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.SpeciesCategory); } else { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java index ebb2c3d..be86dbd 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java @@ -91,7 +91,7 @@ public class VoyageCatchesBiometrySampleImportAction extends VoyageCatchesImport sample.setSampleType(sampleTypeIndividual); - SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, null, null, null, result); + SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, null, null, null, null, result); sample.setSpeciesCategory(category); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java index 495eafe..2eaacbd 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java @@ -88,7 +88,7 @@ public class VoyageCatchesSubSampleImportAction extends VoyageCatchesImportDataA SizeCategory sizeCategory = row.getSizeCategory(); SexCategory sexCategory = row.getSexCategory(); - SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, sizeCategory, null, sexCategory, result); + SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, null, sizeCategory, null, sexCategory, result); // find the sample with this category Sample sample = operation.getSample(category, sampleTypeSubsample); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesTotalSampleImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesTotalSampleImportAction.java index eaab648..7d0cfba 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesTotalSampleImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesTotalSampleImportAction.java @@ -88,7 +88,7 @@ public class VoyageCatchesTotalSampleImportAction extends VoyageCatchesImportDat Species species = row.getSpecies(); SizeCategory sizeCategory = row.getSizeCategory(); - SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, sizeCategory, null, null, result); + SpeciesCategory category = speciesCategoryCache.getSpeciesCategory(species, null, sizeCategory, null, null, result); SampleType sampleType; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction.java new file mode 100644 index 0000000..99314d0 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction.java @@ -0,0 +1,71 @@ +package fr.ifremer.echobase.services.service.importdata.actions; + +import com.google.common.base.Preconditions; +import fr.ifremer.echobase.entities.data.Category; +import fr.ifremer.echobase.entities.data.Cell; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.SizeCategory; +import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; +import fr.ifremer.echobase.services.service.importdata.MismatchSizeCategoryMeaningException; +import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; +import fr.ifremer.echobase.services.service.importdata.SizeCategoryCache; +import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; +import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel; +import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow; + +import java.util.List; + +/** + * Created on 25/03/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction extends VoyageResultsCellImportDataActionSupport<VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow> { + + protected SizeCategoryCache sizeCategoryCache; + + public VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthCellImportAction(VoyageResultsImportDataContext importDataContext) { + super(importDataContext, importDataContext.getConfiguration().getEsduByEchotypeAndSpeciesCategoryAndLengthFile(), VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + this.sizeCategoryCache = importDataContext.getSizeCategoryCache(); + } + + @Override + protected VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel createCsvImportModel(VoyageResultsImportDataContext importDataContext) { + return VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.forImport(importDataContext, metas); + } + + @Override + protected VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel createCsvExportModel(VoyageResultsImportDataContext importDataContext) { + return VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.forExport(importDataContext, metas); + } + + @Override + protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow row) { + SizeCategory sizeCategory = null; + + if (row.getSizeCategory() != null) { + + sizeCategory = sizeCategoryCache.getSizeCategory(row.getSizeCategory(), row.getSizeCategoryMeaning(), result); + Preconditions.checkNotNull(sizeCategory); + if (!sizeCategory.getMeaning().equals(row.getSizeCategoryMeaning())) { + throw new MismatchSizeCategoryMeaningException(getLocale(), row.getSizeCategoryMeaning(), sizeCategory.getMeaning()); + } + + } + + return resultCategoryCache.getResultCategory(row.getEchotype(), + row.getSpecies(), + row.getLengthClass(), + sizeCategory, + null, + result); + } + + @Override + protected VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow newImportedRow(Voyage voyage, Cell cell, Category category, List<Result> cellResults) { + return VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.of(voyage, cell, category, cellResults); + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction.java index f87f158..7274bb8 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction.java @@ -38,6 +38,7 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction exten protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow row) { return resultCategoryCache.getResultCategory(row.getEchotype(), row.getSpecies(), + null, row.getSizeCategory(), null, result); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction.java index 610355d..07e0324 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction.java @@ -48,7 +48,7 @@ public class VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction extends Voya if (!ageCategory.getMeaning().equals(row.getAgeCategoryMeaning())) { throw new MismatchAgeCategoryMeaningException(getLocale(), row.getAgeCategoryMeaning(), ageCategory.getMeaning()); } - return resultCategoryCache.getResultCategory(null, row.getSpecies(), null, ageCategory, result); + return resultCategoryCache.getResultCategory(null, row.getSpecies(), null, null, ageCategory, result); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction.java deleted file mode 100644 index 5ac15c9..0000000 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction.java +++ /dev/null @@ -1,63 +0,0 @@ -package fr.ifremer.echobase.services.service.importdata.actions; - -import com.google.common.base.Preconditions; -import fr.ifremer.echobase.entities.data.Category; -import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.Result; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.SizeCategory; -import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; -import fr.ifremer.echobase.services.service.importdata.MismatchSizeCategoryMeaningException; -import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; -import fr.ifremer.echobase.services.service.importdata.SizeCategoryCache; -import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; -import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel; -import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsEsduBySpeciesAndSizeCategoryImportRow; - -import java.util.List; - -/** - * Created on 25/03/16. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction extends VoyageResultsCellImportDataActionSupport<VoyageResultsEsduBySpeciesAndSizeCategoryImportRow> { - - protected SizeCategoryCache sizeCategoryCache; - - public VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEsduBySpeciesAndSizeCategoryFile(), VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); - this.sizeCategoryCache = importDataContext.getSizeCategoryCache(); - } - - @Override - protected VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel createCsvImportModel(VoyageResultsImportDataContext importDataContext) { - return VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.forImport(importDataContext, metas); - } - - @Override - protected VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel createCsvExportModel(VoyageResultsImportDataContext importDataContext) { - return VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.forExport(importDataContext, metas); - } - - @Override - protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, VoyageResultsEsduBySpeciesAndSizeCategoryImportRow row) { - SizeCategory sizeCategory = sizeCategoryCache.getSizeCategory(row.getSizeCategory(), row.getSizeCategoryMeaning(), result); - Preconditions.checkNotNull(sizeCategory); - if (!sizeCategory.getMeaning().equals(row.getSizeCategoryMeaning())) { - throw new MismatchSizeCategoryMeaningException(getLocale(), row.getSizeCategoryMeaning(), sizeCategory.getMeaning()); - } - return resultCategoryCache.getResultCategory(null, - row.getSpecies(), - sizeCategory, - null, - result); - } - - @Override - protected VoyageResultsEsduBySpeciesAndSizeCategoryImportRow newImportedRow(Voyage voyage, Cell cell, Category category, List<Result> cellResults) { - return VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.of(voyage, cell, category, cellResults); - } - -} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsMapFishCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsMapFishCellImportAction.java index 248db06..ad10496 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsMapFishCellImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsMapFishCellImportAction.java @@ -146,6 +146,7 @@ public class VoyageResultsMapFishCellImportAction extends VoyageResultsImportDat Category category = resultCategoryCache.getResultCategory(null, row.getSpecies(), + null, row.getSizeCategory(), row.getAgeCategory(), result); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionResultsImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionResultsImportAction.java index 0802ca9..3367731 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionResultsImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsRegionResultsImportAction.java @@ -44,6 +44,7 @@ public class VoyageResultsRegionResultsImportAction extends VoyageResultsCellImp protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, VoyageResultsRegionCellResultImportRow row) { return resultCategoryCache.getResultCategory(row.getEchotype(), row.getSpecies(), + null, row.getSizeCategory(), null, result); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageLengthWeightKeyImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageLengthWeightKeyImportAction.java index eaac5d2..0442050 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageLengthWeightKeyImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageLengthWeightKeyImportAction.java @@ -60,7 +60,7 @@ public class VoyageResultsVoyageLengthWeightKeyImportAction extends VoyageResult Voyage voyage = row.getVoyage(); // find speciesCategory - SpeciesCategory speciesCategory = speciesCategoryCache.getSpeciesCategory(row.getSpecies(), row.getSizeCategory(), null, null, result); + SpeciesCategory speciesCategory = speciesCategoryCache.getSpeciesCategory(row.getSpecies(), null, row.getSizeCategory(), null, null, result); LengthWeightKey toCreate = row.getLengthWeightKey(); toCreate.setSpeciesCategory(speciesCategory); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageResultsImportConfiguration.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageResultsImportConfiguration.java index 6dfd8d7..39c0bf1 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageResultsImportConfiguration.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/configurations/VoyageResultsImportConfiguration.java @@ -40,7 +40,7 @@ public class VoyageResultsImportConfiguration extends VoyageImportDataConfigurat /** Acoustic result by echotype and species category import. */ protected final InputFile esduByEchotypeAndSpeciesCategoryFile; /** Acoustic result by species and size category import. */ - protected final InputFile esduBySpeciesAndSizeCategoryFile; + protected final InputFile esduByEchotypeandSpeciesCategoryAndLengthFile; /** Acoustic result by species and age category import. */ protected final InputFile esduBySpeciesAndAgeCategoryFile; /** Region file to import. */ @@ -74,7 +74,7 @@ public class VoyageResultsImportConfiguration extends VoyageImportDataConfigurat lengthWeightKeyFile = InputFile.newFile(l(locale, "echobase.common.lengthWeightKeyFile")); esduByEchotypeFile = InputFile.newFile(l(locale, "echobase.common.esduByEchotypeFile")); esduByEchotypeAndSpeciesCategoryFile = InputFile.newFile(l(locale, "echobase.common.esduByEchotypeAndSpeciesCategoryFile")); - esduBySpeciesAndSizeCategoryFile = InputFile.newFile(l(locale, "echobase.common.esduBySpeciesAndSizeCategoryFile")); + esduByEchotypeandSpeciesCategoryAndLengthFile = InputFile.newFile(l(locale, "echobase.common.esduByEchotypeAndSpeciesCategoryAndLengthFile")); esduBySpeciesAndAgeCategoryFile = InputFile.newFile(l(locale, "echobase.common.esduBySpeciesAndAgeCategoryFile")); } @@ -138,8 +138,8 @@ public class VoyageResultsImportConfiguration extends VoyageImportDataConfigurat return esduByEchotypeAndSpeciesCategoryFile; } - public InputFile getEsduBySpeciesAndSizeCategoryFile() { - return esduBySpeciesAndSizeCategoryFile; + public InputFile getEsduByEchotypeAndSpeciesCategoryAndLengthFile() { + return esduByEchotypeandSpeciesCategoryAndLengthFile; } public InputFile getEsduBySpeciesAndAgeCategoryFile() { @@ -149,7 +149,7 @@ public class VoyageResultsImportConfiguration extends VoyageImportDataConfigurat public boolean isOneEsduImportFile() { return esduByEchotypeFile.hasFile() || esduByEchotypeAndSpeciesCategoryFile.hasFile() - || esduBySpeciesAndSizeCategoryFile.hasFile() + || esduByEchotypeandSpeciesCategoryAndLengthFile.hasFile() || esduBySpeciesAndAgeCategoryFile.hasFile(); } @@ -169,7 +169,7 @@ public class VoyageResultsImportConfiguration extends VoyageImportDataConfigurat lengthWeightKeyFile, esduByEchotypeFile, esduByEchotypeAndSpeciesCategoryFile, - esduBySpeciesAndSizeCategoryFile, + esduByEchotypeandSpeciesCategoryAndLengthFile, esduBySpeciesAndAgeCategoryFile}; } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.java new file mode 100644 index 0000000..9e07616 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel.java @@ -0,0 +1,100 @@ +/* + * #%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.Echotype; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.DataMetadata; +import fr.ifremer.echobase.entities.references.DataQuality; +import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; + +import java.util.List; + +/** + * Model to import {@link Result} for esdu cell and species and size category. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 0.3 + */ +public class VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel extends EchoBaseImportExportModelSupport<VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow> { + + protected static final String HEADER_SPECIES = "baracoudaCode"; + + public static final String[] COLUMN_NAMES_TO_EXCLUDE = { + EchoBaseCsvUtil.CELL_NAME, + HEADER_SPECIES, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_LENGTH_CLASS, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_ECHOTYPE, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY_MEANING, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_DATA_QUALITY, + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE + }; + + private VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel(char separator) { + super(separator); + } + + public static VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel forImport(VoyageResultsImportDataContext importDataContext, + List<DataMetadata> dataMetadatas) { + + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel model = new VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel(importDataContext.getCsvSeparator()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); + model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, importDataContext.getVoyageEchotypesByName()); + model.newMandatoryColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_LENGTH_CLASS, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER_FORMATTER); + model.newMandatoryColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY); + model.newMandatoryColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY_MEANING); + model.newForeignKeyColumn(HEADER_SPECIES, VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); + + addResultsColumnsForImport(model, dataMetadatas); + return model; + + } + + public static VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel forExport(VoyageResultsImportDataContext importDataContext, + List<DataMetadata> dataMetadatas) { + + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel model = new VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel(importDataContext.getCsvSeparator()); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); + model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_ECHOTYPE, EchoBaseCsvUtil.ECHOTYPE_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_LENGTH_CLASS, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SIZE_CATEGORY_MEANING); + model.newColumnForExport(HEADER_SPECIES, VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); + + addResultsColumns(model, dataMetadatas); + return model; + + } + + @Override + public VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow newEmptyInstance() { + return new VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow(); + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java similarity index 76% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java index d94443e..f6cb055 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java @@ -22,6 +22,7 @@ package fr.ifremer.echobase.services.service.importdata.csv; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; +import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DataQuality; @@ -34,16 +35,18 @@ import java.util.List; /** * Bean used as a row for import of - * {@link VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel}. + * {@link VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportExportModel}. * * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class VoyageResultsEsduBySpeciesAndSizeCategoryImportRow implements ResultAble, CellAble { +public class VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow implements ResultAble, CellAble { public static final String PROPERTY_VOYAGE = "voyage"; public static final String PROPERTY_CELL = "cell"; public static final String PROPERTY_SPECIES = "species"; + public static final String PROPERTY_ECHOTYPE = "echotype"; + public static final String PROPERTY_LENGTH_CLASS = "lengthClass"; public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory"; public static final String PROPERTY_SIZE_CATEGORY_MEANING = "sizeCategoryMeaning"; public static final String PROPERTY_DATA_QUALITY = "dataQuality"; @@ -53,16 +56,20 @@ public class VoyageResultsEsduBySpeciesAndSizeCategoryImportRow implements Resul protected final List<Result> result = new LinkedList<>(); protected Species species; protected DataQuality dataQuality; + protected Float lengthClass; protected String sizeCategory; protected String sizeCategoryMeaning; + protected Echotype echotype; - public static VoyageResultsEsduBySpeciesAndSizeCategoryImportRow of(Voyage voyage, Cell cell, Category category, List<Result> results) { - VoyageResultsEsduBySpeciesAndSizeCategoryImportRow row = new VoyageResultsEsduBySpeciesAndSizeCategoryImportRow(); + public static VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow of(Voyage voyage, Cell cell, Category category, List<Result> results) { + VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow row = new VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow(); row.setVoyage(voyage); row.setCell(cell); row.setSpecies(category.getSpeciesCategory().getSpecies()); + row.setLengthClass(category.getSpeciesCategory().getLengthClass()); row.setSizeCategory(category.getSpeciesCategory().getSizeCategory().getName()); row.setSizeCategoryMeaning(category.getSpeciesCategory().getSizeCategory().getMeaning()); + row.setEchotype(category.getEchotype()); row.result.addAll(results); return row; } @@ -130,4 +137,20 @@ public class VoyageResultsEsduBySpeciesAndSizeCategoryImportRow implements Resul public void setSizeCategoryMeaning(String sizeCategoryMeaning) { this.sizeCategoryMeaning = sizeCategoryMeaning; } + + public Float getLengthClass() { + return lengthClass; + } + + public void setLengthClass(Float lengthClass) { + this.lengthClass = lengthClass; + } + + public Echotype getEchotype() { + return echotype; + } + + public void setEchotype(Echotype echotype) { + this.echotype = echotype; + } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel.java index 12c62e6..e5e93af 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel.java @@ -58,7 +58,7 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel exte public static VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel model = new VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newForeignKeyColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, importDataContext.getVoyageEchotypesByName()); model.newForeignKeyColumn(HEADER_SPECIES, VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, importDataContext.getSizeCategoriesByName()); @@ -73,7 +73,7 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel exte public static VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel model = new VoyageResultsEsduByEchotypeAndSpeciesCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, EchoBaseCsvUtil.ECHOTYPE_FORMATTER); model.newColumnForExport(HEADER_SPECIES, VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, EchoBaseCsvUtil.SIZE_CATEGORY_FORMATTER); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportExportModel.java index 0193229..605e901 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportExportModel.java @@ -52,7 +52,7 @@ public class VoyageResultsEsduByEchotypeImportExportModel extends EchoBaseImport public static VoyageResultsEsduByEchotypeImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduByEchotypeImportExportModel model = new VoyageResultsEsduByEchotypeImportExportModel(importDataContext.getCsvSeparator()); - model.newForeignKeyColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(VoyageResultsEsduByEchotypeImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, importDataContext.getVoyageEchotypesByName()); model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduByEchotypeImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newForeignKeyColumn(VoyageResultsEsduByEchotypeImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); @@ -65,7 +65,7 @@ public class VoyageResultsEsduByEchotypeImportExportModel extends EchoBaseImport public static VoyageResultsEsduByEchotypeImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduByEchotypeImportExportModel model = new VoyageResultsEsduByEchotypeImportExportModel(importDataContext.getCsvSeparator()); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(VoyageResultsEsduByEchotypeImportRow.PROPERTY_ECHOTYPE, EchoBaseCsvUtil.ECHOTYPE_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduByEchotypeImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); model.newColumnForExport(VoyageResultsEsduByEchotypeImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel.java index 92ce9ea..96fd9bd 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel.java @@ -56,7 +56,7 @@ public class VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel extends E public static VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel model = new VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newForeignKeyColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); + model.newForeignKeyColumn(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newMandatoryColumn(VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); model.newMandatoryColumn(VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); @@ -71,7 +71,7 @@ public class VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel extends E public static VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel model = new VoyageResultsEsduBySpeciesAndAgeCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); + model.newColumnForExport(VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); model.newColumnForExport(VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); model.newColumnForExport(VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.java deleted file mode 100644 index 2c7168a..0000000 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * #%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.Result; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.entities.references.DataQuality; -import fr.ifremer.echobase.entities.references.Species; -import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; -import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; - -import java.util.List; - -/** - * Model to import {@link Result} for esdu cell and species and size category. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 0.3 - */ -public class VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel extends EchoBaseImportExportModelSupport<VoyageResultsEsduBySpeciesAndSizeCategoryImportRow> { - - protected static final String HEADER_SPECIES = "baracoudaCode"; - - public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - EchoBaseCsvUtil.CELL_NAME, - HEADER_SPECIES, - VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY, - VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING, - VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, - VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE - }; - - private VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel(char separator) { - super(separator); - } - - public static VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { - - VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel model = new VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newForeignKeyColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); - model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); - model.newMandatoryColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); - model.newMandatoryColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); - model.newForeignKeyColumn(HEADER_SPECIES, VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); - model.newForeignKeyColumn(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - - addResultsColumnsForImport(model, dataMetadatas); - return model; - - } - - public static VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { - - VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel model = new VoyageResultsEsduBySpeciesAndSizeCategoryImportExportModel(importDataContext.getCsvSeparator()); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); - model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); - model.newColumnForExport(HEADER_SPECIES, VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); - model.newColumnForExport(VoyageResultsEsduBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); - - addResultsColumns(model, dataMetadatas); - return model; - - } - - @Override - public VoyageResultsEsduBySpeciesAndSizeCategoryImportRow newEmptyInstance() { - return new VoyageResultsEsduBySpeciesAndSizeCategoryImportRow(); - } - -} 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 23bdc74..b0141d5 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 @@ -8,10 +8,10 @@ echobase.common.cellRegionAssociationFile=Region cells association file echobase.common.cellRegionResultFile=Region cells results file echobase.common.cellRegionsFile=Region cells file echobase.common.echotypeFile=Echotypes file +echobase.common.esduByEchotypeAndSpeciesCategoryAndLengthFile=Results per ESDU / echotype / species category / length file echobase.common.esduByEchotypeAndSpeciesCategoryFile=Results per ESDU / echotype / species category file echobase.common.esduByEchotypeFile=Results per ESDU / echotype file echobase.common.esduBySpeciesAndAgeCategoryFile=Results per ESDU / species / age file -echobase.common.esduBySpeciesAndSizeCategoryFile=Results per ESDU / species / size file echobase.common.exportDbMode.all=Export complete database echobase.common.exportDbMode.referential=Export only referential echobase.common.exportDbMode.referentialAndData=Export referential and some data 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 b7b5908..d958650 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 @@ -8,10 +8,10 @@ echobase.common.cellRegionAssociationFile=Fichier d'associations des cellules R echobase.common.cellRegionResultFile=Fichier de résultats de cellules Région echobase.common.cellRegionsFile=Fichier des cellules Région echobase.common.echotypeFile=Fichier des échotypes +echobase.common.esduByEchotypeAndSpeciesCategoryAndLengthFile=Fichier de résultats par ESDU / échotype / catégorie d'espèce / taille echobase.common.esduByEchotypeAndSpeciesCategoryFile=Fichier de résultats par ESDU / échotype / catégorie d'espèce echobase.common.esduByEchotypeFile=Fichier de résultats par ESDU / échotype echobase.common.esduBySpeciesAndAgeCategoryFile=Fichier de résultats par ESDU / espèce / âge -echobase.common.esduBySpeciesAndSizeCategoryFile=Fichier de résultats par ESDU / espèce / taille echobase.common.exportDbMode.all=Exporter toute la base echobase.common.exportDbMode.referential=Exporter uniquement le référentiel echobase.common.exportDbMode.referentialAndData=Exporter le référentiel et des données diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeAndSpeciesCategoryAndLengthImportServiceIT.java similarity index 87% rename from echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT.java rename to echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeAndSpeciesCategoryAndLengthImportServiceIT.java index 822aa30..22b1101 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeAndSpeciesCategoryAndLengthImportServiceIT.java @@ -37,9 +37,9 @@ import java.io.IOException; * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT extends VoyageResultsImportServiceITSupport { +public class VoyageResultsEsduCellOnlyEchotypeAndSpeciesCategoryAndLengthImportServiceIT extends VoyageResultsImportServiceITSupport { - public VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT() { + public VoyageResultsEsduCellOnlyEchotypeAndSpeciesCategoryAndLengthImportServiceIT() { super(1); } @@ -57,8 +57,8 @@ public class VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT exte VoyageResultsImportConfiguration configuration = super.createConfiguration(); configuration.setImportType(ImportType.RESULT_ESDU); - InputFile inputFile = configuration.getEsduBySpeciesAndSizeCategoryFile(); - prepareInputFile(inputFile, getImportPath("bySpeciesAndSizeCategory_small.csv.gz")); + InputFile inputFile = configuration.getEsduByEchotypeAndSpeciesCategoryAndLengthFile(); + prepareInputFile(inputFile, getImportPath("byEchotypeAndSpeciesCategoryAndLength_small.csv.gz")); addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, configuration.getVoyageId(), inputFile); configuration.setDataProcessingId(getDataProcessingId()); @@ -72,7 +72,7 @@ public class VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT exte // int nbCategory = 129; int nbSpeciesCategories= 11; // int nbSpeciesCategories= 129; - int nbSizeCategories= 11; + int nbSizeCategories= 1; // int nbSizeCategories= 62; int nbResult = 196; // int nbResult = 68108; @@ -82,7 +82,7 @@ public class VoyageResultsEsduCellOnlySpeciesAndSizeCategoryImportServiceIT exte assertCsvImportResultPerEntity(importDataFileResult, Category.class, nbCategory, 0, nbCategory); assertCsvImportResultPerEntity(importDataFileResult, SpeciesCategory.class, nbSpeciesCategories, 0, 467); // assertCsvImportResultPerEntity(importDataFileResult, SpeciesCategory.class, nbSpeciesCategories, 0, 585); - assertCsvImportResultPerEntity(importDataFileResult, SizeCategory.class, nbSizeCategories, 0, 18); + assertCsvImportResultPerEntity(importDataFileResult, SizeCategory.class, nbSizeCategories, 0, 8); // assertCsvImportResultPerEntity(importDataFileResult, SizeCategory.class, nbSizeCategories, 0, 69); assertCsvImportResult0(importDataFileResult, nbResult); diff --git a/echobase-services/src/test/resources/import-data/result/esdu/bySpeciesAndSizeCategory.csv.gz b/echobase-services/src/test/resources/import-data/result/esdu/byEchotypeAndSpeciesCategoryAndLength.csv.gz similarity index 100% rename from echobase-services/src/test/resources/import-data/result/esdu/bySpeciesAndSizeCategory.csv.gz rename to echobase-services/src/test/resources/import-data/result/esdu/byEchotypeAndSpeciesCategoryAndLength.csv.gz diff --git a/echobase-services/src/test/resources/import-data/result/esdu/byEchotypeAndSpeciesCategoryAndLength_small.csv.gz b/echobase-services/src/test/resources/import-data/result/esdu/byEchotypeAndSpeciesCategoryAndLength_small.csv.gz new file mode 100644 index 0000000..6a06049 Binary files /dev/null and b/echobase-services/src/test/resources/import-data/result/esdu/byEchotypeAndSpeciesCategoryAndLength_small.csv.gz differ diff --git a/echobase-services/src/test/resources/import-data/result/esdu/bySpeciesAndSizeCategory_small.csv.gz b/echobase-services/src/test/resources/import-data/result/esdu/bySpeciesAndSizeCategory_small.csv.gz deleted file mode 100644 index 8e35eb8..0000000 Binary files a/echobase-services/src/test/resources/import-data/result/esdu/bySpeciesAndSizeCategory_small.csv.gz and /dev/null differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.