This is an automated email from the git hooks/post-receive script. New commit to branch feature/8170 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 130fa022c25914c1a515f0251f192a748fbc1691 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 5 12:53:41 2016 +0200 Revue de l'api pour les imports de résults + début des imports de résultats esdu --- .../fr/ifremer/echobase/services/csv/CellAble.java | 22 +++ ...EchotypeAndSpeciesCategoryCellImportAction.java | 54 ++---- ...oyageResultsEsduByEchotypeCellImportAction.java | 47 +---- ...yageResultsEsduCellImportDataActionSupport.java | 194 +++++++++++++++++++++ ...sEsduSpeciesAndAgeCategoryCellImportAction.java | 82 +++------ ...EsduSpeciesAndSizeCategoryCellImportAction.java | 90 ++++------ .../contexts/VoyageResultsImportDataContext.java | 19 ++ .../csv/EchoBaseImportExportModelSupport.java | 10 ++ ...chotypeAndSpeciesCategoryImportExportModel.java | 22 +-- ...esultByEchotypeAndSpeciesCategoryImportRow.java | 54 ++++-- .../csv/EsduResultByEchotypeImportExportModel.java | 14 +- .../csv/EsduResultByEchotypeImportRow.java | 49 ++++-- ...ltBySpeciesAndAgeCategoryImportExportModel.java | 22 +-- ...EsduResultBySpeciesAndAgeCategoryImportRow.java | 74 +++++--- ...tBySpeciesAndSizeCategoryImportExportModel.java | 16 +- ...sduResultBySpeciesAndSizeCategoryImportRow.java | 74 +++++--- .../VoyageResultsMapFishCellImportExportModel.java | 7 +- .../csv/VoyageResultsMapFishCellImportRow.java | 4 +- ...VoyageResultsMapOtherCellImportExportModel.java | 7 +- .../csv/VoyageResultsMapOtherCellImportRow.java | 4 +- ...geResultsRegionCellResultImportExportModel.java | 15 +- .../VoyageResultsRegionCellResultImportRow.java | 4 +- ...yageResultsVoyageEchotypeImportExportModel.java | 5 +- ...ResultsVoyageLengthAgeKeyImportExportModel.java | 6 +- ...ultsVoyageLengthWeightKeyImportExportModel.java | 9 +- ...oyageResultsVoyageLengthWeightKeyImportRow.java | 1 + ...ResultsEsduCellOnlyEchotypeImportServiceIT.java | 96 ++++++++++ 27 files changed, 629 insertions(+), 372 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java new file mode 100644 index 0000000..a3e91bd --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java @@ -0,0 +1,22 @@ +package fr.ifremer.echobase.services.csv; + +import fr.ifremer.echobase.entities.data.Cell; +import fr.ifremer.echobase.entities.data.Voyage; + +/** + * Created on 05/04/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public interface CellAble { + + Voyage getVoyage(); + + void setVoyage(Voyage voyage); + + Cell getCell(); + + void setCell(Cell cell); + +} 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 1dde0bd..6580444 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 @@ -2,8 +2,8 @@ package fr.ifremer.echobase.services.service.importdata.actions; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; @@ -11,7 +11,6 @@ import fr.ifremer.echobase.services.service.importdata.csv.EsduResultByEchotypeA import fr.ifremer.echobase.services.service.importdata.csv.EsduResultByEchotypeAndSpeciesCategoryImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; import java.util.List; @@ -21,16 +20,13 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction extends VoyageResultsImportDataActionSupport<EsduResultByEchotypeAndSpeciesCategoryImportRow> { +public class VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction extends VoyageResultsEsduCellImportDataActionSupport<EsduResultByEchotypeAndSpeciesCategoryImportRow> { /** Logger. */ private static final Log log = LogFactory.getLog(VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction.class); - private final List<DataMetadata> metas; - public VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEsduByEchotypeAndSpeciesCategoryFile()); - metas = importDataContext.getMetas(getInputFile(), EsduResultByEchotypeAndSpeciesCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + super(importDataContext, importDataContext.getConfiguration().getEsduByEchotypeAndSpeciesCategoryFile(), EsduResultByEchotypeAndSpeciesCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); } @Override @@ -44,43 +40,19 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryCellImportAction exten } @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { - log.info("Starts import of acoustic result by echotype and species category from file " + inputFile.getFileName()); - } - - ResultCategoryCache resultCategoryCache = importDataContext.getResultCategoryCache(); - String resultLabel = getConfiguration().getResultLabel(); - - try (Import<EsduResultByEchotypeAndSpeciesCategoryImportRow> importer = open()) { - - incrementsProgress(); - int rowNumber = 0; - for (EsduResultByEchotypeAndSpeciesCategoryImportRow row : importer) { - - doFlushTransaction(++rowNumber); - - Cell cell = row.getCell(); - - Category category = resultCategoryCache.getResultCategory(row.getEchotype(), - row.getSpecies(), - row.getSizeCategory(), - null, - result); - - addResults(row, cell, category, resultLabel, result, true, true); - - } - - } - + protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, EsduResultByEchotypeAndSpeciesCategoryImportRow row) { + return resultCategoryCache.getResultCategory(row.getEchotype(), + row.getSpecies(), + row.getSizeCategory(), + null, + result); } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { + protected void flushCellResults(ImportDataFileResult result, Voyage voyage, Cell cell, Category lastCategory, List<Result> cellResults) { - // TODO + EsduResultByEchotypeAndSpeciesCategoryImportRow row = EsduResultByEchotypeAndSpeciesCategoryImportRow.of(voyage, cell, lastCategory, cellResults); + addImportedRow(result, row); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeCellImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeCellImportAction.java index 437f6da..2592698 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeCellImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduByEchotypeCellImportAction.java @@ -2,8 +2,8 @@ package fr.ifremer.echobase.services.service.importdata.actions; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; @@ -11,7 +11,6 @@ import fr.ifremer.echobase.services.service.importdata.csv.EsduResultByEchotypeI import fr.ifremer.echobase.services.service.importdata.csv.EsduResultByEchotypeImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; import java.util.List; @@ -21,16 +20,13 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class VoyageResultsEsduByEchotypeCellImportAction extends VoyageResultsImportDataActionSupport<EsduResultByEchotypeImportRow> { +public class VoyageResultsEsduByEchotypeCellImportAction extends VoyageResultsEsduCellImportDataActionSupport<EsduResultByEchotypeImportRow> { /** Logger. */ private static final Log log = LogFactory.getLog(VoyageResultsEsduByEchotypeCellImportAction.class); - private final List<DataMetadata> metas; - public VoyageResultsEsduByEchotypeCellImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEsduByEchotypeFile()); - metas = importDataContext.getMetas(getInputFile(), EsduResultByEchotypeImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + super(importDataContext, importDataContext.getConfiguration().getEsduByEchotypeFile(), EsduResultByEchotypeImportExportModel.COLUMN_NAMES_TO_EXCLUDE); } @Override @@ -44,40 +40,15 @@ public class VoyageResultsEsduByEchotypeCellImportAction extends VoyageResultsIm } @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { - log.info("Starts import of esdu result by echotype from file " + inputFile.getFileName()); - } - - ResultCategoryCache resultCategoryCache = importDataContext.getResultCategoryCache(); - String resultLabel = getConfiguration().getResultLabel(); - - try (Import<EsduResultByEchotypeImportRow> importer = open()) { - - incrementsProgress(); - int rowNumber = 0; - - for (EsduResultByEchotypeImportRow row : importer) { - - doFlushTransaction(++rowNumber); - - Cell cell = row.getCell(); - - Category category = resultCategoryCache.getResultCategory(row.getEchotype(), null, result); - - addResults(row, cell, category, resultLabel, result, true, true); - - } - - } - + protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, EsduResultByEchotypeImportRow row) { + return resultCategoryCache.getResultCategory(row.getEchotype(), null, result); } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { + protected void flushCellResults(ImportDataFileResult result, Voyage voyage, Cell cell, Category lastCategory, List<Result> cellResults) { - // TODO + EsduResultByEchotypeImportRow row = EsduResultByEchotypeImportRow.of(voyage, cell, lastCategory, cellResults); + addImportedRow(result, row); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduCellImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduCellImportDataActionSupport.java new file mode 100644 index 0000000..08024ae --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsEsduCellImportDataActionSupport.java @@ -0,0 +1,194 @@ +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.DataMetadata; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.csv.CellAble; +import fr.ifremer.echobase.services.csv.ResultAble; +import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; +import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; +import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +/** + * Created on 25/03/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public abstract class VoyageResultsEsduCellImportDataActionSupport<E extends ResultAble & CellAble> extends VoyageResultsImportDataActionSupport<E> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(VoyageResultsEsduCellImportDataActionSupport.class); + + private final Map<String, String> resultIdToCellId = new TreeMap<>(); + + protected final List<DataMetadata> metas; + + public VoyageResultsEsduCellImportDataActionSupport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, String... columnNamesToExclude) { + super(importDataContext, inputFile); + this.metas = importDataContext.getMetas(getInputFile(), columnNamesToExclude); + } + + protected abstract void flushCellResults(ImportDataFileResult result, Voyage voyage, Cell cell, Category lastCategory, List<Result> cellResults); + + @Override + protected final void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { + + if (log.isInfoEnabled()) { + log.info("Starts import of acoustic result by species and size category from file " + inputFile.getFileName()); + } + + ResultCategoryCache resultCategoryCache = importDataContext.getResultCategoryCache(); + + String resultLabel = getConfiguration().getResultLabel(); + + try (Import<E> importer = open()) { + + incrementsProgress(); + int rowNumber = 0; + for (E row : importer) { + + doFlushTransaction(++rowNumber); + + Category category = getResultCategory(result, resultCategoryCache, row); + addResults(result, resultLabel, row, category); + + } + + } + + } + + protected abstract Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, E row); + + protected void addResults(ImportDataFileResult result, String resultLabel, E row, Category category) { + + Cell cell = row.getCell(); + + String cellTopiaId = cell.getTopiaId(); + List<Result> cellResults = addResults(row, cell, category, resultLabel, result, true, true); + for (Result cellResult : cellResults) { + resultIdToCellId.put(cellResult.getTopiaId(), cellTopiaId); + } + + addProcessedRow(result, row); + + } + + @Override + protected final void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { + + String voyageId = importDataContext.getConfiguration().getVoyageId(); + Voyage voyage = persistenceService.getVoyage(voyageId); + + String lastCellId = null; + Category lastCategory = null; + + List<String> cellResultIds = new LinkedList<>(); + int count = 0; + int max = result.getIds().size(); + + for (String resultId : result.getIds()) { + + if (log.isInfoEnabled()) { + log.info("Treat imported result: " + resultId + " (" + (++count) + "/" + max + ")"); + } + String cellId = resultIdToCellId.get(resultId); + + if (lastCellId != null && !lastCellId.equals(cellId)) { + + // flush current cell + flushCellResults0(result, voyage, lastCellId, lastCategory, cellResultIds); + + lastCellId = null; + cellResultIds.clear(); + + } + + if (lastCellId == null) { + + lastCellId = cellId; + lastCategory = null; + + if (log.isInfoEnabled()) { + log.info("New result cell: " + cellId); + } + + } + + Result cellResult = persistenceService.getResult(resultId); + + if (lastCategory != null && !lastCategory.equals(cellResult.getCategory())) { + + // flush current cell + flushCellResults0(result, voyage, lastCellId, lastCategory, cellResultIds); + + lastCategory = null; + cellResultIds.clear(); + + } + + if (lastCategory == null) { + + // first row for this category + lastCategory = cellResult.getCategory(); + + if (log.isInfoEnabled()) { + log.info("New result category: " + lastCategory + " for cell: " + lastCellId); + } + + } + + cellResultIds.add(resultId); + + } + + if (!cellResultIds.isEmpty()) { + + // flush last cell + flushCellResults0(result, voyage, lastCellId, lastCategory, cellResultIds); + + } + + } + + protected void flushCellResults0(ImportDataFileResult result, Voyage voyage, String lastCellId, Category lastCategory, List<String> cellResultIds) { + + Preconditions.checkState(!cellResultIds.isEmpty(), "Can't flush a cell (" + lastCellId + " ) with no result..."); + + // flush last cell + Cell cell = persistenceService.getCell(lastCellId); + Preconditions.checkNotNull(cell); + + if (log.isInfoEnabled()) { + log.info("Flush Cell " + cell + " with " + cellResultIds.size() + " results on category " + lastCategory); + } + + List<Result> cellResults = new LinkedList<>(); + + for (Result cellResult : cell.getResult()) { + + if (cellResultIds.contains(cellResult.getTopiaId())) { + cellResults.add(cellResult); + } + + } + + flushCellResults(result, voyage, cell, lastCategory, cellResults); + + + } + +} 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 48b6e04..e2ff8c5 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 @@ -1,11 +1,11 @@ package fr.ifremer.echobase.services.service.importdata.actions; -import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; 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.AgeCategory; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.AgeCategoryCache; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.ResultCategoryCache; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; @@ -13,10 +13,8 @@ import fr.ifremer.echobase.services.service.importdata.csv.EsduResultBySpeciesAn import fr.ifremer.echobase.services.service.importdata.csv.EsduResultBySpeciesAndAgeCategoryImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; import java.util.List; -import java.util.Map; /** * Created on 25/03/16. @@ -24,16 +22,16 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction extends VoyageResultsImportDataActionSupport<EsduResultBySpeciesAndAgeCategoryImportRow> { +public class VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction extends VoyageResultsEsduCellImportDataActionSupport<EsduResultBySpeciesAndAgeCategoryImportRow> { /** Logger. */ private static final Log log = LogFactory.getLog(VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction.class); - private final List<DataMetadata> metas; + private final AgeCategoryCache ageCategoryCache; public VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEsduBySpeciesAndAgeCategoryFile()); - metas = importDataContext.getMetas(getInputFile(), EsduResultBySpeciesAndAgeCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + super(importDataContext, importDataContext.getConfiguration().getEsduBySpeciesAndAgeCategoryFile(), EsduResultBySpeciesAndAgeCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + this.ageCategoryCache = importDataContext.getAgeCategoryCache(); } @Override @@ -47,58 +45,28 @@ public class VoyageResultsEsduSpeciesAndAgeCategoryCellImportAction extends Voya } @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { - log.info("Starts import of acoustic result by species and size category from file " + inputFile.getFileName()); - } - - ResultCategoryCache resultCategoryCache = importDataContext.getResultCategoryCache(); - - Map<String, AgeCategory> ageCategoryMap = importDataContext.getAgeCategoriesByName(); - - String resultLabel = getConfiguration().getResultLabel(); - - try (Import<EsduResultBySpeciesAndAgeCategoryImportRow> importer = open()) { - - incrementsProgress(); - int rowNumber = 0; - - for (EsduResultBySpeciesAndAgeCategoryImportRow row : importer) { - - doFlushTransaction(++rowNumber); - - Cell cell = row.getCell(); - - String ageCategoryName = row.getAgeCategory(); - - AgeCategory ageCategory = ageCategoryMap.get(ageCategoryName); - - if (ageCategory == null) { - - // create a new sizeCategory - ageCategory = persistenceService.createAgeCategory(ageCategoryName, row.getAgeCategoryMeaning()); - result.incrementsNumberCreated(EchoBaseUserEntityEnum.AgeCategory); - if (log.isInfoEnabled()) { - log.info("Creates a new AgeCategory " + ageCategoryName); - } - ageCategoryMap.put(ageCategoryName, ageCategory); - } - - Category category = resultCategoryCache.getResultCategory(null, row.getSpecies(), null, ageCategory, result); - - addResults(row, cell, category, resultLabel, result, true, true); - - } - - } - + protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, EsduResultBySpeciesAndAgeCategoryImportRow row) { + AgeCategory ageCategory = ageCategoryCache.getAgeCategory(row.getAgeCategory(), row.getAgeCategoryMeaning(), result); + +// if (ageCategory == null) { +// +// // create a new sizeCategory +// ageCategory = persistenceService.createAgeCategory(ageCategoryName, row.getAgeCategoryMeaning()); +// result.incrementsNumberCreated(EchoBaseUserEntityEnum.AgeCategory); +// if (log.isInfoEnabled()) { +// log.info("Creates a new AgeCategory " + ageCategoryName); +// } +// ageCategoryMap.put(ageCategoryName, ageCategory); +// } + + return resultCategoryCache.getResultCategory(null, row.getSpecies(), null, ageCategory, result); } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { + protected void flushCellResults(ImportDataFileResult result, Voyage voyage, Cell cell, Category lastCategory, List<Result> cellResults) { - // TODO + EsduResultBySpeciesAndAgeCategoryImportRow row = EsduResultBySpeciesAndAgeCategoryImportRow.of(voyage, cell, lastCategory, cellResults); + addImportedRow(result, row); } 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 index 736912d..4ec3464 100644 --- 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 @@ -1,22 +1,20 @@ package fr.ifremer.echobase.services.service.importdata.actions; -import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.references.DataMetadata; +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.io.InputFile; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; 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.EsduResultBySpeciesAndSizeCategoryImportExportModel; import fr.ifremer.echobase.services.service.importdata.csv.EsduResultBySpeciesAndSizeCategoryImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; import java.util.List; -import java.util.Map; /** * Created on 25/03/16. @@ -24,16 +22,15 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction extends VoyageResultsImportDataActionSupport<EsduResultBySpeciesAndSizeCategoryImportRow> { +public class VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction extends VoyageResultsEsduCellImportDataActionSupport<EsduResultBySpeciesAndSizeCategoryImportRow> { /** Logger. */ private static final Log log = LogFactory.getLog(VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction.class); - - private final List<DataMetadata> metas; + protected SizeCategoryCache sizeCategoryCache; public VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEsduBySpeciesAndSizeCategoryFile()); - metas = importDataContext.getMetas(getInputFile(), EsduResultBySpeciesAndSizeCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + super(importDataContext, importDataContext.getConfiguration().getEsduBySpeciesAndSizeCategoryFile(), EsduResultBySpeciesAndSizeCategoryImportExportModel.COLUMN_NAMES_TO_EXCLUDE); + this.sizeCategoryCache = importDataContext.getSizeCategoryCache(); } @Override @@ -47,60 +44,33 @@ public class VoyageResultsEsduSpeciesAndSizeCategoryCellImportAction extends Voy } @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { - log.info("Starts import of acoustic result by speices and size category from file " + inputFile.getFileName()); - } - - ResultCategoryCache resultCategoryCache = importDataContext.getResultCategoryCache(); - Map<String, SizeCategory> sizeCategoryMap = importDataContext.getSizeCategoriesByName(); - - String resultLabel = getConfiguration().getResultLabel(); - - try (Import<EsduResultBySpeciesAndSizeCategoryImportRow> importer = open()) { - - incrementsProgress(); - int rowNumber = 0; - for (EsduResultBySpeciesAndSizeCategoryImportRow row : importer) { - - doFlushTransaction(++rowNumber); - - Cell cell = row.getCell(); - - String sizeCategoryName = row.getSizeCategory(); - - SizeCategory sizeCategory = sizeCategoryMap.get(sizeCategoryName); - - if (sizeCategory == null) { - - // create a new sizeCategory - sizeCategory = persistenceService.createSizeCategory(sizeCategoryName, row.getSizeCategoryMeaning()); - result.incrementsNumberCreated(EchoBaseUserEntityEnum.SizeCategory); - if (log.isInfoEnabled()) { - log.info("Creates a new SizeCategory " + sizeCategoryName); - } - sizeCategoryMap.put(sizeCategoryName, sizeCategory); - } - - Category category = resultCategoryCache.getResultCategory(null, - row.getSpecies(), - sizeCategory, - null, - result); - - addResults(row, cell, category, resultLabel, result, true, true); - - } - - } - + protected Category getResultCategory(ImportDataFileResult result, ResultCategoryCache resultCategoryCache, EsduResultBySpeciesAndSizeCategoryImportRow row) { + + SizeCategory sizeCategory = sizeCategoryCache.getSizeCategory(row.getSizeCategory(), row.getSizeCategoryMeaning(), result); + +// if (sizeCategory == null) { +// +// // create a new sizeCategory +// sizeCategory = persistenceService.createSizeCategory(sizeCategoryName, row.getSizeCategoryMeaning()); +// result.incrementsNumberCreated(EchoBaseUserEntityEnum.SizeCategory); +// if (log.isInfoEnabled()) { +// log.info("Creates a new SizeCategory " + sizeCategoryName); +// } +// sizeCategoryMap.put(sizeCategoryName, sizeCategory); +// } + + return resultCategoryCache.getResultCategory(null, + row.getSpecies(), + sizeCategory, + null, + result); } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { + protected void flushCellResults(ImportDataFileResult result, Voyage voyage, Cell cell, Category lastCategory, List<Result> cellResults) { - // TODO + EsduResultBySpeciesAndSizeCategoryImportRow row = EsduResultBySpeciesAndSizeCategoryImportRow.of(voyage, cell, lastCategory, cellResults); + addImportedRow(result, row); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageResultsImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageResultsImportDataContext.java index 625d280..b67052e 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageResultsImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageResultsImportDataContext.java @@ -11,7 +11,9 @@ import fr.ifremer.echobase.entities.references.DataMetadataImpl; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.services.service.UserDbPersistenceService; +import fr.ifremer.echobase.services.service.importdata.AgeCategoryCache; import fr.ifremer.echobase.services.service.importdata.DataMetadataNotFoundException; +import fr.ifremer.echobase.services.service.importdata.SizeCategoryCache; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; import org.nuiton.csv.ValueFormatter; import org.nuiton.csv.ValueParser; @@ -49,10 +51,27 @@ public class VoyageResultsImportDataContext extends VoyageImportDataContextSuppo private Map<String, Cell> esduCellsByName; + private SizeCategoryCache sizeCategoryCache; + private AgeCategoryCache ageCategoryCache; + public VoyageResultsImportDataContext(UserDbPersistenceService persistenceService, Locale locale, char csvSeparator, VoyageResultsImportConfiguration configuration, EchoBaseUser user) { super(persistenceService, locale, csvSeparator, configuration, user); } + public SizeCategoryCache getSizeCategoryCache() { + if (sizeCategoryCache == null) { + sizeCategoryCache = new SizeCategoryCache(persistenceService, getSizeCategoriesByName()); + } + return sizeCategoryCache; + } + + public AgeCategoryCache getAgeCategoryCache() { + if (ageCategoryCache == null) { + ageCategoryCache = new AgeCategoryCache(persistenceService, getAgeCategoriesByName()); + } + return ageCategoryCache; + } + public ValueParser<Cell> getCellValueParser() { return EchoBaseCsvUtil.newCellValueParser(getEsduCellsByName()); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchoBaseImportExportModelSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchoBaseImportExportModelSupport.java index 9492bf4..0f865c2 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchoBaseImportExportModelSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchoBaseImportExportModelSupport.java @@ -21,6 +21,16 @@ public abstract class EchoBaseImportExportModelSupport<E> extends AbstractImport super(separator); } + protected static <R extends ResultAble> void addResultsColumnsForImport(EchoBaseImportExportModelSupport<R> model, List<DataMetadata> dataMetadatas) { + for (DataMetadata metadata : dataMetadatas) { + String name = metadata.getName(); + model.newMandatoryColumn( + name, + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<R>newResultValueSetter()); + } + } + protected static <R extends ResultAble> void addResultsColumns(EchoBaseImportExportModelSupport<R> model, List<DataMetadata> dataMetadatas) { for (DataMetadata metadata : dataMetadatas) { model.newColumnForExport( diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportExportModel.java index de07a4f..764d9f7 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportExportModel.java @@ -40,9 +40,11 @@ import java.util.List; */ public class EsduResultByEchotypeAndSpeciesCategoryImportExportModel extends EchoBaseImportExportModelSupport<EsduResultByEchotypeAndSpeciesCategoryImportRow> { + protected static final String HEADER_SPECIES = "baracoudaCode"; + public static final String[] COLUMN_NAMES_TO_EXCLUDE = { EchoBaseCsvUtil.CELL_NAME, - Species.PROPERTY_BARACOUDA_CODE, + HEADER_SPECIES, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_DATA_QUALITY, @@ -53,35 +55,27 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportExportModel extends Ech super(separator); } - public static EsduResultByEchotypeAndSpeciesCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultByEchotypeAndSpeciesCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultByEchotypeAndSpeciesCategoryImportExportModel model = new EsduResultByEchotypeAndSpeciesCategoryImportExportModel(importDataContext.getCsvSeparator()); model.newForeignKeyColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, importDataContext.getVoyageEchotypesByName()); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); model.newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, importDataContext.getSizeCategoriesByName()); model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - for (DataMetadata metadata : dataMetadatas) { - String name = metadata.getName(); - model.newMandatoryColumn( - name, - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<EsduResultByEchotypeAndSpeciesCategoryImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } - public static EsduResultByEchotypeAndSpeciesCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultByEchotypeAndSpeciesCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultByEchotypeAndSpeciesCategoryImportExportModel model = new EsduResultByEchotypeAndSpeciesCategoryImportExportModel(importDataContext.getCsvSeparator()); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, EchoBaseCsvUtil.ECHOTYPE_FORMATTER); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); model.newColumnForExport(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, EchoBaseCsvUtil.SIZE_CATEGORY_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); model.newColumnForExport(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java index 0272460..9820151 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java @@ -20,7 +20,7 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; -import com.google.common.collect.Lists; +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; @@ -28,8 +28,10 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.services.csv.CellAble; import fr.ifremer.echobase.services.csv.ResultAble; +import java.util.LinkedList; import java.util.List; /** @@ -39,7 +41,7 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAble { +public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAble, CellAble { public static final String PROPERTY_VOYAGE = "voyage"; @@ -54,17 +56,30 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAb public static final String PROPERTY_DATA_QUALITY = "dataQuality"; protected Voyage voyage; - - protected Echotype echotype; - protected Cell cell; - - protected List<Result> result = Lists.newArrayList(); - + protected Echotype echotype; + protected final List<Result> result = new LinkedList<>(); protected Species species; protected DataQuality dataQuality; - private SizeCategory sizeCategory; + protected SizeCategory sizeCategory; + + public static EsduResultByEchotypeAndSpeciesCategoryImportRow of(Voyage voyage, Cell cell, Category category, List<Result> cellResults) { + EsduResultByEchotypeAndSpeciesCategoryImportRow row = new EsduResultByEchotypeAndSpeciesCategoryImportRow(); + row.setVoyage(voyage); + row.setCell(cell); + row.setSpecies(category.getSpeciesCategory().getSpecies()); + row.setEchotype(category.getEchotype()); + row.setSizeCategory(category.getSpeciesCategory().getSizeCategory()); + row.result.addAll(cellResults); + return row; + } + + @Override + public Voyage getVoyage() { + return voyage; + } + @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } @@ -77,14 +92,17 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAb this.echotype = echotype; } + @Override public Cell getCell() { return cell; } + @Override public void setCell(Cell cell) { this.cell = cell; } + @Override public List<Result> getResult() { return result; } @@ -94,6 +112,16 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAb this.result.add(result); } + @Override + public DataQuality getDataQuality() { + return dataQuality; + } + + @Override + public void setDataQuality(DataQuality dataQuality) { + this.dataQuality = dataQuality; + } + public Species getSpecies() { return species; } @@ -109,12 +137,4 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements ResultAb public void setSizeCategory(SizeCategory sizeCategory) { this.sizeCategory = sizeCategory; } - - public DataQuality getDataQuality() { - return dataQuality; - } - - public void setDataQuality(DataQuality dataQuality) { - this.dataQuality = dataQuality; - } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportExportModel.java index c44fdf7..0ad1b7f 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportExportModel.java @@ -49,8 +49,7 @@ public class EsduResultByEchotypeImportExportModel extends EchoBaseImportExportM super(separator); } - public static EsduResultByEchotypeImportExportModel forImport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultByEchotypeImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultByEchotypeImportExportModel model = new EsduResultByEchotypeImportExportModel(importDataContext.getCsvSeparator()); model.newForeignKeyColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); @@ -58,19 +57,12 @@ public class EsduResultByEchotypeImportExportModel extends EchoBaseImportExportM model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newForeignKeyColumn(EsduResultByEchotypeImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - for (DataMetadata metadata : dataMetadatas) { - String name = metadata.getName(); - model.newMandatoryColumn( - name, - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<EsduResultByEchotypeImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } - public static EsduResultByEchotypeImportExportModel forExport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultByEchotypeImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultByEchotypeImportExportModel model = new EsduResultByEchotypeImportExportModel(importDataContext.getCsvSeparator()); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportRow.java index 7d80c82..bc1866b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportRow.java @@ -20,14 +20,16 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; -import com.google.common.collect.Lists; +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; +import fr.ifremer.echobase.services.csv.CellAble; import fr.ifremer.echobase.services.csv.ResultAble; +import java.util.LinkedList; import java.util.List; /** @@ -36,46 +38,49 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class EsduResultByEchotypeImportRow implements ResultAble { +public class EsduResultByEchotypeImportRow implements ResultAble, CellAble { public static final String PROPERTY_VOYAGE = "voyage"; - public static final String PROPERTY_ECHOTYPE = "echotype"; - public static final String PROPERTY_CELL = "cell"; - public static final String PROPERTY_DATA_QUALITY = "dataQuality"; protected Voyage voyage; - - protected Echotype echotype; - protected Cell cell; - - protected List<Result> result = Lists.newArrayList(); - + protected Echotype echotype; + protected final List<Result> result = new LinkedList<>(); protected DataQuality dataQuality; - public void setVoyage(Voyage voyage) { - this.voyage = voyage; + public static EsduResultByEchotypeImportRow of(Voyage voyage, Cell cell, Category category, List<Result> cellResults) { + EsduResultByEchotypeImportRow row = new EsduResultByEchotypeImportRow(); + row.setVoyage(voyage); + row.setCell(cell); + row.setEchotype(category.getEchotype()); + row.result.addAll(cellResults); + return row; } - public Echotype getEchotype() { - return echotype; + @Override + public Voyage getVoyage() { + return voyage; } - public void setEchotype(Echotype echotype) { - this.echotype = echotype; + @Override + public void setVoyage(Voyage voyage) { + this.voyage = voyage; } + @Override public Cell getCell() { return cell; } + @Override public void setCell(Cell cell) { this.cell = cell; } + @Override public List<Result> getResult() { return result; } @@ -85,11 +90,21 @@ public class EsduResultByEchotypeImportRow implements ResultAble { this.result.add(result); } + @Override public DataQuality getDataQuality() { return dataQuality; } + @Override public void setDataQuality(DataQuality dataQuality) { this.dataQuality = dataQuality; } + + 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/EsduResultBySpeciesAndAgeCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportExportModel.java index 6b9eb38..8f0c471 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportExportModel.java @@ -38,9 +38,11 @@ import java.util.List; */ public class EsduResultBySpeciesAndAgeCategoryImportExportModel extends EchoBaseImportExportModelSupport<EsduResultBySpeciesAndAgeCategoryImportRow> { + protected static final String HEADER_SPECIES = "baracoudaCode"; + public static final String[] COLUMN_NAMES_TO_EXCLUDE = { EchoBaseCsvUtil.CELL_NAME, - Species.PROPERTY_BARACOUDA_CODE, + HEADER_SPECIES, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_DATA_QUALITY, @@ -51,37 +53,29 @@ public class EsduResultBySpeciesAndAgeCategoryImportExportModel extends EchoBase super(separator); } - public static EsduResultBySpeciesAndAgeCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultBySpeciesAndAgeCategoryImportExportModel forImport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultBySpeciesAndAgeCategoryImportExportModel model = new EsduResultBySpeciesAndAgeCategoryImportExportModel(importDataContext.getCsvSeparator()); model.newForeignKeyColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); model.newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); model.newForeignKeyColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - for (DataMetadata metadata : dataMetadatas) { - String name = metadata.getName(); - model.newMandatoryColumn( - name, - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<EsduResultBySpeciesAndAgeCategoryImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } - public static EsduResultBySpeciesAndAgeCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, - List<DataMetadata> dataMetadatas) { + public static EsduResultBySpeciesAndAgeCategoryImportExportModel forExport(VoyageResultsImportDataContext importDataContext, List<DataMetadata> dataMetadatas) { EsduResultBySpeciesAndAgeCategoryImportExportModel model = new EsduResultBySpeciesAndAgeCategoryImportExportModel(importDataContext.getCsvSeparator()); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); model.newColumnForExport(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); model.newColumnForExport(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); model.newColumnForExport(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); addResultsColumns(model, dataMetadatas); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java index 46194f7..3e29731 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java @@ -20,14 +20,16 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; -import com.google.common.collect.Lists; +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.DataQuality; import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.services.csv.CellAble; import fr.ifremer.echobase.services.csv.ResultAble; +import java.util.LinkedList; import java.util.List; /** @@ -37,31 +39,40 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class EsduResultBySpeciesAndAgeCategoryImportRow implements ResultAble { +public class EsduResultBySpeciesAndAgeCategoryImportRow 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_AGE_CATEGORY = "ageCategory"; - public static final String PROPERTY_AGE_CATEGORY_MEANING = "ageCategoryMeaning"; - public static final String PROPERTY_DATA_QUALITY = "dataQuality"; protected Voyage voyage; - protected Cell cell; - - protected List<Result> result = Lists.newArrayList(); - + protected final List<Result> result = new LinkedList<>(); protected Species species; protected DataQuality dataQuality; - private String ageCategory; - private String ageCategoryMeaning; + protected String ageCategory; + protected String ageCategoryMeaning; + + public static EsduResultBySpeciesAndAgeCategoryImportRow of(Voyage voyage, Cell cell, Category category, List<Result> cellResults) { + EsduResultBySpeciesAndAgeCategoryImportRow row = new EsduResultBySpeciesAndAgeCategoryImportRow(); + row.setVoyage(voyage); + row.setCell(cell); + row.setSpecies(category.getSpeciesCategory().getSpecies()); + row.setAgeCategory(category.getSpeciesCategory().getAgeCategory().getName()); + row.setAgeCategoryMeaning(category.getSpeciesCategory().getAgeCategory().getMeaning()); + row.result.addAll(cellResults); + return row; + } + + @Override + public Voyage getVoyage() { + return voyage; + } + @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } @@ -74,30 +85,17 @@ public class EsduResultBySpeciesAndAgeCategoryImportRow implements ResultAble { this.species = species; } + @Override public Cell getCell() { return cell; } + @Override public void setCell(Cell cell) { this.cell = cell; } - public String getAgeCategory() { - return ageCategory; - } - - public void setAgeCategory(String ageCategory) { - this.ageCategory = ageCategory; - } - - public String getAgeCategoryMeaning() { - return ageCategoryMeaning; - } - - public void setAgeCategoryMeaning(String ageCategoryMeaning) { - this.ageCategoryMeaning = ageCategoryMeaning; - } - + @Override public List<Result> getResult() { return result; } @@ -107,11 +105,29 @@ public class EsduResultBySpeciesAndAgeCategoryImportRow implements ResultAble { this.result.add(result); } + @Override public DataQuality getDataQuality() { return dataQuality; } + @Override public void setDataQuality(DataQuality dataQuality) { this.dataQuality = dataQuality; } + + public String getAgeCategory() { + return ageCategory; + } + + public void setAgeCategory(String ageCategory) { + this.ageCategory = ageCategory; + } + + public String getAgeCategoryMeaning() { + return ageCategoryMeaning; + } + + public void setAgeCategoryMeaning(String ageCategoryMeaning) { + this.ageCategoryMeaning = ageCategoryMeaning; + } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportExportModel.java index e1dcc52..ad2e90f 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportExportModel.java @@ -38,9 +38,11 @@ import java.util.List; */ public class EsduResultBySpeciesAndSizeCategoryImportExportModel extends EchoBaseImportExportModelSupport<EsduResultBySpeciesAndSizeCategoryImportRow> { + protected static final String HEADER_SPECIES = "baracoudaCode"; + public static final String[] COLUMN_NAMES_TO_EXCLUDE = { EchoBaseCsvUtil.CELL_NAME, - Species.PROPERTY_BARACOUDA_CODE, + HEADER_SPECIES, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, @@ -59,16 +61,10 @@ public class EsduResultBySpeciesAndSizeCategoryImportExportModel extends EchoBas model.newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueParser()); model.newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); model.newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); model.newForeignKeyColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - for (DataMetadata metadata : dataMetadatas) { - String name = metadata.getName(); - model.newMandatoryColumn( - name, - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<EsduResultBySpeciesAndSizeCategoryImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } @@ -81,7 +77,7 @@ public class EsduResultBySpeciesAndSizeCategoryImportExportModel extends EchoBas model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, importDataContext.getCellValueFormatter()); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); model.newColumnForExport(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); addResultsColumns(model, dataMetadatas); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java index eb84326..5b99837 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java @@ -20,14 +20,16 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; -import com.google.common.collect.Lists; +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.DataQuality; import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.services.csv.CellAble; import fr.ifremer.echobase.services.csv.ResultAble; +import java.util.LinkedList; import java.util.List; /** @@ -37,31 +39,40 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class EsduResultBySpeciesAndSizeCategoryImportRow implements ResultAble { +public class EsduResultBySpeciesAndSizeCategoryImportRow 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_SIZE_CATEGORY = "sizeCategory"; - public static final String PROPERTY_SIZE_CATEGORY_MEANING = "sizeCategoryMeaning"; - public static final String PROPERTY_DATA_QUALITY = "dataQuality"; protected Voyage voyage; - protected Cell cell; - - protected List<Result> result = Lists.newArrayList(); - + protected final List<Result> result = new LinkedList<>(); protected Species species; protected DataQuality dataQuality; - private String sizeCategory; - private String sizeCategoryMeaning; + protected String sizeCategory; + protected String sizeCategoryMeaning; + + public static EsduResultBySpeciesAndSizeCategoryImportRow of(Voyage voyage, Cell cell, Category category, List<Result> results) { + EsduResultBySpeciesAndSizeCategoryImportRow row = new EsduResultBySpeciesAndSizeCategoryImportRow(); + row.setVoyage(voyage); + row.setCell(cell); + row.setSpecies(category.getSpeciesCategory().getSpecies()); + row.setSizeCategory(category.getSpeciesCategory().getSizeCategory().getName()); + row.setSizeCategoryMeaning(category.getSpeciesCategory().getSizeCategory().getMeaning()); + row.result.addAll(results); + return row; + } + + @Override + public Voyage getVoyage() { + return voyage; + } + @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } @@ -74,30 +85,17 @@ public class EsduResultBySpeciesAndSizeCategoryImportRow implements ResultAble { this.species = species; } + @Override public Cell getCell() { return cell; } + @Override public void setCell(Cell cell) { this.cell = cell; } - public String getSizeCategory() { - return sizeCategory; - } - - public void setSizeCategory(String sizeCategory) { - this.sizeCategory = sizeCategory; - } - - public String getSizeCategoryMeaning() { - return sizeCategoryMeaning; - } - - public void setSizeCategoryMeaning(String sizeCategoryMeaning) { - this.sizeCategoryMeaning = sizeCategoryMeaning; - } - + @Override public List<Result> getResult() { return result; } @@ -107,11 +105,29 @@ public class EsduResultBySpeciesAndSizeCategoryImportRow implements ResultAble { this.result.add(result); } + @Override public DataQuality getDataQuality() { return dataQuality; } + @Override public void setDataQuality(DataQuality dataQuality) { this.dataQuality = dataQuality; } + + public String getSizeCategory() { + return sizeCategory; + } + + public void setSizeCategory(String sizeCategory) { + this.sizeCategory = sizeCategory; + } + + public String getSizeCategoryMeaning() { + return sizeCategoryMeaning; + } + + public void setSizeCategoryMeaning(String sizeCategoryMeaning) { + this.sizeCategoryMeaning = sizeCategoryMeaning; + } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportExportModel.java index d25b367..766849b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportExportModel.java @@ -81,12 +81,7 @@ public class VoyageResultsMapFishCellImportExportModel extends EchoBaseImportExp model.newMandatoryColumn(VoyageResultsMapFishCellImportRow.PROPERTY_DATA_GRID_LATITUDE_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(VoyageResultsMapFishCellImportRow.PROPERTY_DATA_GRID_DEPTH_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); - for (DataMetadata metadata : dataMetadatas) { - model.newMandatoryColumn( - metadata.getName(), - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<VoyageResultsMapFishCellImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportRow.java index ecd13be..b805215 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapFishCellImportRow.java @@ -32,7 +32,7 @@ import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.services.csv.ResultAble; -import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; /** @@ -73,7 +73,7 @@ public class VoyageResultsMapFishCellImportRow implements ResultAble { protected Voyage voyage; - protected final List<Result> result = new ArrayList<>(); + protected final List<Result> result = new LinkedList<>(); protected Species species; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportExportModel.java index a5f4d67..4323298 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportExportModel.java @@ -69,12 +69,7 @@ public class VoyageResultsMapOtherCellImportExportModel extends EchoBaseImportEx model.newMandatoryColumn(VoyageResultsMapOtherCellImportRow.PROPERTY_DATA_GRID_LATITUDE_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(VoyageResultsMapOtherCellImportRow.PROPERTY_DATA_GRID_DEPTH_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); - for (DataMetadata metadata : dataMetadatas) { - model.newMandatoryColumn( - metadata.getName(), - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<VoyageResultsMapOtherCellImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportRow.java index 6ed408d..a741316 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsMapOtherCellImportRow.java @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.services.csv.ResultAble; -import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; /** @@ -63,7 +63,7 @@ public class VoyageResultsMapOtherCellImportRow implements ResultAble { protected Voyage voyage; - protected final List<Result> result = new ArrayList<>(); + protected final List<Result> result = new LinkedList<>(); protected DataQuality dataQuality; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportExportModel.java index 4f7641f..0315b14 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportExportModel.java @@ -40,9 +40,11 @@ import java.util.List; */ public class VoyageResultsRegionCellResultImportExportModel extends EchoBaseImportExportModelSupport<VoyageResultsRegionCellResultImportRow> { + protected static final String HEADER_SPECIES = "baracoudaCode"; + public static final String[] COLUMN_NAMES_TO_EXCLUDE = { EchoBaseCsvUtil.CELL_NAME, - Species.PROPERTY_BARACOUDA_CODE, + HEADER_SPECIES, VoyageResultsRegionCellResultImportRow.PROPERTY_VOYAGE, VoyageResultsRegionCellResultImportRow.PROPERTY_SIZE_CATEGORY, VoyageResultsRegionCellResultImportRow.PROPERTY_ECHOTYPE, @@ -59,16 +61,11 @@ public class VoyageResultsRegionCellResultImportExportModel extends EchoBaseImpo model.newForeignKeyColumn(VoyageResultsRegionCellResultImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(EchoBaseCsvUtil.CELL_NAME, VoyageResultsRegionCellResultImportRow.PROPERTY_CELL, Cell.class, Cell.PROPERTY_NAME, importDataContext.getVoyageRegionsByName()); model.newForeignKeyColumn(VoyageResultsRegionCellResultImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, importDataContext.getVoyageEchotypesByName()); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, VoyageResultsRegionCellResultImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, VoyageResultsRegionCellResultImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); model.newForeignKeyColumn(VoyageResultsRegionCellResultImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, importDataContext.getSizeCategoriesByName()); model.newForeignKeyColumn(VoyageResultsRegionCellResultImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); - for (DataMetadata metadata : dataMetadatas) { - model.newMandatoryColumn( - metadata.getName(), - EchoBaseCsvUtil.newResultValueParser(metadata, false), - EchoBaseCsvUtil.<VoyageResultsRegionCellResultImportRow>newResultValueSetter()); - } + addResultsColumnsForImport(model, dataMetadatas); return model; } @@ -79,7 +76,7 @@ public class VoyageResultsRegionCellResultImportExportModel extends EchoBaseImpo model.newColumnForExport(VoyageResultsRegionCellResultImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.CELL_NAME, VoyageResultsRegionCellResultImportRow.PROPERTY_CELL, EchoBaseCsvUtil.CELL_FORMATTER); model.newColumnForExport(VoyageResultsRegionCellResultImportRow.PROPERTY_ECHOTYPE, EchoBaseCsvUtil.ECHOTYPE_FORMATTER); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, VoyageResultsRegionCellResultImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, VoyageResultsRegionCellResultImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); model.newColumnForExport(VoyageResultsRegionCellResultImportRow.PROPERTY_SIZE_CATEGORY, EchoBaseCsvUtil.SIZE_CATEGORY_FORMATTER); model.newColumnForExport(VoyageResultsRegionCellResultImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java index 65abf87..835aff3 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java @@ -31,7 +31,7 @@ import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.services.csv.ResultAble; -import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; /** @@ -62,7 +62,7 @@ public class VoyageResultsRegionCellResultImportRow implements ResultAble { protected Cell cell; - protected final List<Result> result = new ArrayList<>(); + protected final List<Result> result = new LinkedList<>(); protected Species species; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportExportModel.java index 8db503d..8689524 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportExportModel.java @@ -36,6 +36,7 @@ import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImp public class VoyageResultsVoyageEchotypeImportExportModel extends EchoBaseImportExportModelSupport<VoyageResultsVoyageEchotypeImportRow> { public static final String HEADER_ECHOTYPE_NAME = "echotypeName"; + protected static final String HEADER_SPECIES = "baracoudaCode"; private VoyageResultsVoyageEchotypeImportExportModel(char separator) { super(separator); @@ -48,7 +49,7 @@ public class VoyageResultsVoyageEchotypeImportExportModel extends EchoBaseImport model.newMandatoryColumn(VoyageResultsVoyageEchotypeImportRow.PROPERTY_MEANING, Echotype.PROPERTY_MEANING); model.newForeignKeyColumn(VoyageResultsVoyageEchotypeImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(EchoBaseCsvUtil.DEPTH_STRATUM_ID, Echotype.PROPERTY_DEPTH_STRATUM, DepthStratum.class, DepthStratum.PROPERTY_ID, importDataContext.getDepthStratumsById()); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, Echotype.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, Echotype.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); return model; } @@ -60,7 +61,7 @@ public class VoyageResultsVoyageEchotypeImportExportModel extends EchoBaseImport model.newColumnForExport(VoyageResultsVoyageEchotypeImportRow.PROPERTY_MEANING, Echotype.PROPERTY_MEANING); model.newColumnForExport(VoyageResultsVoyageEchotypeImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(EchoBaseCsvUtil.DEPTH_STRATUM_ID, Echotype.PROPERTY_DEPTH_STRATUM, EchoBaseCsvUtil.DEPTH_STRATUM_FORMATTER); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, Echotype.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, Echotype.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthAgeKeyImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthAgeKeyImportExportModel.java index 4148419..72ef37d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthAgeKeyImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthAgeKeyImportExportModel.java @@ -35,6 +35,8 @@ import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImp */ public class VoyageResultsVoyageLengthAgeKeyImportExportModel extends EchoBaseImportExportModelSupport<VoyageResultsVoyageLengthAgeKeyImportRow> { + protected static final String HEADER_SPECIES = "baracoudaCode"; + private VoyageResultsVoyageLengthAgeKeyImportExportModel(char separator) { super(separator); } @@ -48,7 +50,7 @@ public class VoyageResultsVoyageLengthAgeKeyImportExportModel extends EchoBaseIm model.newMandatoryColumn(LengthAgeKey.PROPERTY_LENGTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(LengthAgeKey.PROPERTY_METADATA); model.newForeignKeyColumn(LengthAgeKey.PROPERTY_STRATA, Strata.class, Strata.PROPERTY_NAME, importDataContext.getStratasByName()); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, LengthAgeKey.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(HEADER_SPECIES, LengthAgeKey.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); return model; } @@ -62,7 +64,7 @@ public class VoyageResultsVoyageLengthAgeKeyImportExportModel extends EchoBaseIm model.newColumnForExport(LengthAgeKey.PROPERTY_LENGTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newColumnForExport(LengthAgeKey.PROPERTY_METADATA); model.newColumnForExport(LengthAgeKey.PROPERTY_STRATA, LengthAgeKey.PROPERTY_STRATA, EchoBaseCsvUtil.STRATA_FORMATTER); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, LengthAgeKey.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, LengthAgeKey.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportExportModel.java index eaa94b5..1bc6ee0 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportExportModel.java @@ -38,6 +38,7 @@ public class VoyageResultsVoyageLengthWeightKeyImportExportModel extends EchoBas public static final String HEADER_A_PARAMETER = "aParameter"; public static final String HEADER_B_PARAMETER = "bParameter"; + protected static final String HEADER_SPECIES = "baracoudaCode"; private VoyageResultsVoyageLengthWeightKeyImportExportModel(char separator) { super(separator); @@ -50,8 +51,8 @@ public class VoyageResultsVoyageLengthWeightKeyImportExportModel extends EchoBas model.newMandatoryColumn(HEADER_B_PARAMETER, LengthWeightKey.PROPERTY_BPARAMETER, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newForeignKeyColumn(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, importDataContext.getVoyagesByName()); model.newForeignKeyColumn(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, importDataContext.getSizeCategoriesByName()); - model.newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); - model.newForeignKeyColumn(LengthWeightKey.PROPERTY_STRATA, Strata.class, Strata.PROPERTY_NAME, importDataContext.getStratasByName()); + model.newForeignKeyColumn(HEADER_SPECIES, VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, importDataContext.getSpeciesByBaracoudaCode()); + model.newForeignKeyColumn(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_STRATA, Strata.class, Strata.PROPERTY_NAME, importDataContext.getStratasByName()); return model; } @@ -63,8 +64,8 @@ public class VoyageResultsVoyageLengthWeightKeyImportExportModel extends EchoBas model.newColumnForExport(HEADER_B_PARAMETER, LengthWeightKey.PROPERTY_BPARAMETER, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newColumnForExport(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_VOYAGE, EchoBaseCsvUtil.VOYAGE_FORMATTER); model.newColumnForExport(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SIZE_CATEGORY, EchoBaseCsvUtil.SIZE_CATEGORY_FORMATTER); - model.newColumnForExport(Species.PROPERTY_BARACOUDA_CODE, VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); - model.newColumnForExport(LengthWeightKey.PROPERTY_STRATA, EchoBaseCsvUtil.STRATA_FORMATTER); + model.newColumnForExport(HEADER_SPECIES, VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_SPECIES, EchoBaseCsvUtil.SPECIES_FORMATTER); + model.newColumnForExport(VoyageResultsVoyageLengthWeightKeyImportRow.PROPERTY_STRATA, EchoBaseCsvUtil.STRATA_FORMATTER); return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportRow.java index ef57446..ddac939 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageLengthWeightKeyImportRow.java @@ -42,6 +42,7 @@ public class VoyageResultsVoyageLengthWeightKeyImportRow implements Serializable public static final String PROPERTY_VOYAGE = "voyage"; public static final String PROPERTY_SPECIES = "species"; public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory"; + public static final String PROPERTY_STRATA = "strata"; protected final LengthWeightKey lengthWeightKey; protected Species species; diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeImportServiceIT.java new file mode 100644 index 0000000..b7cf342 --- /dev/null +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageResultsEsduCellOnlyEchotypeImportServiceIT.java @@ -0,0 +1,96 @@ +/* + * #%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; + +import com.google.common.collect.Iterables; +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Category; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; + +import java.io.IOException; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 0.3 + */ +public class VoyageResultsEsduCellOnlyEchotypeImportServiceIT extends VoyageResultsImportServiceITSupport { + + public VoyageResultsEsduCellOnlyEchotypeImportServiceIT() { + super(1); + } + + protected FakeEchoBaseServiceContext initContext() { + return new FakeEchoBaseServiceContext(fixtures.IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT()); + } + + protected String[] getImportPath(String filename) { + return new String[]{"/import-data", "result", "esdu", filename}; + } + + @Override + protected VoyageResultsImportConfiguration createConfiguration() throws IOException { + VoyageResultsImportConfiguration configuration = super.createConfiguration(); + configuration.setImportType(ImportType.RESULT_ESDU); + + InputFile inputFile = configuration.getEsduByEchotypeFile(); + prepareInputFile(inputFile, getImportPath("byEchotype_small.csv.gz")); + + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, configuration.getVoyageId(), inputFile); + + configuration.setDataProcessingId(getDataProcessingId()); + + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, configuration.getVoyageId(), inputFile); + return configuration; + } + + @Override + protected void assertBeforeImport() { + assertImportCommonData(); + assertImportOperations(); + assertImportSampleDatas(); + assertImportVoyageResult(); + assertNoEntities(Result.class); + } + + @Override + protected void assertAfertImport(ImportDataResult<VoyageResultsImportConfiguration> result) throws IOException { +// Set<ImportDataFileResult> importDataFileResults = result.getImportResults(); +// assertNbIds(importDataFileResults, 0, 43533); +// +// assertCsvImportResult(importDataFileResults, 0, Result.class, 43533); +// assertCsvImportResult(importDataFileResults, 0, Category.class, 7); + + int nbCategory = 7; + int nbResult = 1569; +// int nbResult = 43533; + + ImportDataFileResult importDataFileResult = Iterables.get(result.getImportResults(), 0); + assertCsvImportResultPerEntity(importDataFileResult, Result.class, nbResult, 0, nbResult); + assertCsvImportResultPerEntity(importDataFileResult, Category.class, nbCategory, 0, nbCategory); + assertCsvImportResult0(importDataFileResult, nbResult); + + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.