r458 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase/csv echobase-services/src/main/java/fr/ifremer/echobase/services/importdata echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv echobase-services/src/test/java/fr/ifremer/echobase/services echobase-services/src/test/java/fr/ifremer/echobase/services/importdata
Author: tchemit Date: 2012-03-30 00:54:10 +0200 (Fri, 30 Mar 2012) New Revision: 458 Url: http://forge.codelutin.com/repositories/revision/echobase/458 Log: fixes #1059: S?\195?\169lectionner un dataProcessing pour l'import des r?\195?\169sultats esdu + mise en commun du code de cr?\195?\169ation de rResult Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java 2012-03-29 22:54:10 UTC (rev 458) @@ -40,16 +40,21 @@ final Voyage voyage; - private final CellDAO cellDAO; + private final Map<String, Cell> esduCellMap; - private final Map<String, Cell> esduCells; + private CellDAO cellDAO; protected CellValueParser(Voyage voyage, CellDAO cellDAO) { this.voyage = voyage; + this.esduCellMap = Maps.newTreeMap(); this.cellDAO = cellDAO; - esduCells = Maps.newTreeMap(); } + protected CellValueParser(Voyage voyage, Map<String, Cell> esduCellMap) { + this.voyage = voyage; + this.esduCellMap = esduCellMap; + } + @Override public Cell parse(String value) throws ParseException { @@ -97,9 +102,9 @@ protected Cell getEsduCell(String esduCellId) throws ParseException { - Cell result = esduCells.get(esduCellId); + Cell result = esduCellMap.get(esduCellId); - if (result == null) { + if (result == null && cellDAO != null) { try { List<Cell> cells = cellDAO.findAllByName(esduCellId); @@ -112,7 +117,7 @@ result = cells.get(0); // store it in cache - esduCells.put(esduCellId, result); + esduCellMap.put(esduCellId, result); } catch (TopiaException e) { throw new ImportRuntimeException( Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java 2012-03-29 22:54:10 UTC (rev 458) @@ -39,6 +39,7 @@ import java.text.ParseException; import java.util.Collection; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -131,8 +132,15 @@ return new CellValueParser(voyage, cellDAO); } + public static ValueParser<Cell> newCellValueParser(Voyage voyage, + Map<String, Cell> esduCellMap) { + return new CellValueParser(voyage, esduCellMap); + } + public static interface ResultAble { void addResult(Result value); + + List<Result> getResult(); } public static <B extends ResultAble> ValueSetter<B, Result> newResultValueSetter() { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-03-29 22:54:10 UTC (rev 458) @@ -30,6 +30,7 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.csv.EchobaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EntityModificationLog; @@ -39,6 +40,8 @@ import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.DataDAO; import fr.ifremer.echobase.entities.data.Echotype; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.ResultDAO; import fr.ifremer.echobase.entities.references.AgeCategory; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.SexCategory; @@ -247,12 +250,13 @@ protected Map<String, SpeciesCategory> speciesCategories = Maps.newTreeMap(); - protected SpeciesCategory getSpeciesCategory(SpeciesCategoryDAO speciesCategoryDAO, - Species species, - SizeCategory sizeCategory, - AgeCategory ageCategory, - SexCategory sexCategory, - CsvFileImportResult importResult) { + protected SpeciesCategory getSpeciesCategory( + SpeciesCategoryDAO speciesCategoryDAO, + Species species, + SizeCategory sizeCategory, + AgeCategory ageCategory, + SexCategory sexCategory, + CsvFileImportResult importResult) { String key = species == null ? "" : species.getBaracoudaCode(); key += "#" + (ageCategory == null ? "" : ageCategory.getName()); @@ -293,13 +297,14 @@ protected Map<String, Category> categories = Maps.newTreeMap(); - protected Category getResultCategory(CategoryDAO categoryDAO, - SpeciesCategoryDAO speciesCategoryDAO, - Echotype echotype, - Species species, - SizeCategory sizeCategory, - AgeCategory ageCategory, - CsvFileImportResult importResult) { + protected Category getResultCategory( + CategoryDAO categoryDAO, + SpeciesCategoryDAO speciesCategoryDAO, + Echotype echotype, + Species species, + SizeCategory sizeCategory, + AgeCategory ageCategory, + CsvFileImportResult importResult) { // get species categorie first @@ -318,10 +323,11 @@ return category; } - protected Category getResultCategory(CategoryDAO categoryDAO, - Echotype echotype, - SpeciesCategory speciesCategory, - CsvFileImportResult importResult) { + protected Category getResultCategory( + CategoryDAO categoryDAO, + Echotype echotype, + SpeciesCategory speciesCategory, + CsvFileImportResult importResult) { String key = speciesCategory == null ? "" : speciesCategory.getTopiaId(); key += "#" + (echotype == null ? "" : echotype.getName()); @@ -355,9 +361,10 @@ return category; } - protected List<DataMetadata> getMetas(String[] columnNamesToExclude, - Map<String, DataMetadata> dataMetadataMap, - String... headers) { + protected List<DataMetadata> getMetas( + String[] columnNamesToExclude, + Map<String, DataMetadata> dataMetadataMap, + String... headers) { List<String> metadataNames = Lists.newArrayList(headers); for (String columnToExclude : columnNamesToExclude) { @@ -400,4 +407,23 @@ importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); } + + protected void addResults(EchobaseCsvUtil.ResultAble row, + Cell cell, + Category category, + String resultLabel, + ResultDAO dao, + CsvFileImportResult importResult) { + List<Result> results = row.getResult(); + + for (Result result : results) { + + result.setCategory(category); + result.setResultLabel(resultLabel); + + Result resultCreated = create(dao, result); + cell.addResult(resultCreated); + importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); + } + } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-03-29 22:54:10 UTC (rev 458) @@ -34,7 +34,6 @@ import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.CategoryDAO; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -48,7 +47,6 @@ import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.SpeciesCategory; import fr.ifremer.echobase.entities.references.SpeciesCategoryDAO; -import fr.ifremer.echobase.services.DecoratorService; import fr.ifremer.echobase.services.ImportException; import fr.ifremer.echobase.services.importdata.csv.EsduResultByEchotypeAndSpeciesCategoryImportModel; import fr.ifremer.echobase.services.importdata.csv.EsduResultByEchotypeAndSpeciesCategoryImportRow; @@ -60,10 +58,8 @@ import fr.ifremer.echobase.services.importdata.csv.EsduResultBySpeciesAndSizeCategoryImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; -import org.nuiton.util.decorator.Decorator; import java.io.Reader; import java.util.List; @@ -115,6 +111,10 @@ DataProcessing dataProcessing = getEntityById(DataProcessing.class, configuration.getDataProcessingId()); + // get esdu cells usables + Map<String, Cell> esduCellMap = Maps.uniqueIndex( + dataProcessing.getCell(), EchoBaseFunctions.CELL_BY_NAME); + // index all echotypes of thi voyage Map<String, Echotype> echotypeMap = Maps.uniqueIndex( voyage.getEchotype(), EchoBaseFunctions.ECHOTYPE_NAME); @@ -130,7 +130,8 @@ inputFile, voyage, echotypeMap, - dataMetadataMap + dataMetadataMap, + esduCellMap ); addResultAndLog(result, inputFile, importResult, user); } @@ -144,7 +145,8 @@ echotypeMap, dataMetadataMap, speciesMap, - sizeCategoryMap + sizeCategoryMap, + esduCellMap ); addResultAndLog(result, inputFile, importResult, user); } @@ -157,7 +159,8 @@ voyage, dataMetadataMap, speciesMap, - sizeCategoryMap + sizeCategoryMap, + esduCellMap ); addResultAndLog(result, inputFile, importResult, user); } @@ -171,7 +174,8 @@ voyage, dataMetadataMap, speciesMap, - ageCategoryMap + ageCategoryMap, + esduCellMap ); addResultAndLog(result, inputFile, importResult, user); } @@ -183,7 +187,8 @@ InputFile inputFile, Voyage voyage, Map<String, Echotype> echotypeMap, - Map<String, DataMetadata> dataMetadataMap) throws ImportException { + Map<String, DataMetadata> dataMetadataMap, + Map<String, Cell> esduCellMap) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of esdu result by echotype from file " + @@ -202,35 +207,27 @@ dataMetadataMap, header); - CellDAO cellDAO = (CellDAO) getDAO(Cell.class); - EsduResultByEchotypeImportModel csvModel = new EsduResultByEchotypeImportModel( serviceContext.getConfiguration().getCsvSeparator(), echotypeMap, voyage, - cellDAO, + esduCellMap, metas); CategoryDAO categoryDAO = (CategoryDAO) getDAO(Category.class); - SpeciesCategoryDAO speciesCategoryDAO = - getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); + ResultDAO dao = getDAO(Result.class, ResultDAO.class); String resultLabel = configuration.getResultLabel(); - DecoratorService decoratorService = getService(DecoratorService.class); - Decorator<Category> categoryDecorator = decoratorService.getDecorator(getLocale(), Category.class, null); Reader reader = getInputFileReader(inputFile); try { Import<EsduResultByEchotypeImportRow> importer = EchoBaseImport.newImport(csvModel, reader); - int rowNumber = 0; - configuration.incrementsProgression(); for (EsduResultByEchotypeImportRow row : importer) { configuration.incrementsProgression(); - rowNumber++; Cell cell = row.getCell(); @@ -239,28 +236,7 @@ null, importResult); - if (rowNumber % 100 == 0) { - if (log.isInfoEnabled()) { - log.info("Treat row " + rowNumber + " for esdu cell " + - cell.getName() + " and category " + - categoryDecorator.toString(category)); - } - } - List<Result> results = row.getResult(); - - TopiaDAO<Result> dao = getDAO(Result.class); - - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(dao, result); - - cell.addResult(resultCreated); - - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, dao, importResult); } return importResult; @@ -278,7 +254,8 @@ Map<String, Echotype> echotypeMap, Map<String, DataMetadata> dataMetadataMap, Map<String, Species> speciesMap, - Map<String, SizeCategory> sizeCategoryMap) throws ImportException { + Map<String, SizeCategory> sizeCategoryMap, + Map<String, Cell> esduCellMap) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of acoustic result by echotype " + @@ -299,8 +276,6 @@ dataMetadataMap, header); - CellDAO cellDAO = getDAO(Cell.class, CellDAO.class); - SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); @@ -314,13 +289,9 @@ speciesMap, sizeCategoryMap, voyage, - cellDAO, + esduCellMap, metas); - - DecoratorService decoratorService = getService(DecoratorService.class); - Decorator<Category> categoryDecorator = decoratorService.getDecorator(getLocale(), Category.class, null); - String resultLabel = configuration.getResultLabel(); Reader reader = getInputFileReader(inputFile); @@ -328,13 +299,10 @@ EchoBaseImport<EsduResultByEchotypeAndSpeciesCategoryImportRow> importer = EchoBaseImport.newImport(csvModel, reader); - int rowNumber = 0; - configuration.incrementsProgression(); for (EsduResultByEchotypeAndSpeciesCategoryImportRow row : importer) { configuration.incrementsProgression(); - rowNumber++; Cell cell = row.getCell(); @@ -346,27 +314,7 @@ null, importResult); - if (rowNumber % 100 == 0) { - if (log.isInfoEnabled()) { - log.info("Treat row " + rowNumber + " for esdu cell " + - cell.getName() + " and category " + - categoryDecorator.toString(category)); - } - } - - List<Result> results = row.getResult(); - - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(dao, result); - - cell.addResult(resultCreated); - - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, dao, importResult); } return importResult; @@ -382,7 +330,8 @@ Voyage voyage, Map<String, DataMetadata> dataMetadataMap, Map<String, Species> speciesMap, - Map<String, SizeCategory> sizeCategoryMap) throws ImportException { + Map<String, SizeCategory> sizeCategoryMap, + Map<String, Cell> esduCellMap) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of acoustic result by speices and size category from file " + @@ -403,26 +352,23 @@ dataMetadataMap, header); - CellDAO cellDAO = (CellDAO) getDAO(Cell.class); - SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); SizeCategoryDAO sizeCategoryDAO = getDAO(SizeCategory.class, SizeCategoryDAO.class); + ResultDAO dao = getDAO(Result.class, ResultDAO.class); + EsduResultBySpeciesAndSizeCategoryImportModel csvModel = new EsduResultBySpeciesAndSizeCategoryImportModel( serviceContext.getConfiguration().getCsvSeparator(), speciesMap, voyage, - cellDAO, + esduCellMap, metas); CategoryDAO categoryDAO = (CategoryDAO) getDAO(Category.class); - DecoratorService decoratorService = getService(DecoratorService.class); - Decorator<Category> categoryDecorator = decoratorService.getDecorator(getLocale(), Category.class, null); - String resultLabel = configuration.getResultLabel(); Reader reader = getInputFileReader(inputFile); @@ -430,13 +376,10 @@ EchoBaseImport<EsduResultBySpeciesAndSizeCategoryImportRow> importer = EchoBaseImport.newImport(csvModel, reader); - int rowNumber = 0; - configuration.incrementsProgression(); for (EsduResultBySpeciesAndSizeCategoryImportRow row : importer) { configuration.incrementsProgression(); - rowNumber++; Cell cell = row.getCell(); @@ -469,27 +412,7 @@ null, importResult); - if (rowNumber % 100 == 0) { - if (log.isInfoEnabled()) { - log.info("Treat row " + rowNumber + " for esdu cell " + - cell.getName() + " and category " + - categoryDecorator.toString(category)); - } - } - - List<Result> results = row.getResult(); - - TopiaDAO<Result> dao = getDAO(Result.class); - - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(dao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, dao, importResult); } return importResult; @@ -506,7 +429,8 @@ Voyage voyage, Map<String, DataMetadata> dataMetadataMap, Map<String, Species> speciesMap, - Map<String, AgeCategory> ageCategoryMap) throws ImportException { + Map<String, AgeCategory> ageCategoryMap, + Map<String, Cell> esduCellMap) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of acoustic result by species and age category from file " + @@ -527,24 +451,21 @@ dataMetadataMap, header); - CellDAO cellDAO = (CellDAO) getDAO(Cell.class); SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); AgeCategoryDAO ageCategoryDAO = getDAO(AgeCategory.class, AgeCategoryDAO.class); CategoryDAO categoryDAO = (CategoryDAO) getDAO(Category.class); + ResultDAO dao = getDAO(Result.class, ResultDAO.class); + EsduResultBySpeciesAndAgeCategoryImportModel csvModel = new EsduResultBySpeciesAndAgeCategoryImportModel( serviceContext.getConfiguration().getCsvSeparator(), speciesMap, voyage, - cellDAO, + esduCellMap, metas); - - DecoratorService decoratorService = getService(DecoratorService.class); - Decorator<Category> categoryDecorator = decoratorService.getDecorator(getLocale(), Category.class, null); - String resultLabel = configuration.getResultLabel(); Reader reader = getInputFileReader(inputFile); @@ -552,13 +473,10 @@ EchoBaseImport<EsduResultBySpeciesAndAgeCategoryImportRow> importer = EchoBaseImport.newImport(csvModel, reader); - int rowNumber = 0; - configuration.incrementsProgression(); for (EsduResultBySpeciesAndAgeCategoryImportRow row : importer) { configuration.incrementsProgression(); - rowNumber++; Cell cell = row.getCell(); @@ -591,27 +509,7 @@ ageCategory, importResult); - if (rowNumber % 100 == 0) { - if (log.isInfoEnabled()) { - log.info("Treat row " + rowNumber + " for esdu cell " + - cell.getName() + " and category " + - categoryDecorator.toString(category)); - } - } - - List<Result> results = row.getResult(); - - TopiaDAO<Result> dao = getDAO(Result.class); - - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(dao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, dao, importResult); } return importResult; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-03-29 22:54:10 UTC (rev 458) @@ -80,8 +80,9 @@ } @Override - public List<CsvFileImportResult> startImport(ResultsImportConfiguration configuration, - EchoBaseUser user) throws ImportException { + public List<CsvFileImportResult> startImport( + ResultsImportConfiguration configuration, + EchoBaseUser user) throws ImportException { // get selected voyage Voyage voyage = getEntityById(Voyage.class, @@ -97,9 +98,10 @@ return result; } - protected CsvFileImportResult importMapFile(ResultsImportConfiguration configuration, - InputFile inputFile, - Voyage voyage) throws ImportException { + protected CsvFileImportResult importMapFile( + ResultsImportConfiguration configuration, + InputFile inputFile, + Voyage voyage) throws ImportException { String resultLabel = configuration.getResultLabel(); @@ -245,8 +247,6 @@ importResult ); - List<Result> results = row.getResult(); - Category category = getResultCategory(categoryDAO, speciesCategoryDAO, null, @@ -255,15 +255,7 @@ row.getAgeCategory(), importResult); - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(resultDao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, resultDao, importResult); } return importResult; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-03-29 22:54:10 UTC (rev 458) @@ -84,8 +84,9 @@ } @Override - public List<CsvFileImportResult> startImport(ResultsImportConfiguration configuration, - EchoBaseUser user) throws ImportException { + public List<CsvFileImportResult> startImport( + ResultsImportConfiguration configuration, + EchoBaseUser user) throws ImportException { List<CsvFileImportResult> result = Lists.newLinkedList(); @@ -117,9 +118,10 @@ return result; } - protected CsvFileImportResult importRegionFile(ResultsImportConfiguration configuration, - InputFile inputFile, - Voyage voyage) throws ImportException { + protected CsvFileImportResult importRegionFile( + ResultsImportConfiguration configuration, + InputFile inputFile, + Voyage voyage) throws ImportException { CellType cellSurfaceType = getEntityByProperty( CellType.class, CellType.PROPERTY_ID, "RegionSURF"); @@ -181,8 +183,6 @@ Cell.PROPERTY_CELL_TYPE, row.getCellType(), Cell.PROPERTY_NAME, row.getName() ); -// cell.setName(row.getName()); -// cell.setCellType(row.getCellType()); voyage.addPostCell(cell); importResult.incrementsNumberCreated(EchoBaseEntityEnum.Cell); @@ -244,26 +244,14 @@ EchoBaseImport<RegionCellAssociationImportRow> importer = EchoBaseImport.newImport(csvModel, reader); - int rowNumber = 0; - configuration.incrementsProgression(); for (RegionCellAssociationImportRow row : importer) { - rowNumber++; configuration.incrementsProgression(); Cell regionCell = row.getRegionCell(); Cell esduCell = row.getEsduCell(); regionCell.addChilds(esduCell); - - if (rowNumber % 100 == 0) { - if (log.isInfoEnabled()) { - log.info("Treat row " + rowNumber + " for esdu cell " + - esduCell.getName()); - } - } - - importResult.incrementsNumberUpdated(EchoBaseEntityEnum.Cell); } @@ -356,19 +344,7 @@ null, importResult); - List<Result> results = row.getResult(); - - for (Result result : results) { - - result.setCategory(category); - result.setResultLabel(resultLabel); - - Result resultCreated = create(dao, result); - - cell.addResult(resultCreated); - - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); - } + addResults(row, cell, category, resultLabel, dao, importResult); } return importResult; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2012-03-29 22:54:10 UTC (rev 458) @@ -25,7 +25,7 @@ import fr.ifremer.echobase.csv.AbstractImportModel; import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.entities.data.CellDAO; +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; @@ -57,14 +57,14 @@ Map<String, Species> speciesMap, Map<String, SizeCategory> sizeCategoryMap, Voyage voyage, - CellDAO cellDAO, + Map<String, Cell> esduCellMap, List<DataMetadata> dataMetadatas) { super(separator); newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, echotypeMap); newForeignKeyColumn("baracoudaCode", EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); - newMandatoryColumn("name", EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, cellDAO)); + newMandatoryColumn("name", EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); for (DataMetadata metadata : dataMetadatas) { String name = metadata.getName(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java 2012-03-29 22:54:10 UTC (rev 458) @@ -25,7 +25,7 @@ import fr.ifremer.echobase.csv.AbstractImportModel; import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.entities.data.CellDAO; +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; @@ -51,12 +51,12 @@ char separator, Map<String, Echotype> echotypeMap, Voyage voyage, - CellDAO cellDAO, + Map<String, Cell> esduCellMap, List<DataMetadata> dataMetadatas) { super(separator); newForeignKeyColumn(EsduResultByEchotypeImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, echotypeMap); - newMandatoryColumn("name", EsduResultByEchotypeImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, cellDAO)); + newMandatoryColumn("name", EsduResultByEchotypeImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); for (DataMetadata metadata : dataMetadatas) { String name = metadata.getName(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2012-03-29 22:54:10 UTC (rev 458) @@ -25,7 +25,7 @@ import fr.ifremer.echobase.csv.AbstractImportModel; import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.entities.data.CellDAO; +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; @@ -53,11 +53,11 @@ char separator, Map<String, Species> speciesMap, Voyage voyage, - CellDAO cellDAO, + Map<String, Cell> esduCellMap, List<DataMetadata> dataMetadatas) { super(separator); - newMandatoryColumn("name", EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, cellDAO)); + newMandatoryColumn("name", EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); newForeignKeyColumn("baracoudaCode", EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2012-03-29 22:54:10 UTC (rev 458) @@ -25,7 +25,7 @@ import fr.ifremer.echobase.csv.AbstractImportModel; import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.entities.data.CellDAO; +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; @@ -53,11 +53,11 @@ char separator, Map<String, Species> speciesMap, Voyage voyage, - CellDAO cellDAO, + Map<String, Cell> esduCellMap, List<DataMetadata> dataMetadatas) { super(separator); - newMandatoryColumn("name", EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, cellDAO)); + newMandatoryColumn("name", EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); newForeignKeyColumn("baracoudaCode", EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-03-29 22:54:10 UTC (rev 458) @@ -29,6 +29,7 @@ import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserImpl; +import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -208,4 +209,10 @@ Preconditions.checkNotNull(voyage); return voyage.getTopiaId(); } + + protected String getDataProcessingId() { + DataProcessing dataProcessing = getEntities(DataProcessing.class).get(0); + Preconditions.checkNotNull(dataProcessing); + return dataProcessing.getTopiaId(); + } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-03-29 22:54:10 UTC (rev 458) @@ -201,11 +201,13 @@ int numberCreated = importResult.getNumberCreated(type); int numberUpdated = importResult.getNumberUpdated(type); if (numberCreated > 0) { - resultBuffer.append(" ").append(numberCreated).append(" created"); + resultBuffer.append(" (created ").append(numberCreated).append(')'); } if (numberUpdated > 0) { - resultBuffer.append(" ").append(numberUpdated).append(" updated"); + resultBuffer.append(" (updated").append(numberUpdated).append(')'); } + long nbEntities = countEntities(type.getContract()); + resultBuffer.append(" (total count ").append(nbEntities).append(')'); } log.info(resultBuffer.toString()); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-03-29 21:57:23 UTC (rev 457) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-03-29 22:54:10 UTC (rev 458) @@ -74,6 +74,8 @@ addMissingEsduCells("name", conf.getVoyageId(), inputFile); + conf.setDataProcessingId(getDataProcessingId()); + List<CsvFileImportResult> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); @@ -104,10 +106,14 @@ addMissingEsduCells("name", conf.getVoyageId(), inputFile); + conf.setDataProcessingId(getDataProcessingId()); + List<CsvFileImportResult> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); - assertCsvImportResult(result, 0, Result.class, 396990); + assertCsvImportResult(result, 0, Result.class, 357291); + assertCsvImportResult(result, 0, Category.class, 27); + assertCsvImportResult(result, 0, SpeciesCategory.class, 1, 0, 457); } @Test @@ -133,13 +139,15 @@ addMissingEsduCells("name", conf.getVoyageId(), intputFile); + conf.setDataProcessingId(getDataProcessingId()); + List<CsvFileImportResult> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Result.class, 68108); assertCsvImportResult(result, 0, Category.class, 129); assertCsvImportResult(result, 0, SpeciesCategory.class, 129, 0, 585); - assertCsvImportResult(result, 0, SizeCategory.class, 62); + assertCsvImportResult(result, 0, SizeCategory.class, 62, 0, 69); } @Test @@ -165,14 +173,15 @@ addMissingEsduCells("name", conf.getVoyageId(), inputFile); + conf.setDataProcessingId(getDataProcessingId()); + List<CsvFileImportResult> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); + assertCsvImportResult(result, 0, Category.class, 14); assertCsvImportResult(result, 0, Result.class, 10021); - assertCsvImportResult(result, 0, AgeCategory.class, 6); - assertCsvImportResult(result, 0, Category.class, 14); + assertCsvImportResult(result, 0, AgeCategory.class, 6, 0, 10); assertCsvImportResult(result, 0, SpeciesCategory.class, 14, 0, 470); } - } \ No newline at end of file
participants (1)
-
tchemit@users.forge.codelutin.com