r290 - in trunk/echobase-services/src: main/java/fr/ifremer/echobase/services main/java/fr/ifremer/echobase/services/configurations main/java/fr/ifremer/echobase/services/csv test/java/fr/ifremer/echobase test/java/fr/ifremer/echobase/services
Author: tchemit Date: 2012-01-25 11:51:42 +0100 (Wed, 25 Jan 2012) New Revision: 290 Url: http://forge.codelutin.com/repositories/revision/echobase/290 Log: - finalize common data import - reformat + imports - usage of renames EchoBaseTopiaRootContextFactory Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/VoyageImportModel.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CsvImportResult.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -31,13 +31,13 @@ import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.data.VoyageImpl; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.configurations.CommonDataCompleteImportConfiguration; -import fr.ifremer.echobase.services.csv.CsvModelUtil; -import org.apache.commons.collections.CollectionUtils; +import fr.ifremer.echobase.services.csv.TransectImportModel; +import fr.ifremer.echobase.services.csv.TransitImportModel; +import fr.ifremer.echobase.services.csv.VoyageImportModel; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.util.csv.Import; @@ -106,7 +106,7 @@ try { Mission result = getDAO(Mission.class).create(mission); commitTransaction("Could not create mission " + - mission.getName()); + mission.getName()); return result; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -186,18 +186,22 @@ TopiaDAO<Transect> dao = getDAO(Transect.class); - /* - modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); - modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); - */ Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); try { ImportToMap importer = ImportToMap.newImport(csvModel, reader); for (Map<String, Object> row : importer) { - Voyage voyage = (Voyage) row.get(TransectImportModel.TRANSECT_VoyageID); + Voyage voyage = (Voyage) row.get(TransectImportModel.TRANSECT_VoyageId); + Date timeCoverageStart = (Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START); + Date timeCoverageEnd = (Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END); + + Transit transit = voyage.getTransit(timeCoverageStart, timeCoverageEnd); + if (transit == null) { + throw new EchoBaseTechnicalException( + "Could not find transit for voyage " + voyage.getName() + " between " + timeCoverageStart + " and " + timeCoverageEnd); + } + Transect transect = dao.create( Transect.PROPERTY_VESSEL, vessel ); @@ -212,9 +216,9 @@ transect.setBinUnitsPingAxis(binUnitsPingAxis); transect.setDateCreated((Date) row.get(Transect.PROPERTY_DATE_CREATED)); - transect.setTimeCoverageStart((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START)); - transect.setTimeCoverageEnd((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END)); + transect.setTimeCoverageStart(timeCoverageStart); + transect.setTimeCoverageEnd(timeCoverageEnd); transect.setGeospatialLatMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MIN)); transect.setGeospatialLonMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MIN)); @@ -223,24 +227,8 @@ transect.setGeospatialLatMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MAX)); transect.setGeospatialLonMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MAX)); transect.setGeospatialVerticalMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX)); + transect.setLinestring((String) row.get(Transect.PROPERTY_LINESTRING)); - // find out the transit where to reattach the transect - List<Transit> transits = voyage.getTransit(); - - Transit transit = null; - - if (CollectionUtils.isNotEmpty(transits)) { - for (Transit aTransit : transits) { - transit = aTransit; - break; - } - } - if (transit == null) { - throw new EchoBaseTechnicalException( - "Could not find transit to reattach transect " + - transect.getTitle()); - } - transit.addTransect(transect); } @@ -253,84 +241,4 @@ } - protected static class VoyageImportModel extends CsvModelUtil.AbstractImportModel<Voyage> { - - public VoyageImportModel(char separator) { - super(separator); - modelBuilder.newMandatoryColumn("VoyageName", Voyage.PROPERTY_NAME); - modelBuilder.newMandatoryColumn("VoyageStartDate", Voyage.PROPERTY_START_DATE, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn("VoyageEndDate", Voyage.PROPERTY_END_DATE, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn("StartPort", Voyage.PROPERTY_START_PORT); - modelBuilder.newMandatoryColumn("EndPort", Voyage.PROPERTY_END_PORT); - } - - @Override - public Voyage newEmptyInstance() { - return new VoyageImpl(); - } - } - - protected static class TransitImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { - - public static final String TRANSIT_VoyageId = "VoyageId"; - - protected final Map<String, Voyage> voyageMap; - - public TransitImportModel(char separator, - Map<String, Voyage> voyageMap) { - super(separator); - this.voyageMap = voyageMap; - modelBuilder.newMandatoryColumn(TRANSIT_VoyageId, TRANSIT_VoyageId, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); - modelBuilder.newMandatoryColumn("TransitName", Transit.PROPERTY_DESCRIPTION); - modelBuilder.newMandatoryColumn("StartTime", Transit.PROPERTY_START_TIME, CsvModelUtil.DAY_TIME); - modelBuilder.newMandatoryColumn("EndTime", Transit.PROPERTY_END_TIME, CsvModelUtil.DAY_TIME); - modelBuilder.newMandatoryColumn("StartLocality", Transit.PROPERTY_START_LOCALITY); - modelBuilder.newMandatoryColumn("EndLocality", Transit.PROPERTY_END_LOCALITY); - } - - @Override - public Map<String, Object> newEmptyInstance() { - return null; - } - } - - protected static class TransectImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { - - public static final String TRANSECT_stratum = "stratum"; - public static final String TRANSECT_VoyageID = "VoyageID"; - public static final String TRANSECT_datef = "datef"; - public static final String TRANSECT_heuref = "heuref"; - - protected final Map<String, Voyage> voyageMap; - - public TransectImportModel(char separator, - Map<String, Voyage> voyageMap) { - super(separator); - this.voyageMap = voyageMap; - - modelBuilder.newMandatoryColumn("Title", Transect.PROPERTY_TITLE); - modelBuilder.newMandatoryColumn("abstract", Transect.PROPERTY_TRANSECT_ABSTRACT); - modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); - modelBuilder.newMandatoryColumn("comment", Transect.PROPERTY_COMMENT); - modelBuilder.newMandatoryColumn(TRANSECT_VoyageID, TRANSECT_VoyageID, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); - modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); - - modelBuilder.newMandatoryColumn("DateCreated", Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY2); - modelBuilder.newMandatoryColumn("TimeCoverageStart", Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.TIME); - modelBuilder.newMandatoryColumn("TimeCoverageEnd", Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.TIME); - modelBuilder.newMandatoryColumn("GeospatialLonMin", Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLatMin", Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialVerticalMin", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLonMax", Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLatMax", Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialVerticalMax", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - } - - @Override - public Map<String, Object> newEmptyInstance() { - return null; - } - - } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -24,6 +24,7 @@ package fr.ifremer.echobase.services; import com.google.common.collect.Maps; +import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.entities.EchoBaseUser; @@ -32,8 +33,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.configurations.CommonDataFromTransectImportConfiguration; -import fr.ifremer.echobase.services.csv.CsvModelUtil; -import org.apache.commons.collections.CollectionUtils; +import fr.ifremer.echobase.services.csv.TransectImportModel; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.util.csv.ImportToMap; @@ -63,8 +63,13 @@ Voyage voyage = getEntityById(Voyage.class, configuration.getVoyageId()); Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId()); + List<Voyage> allVoyages = getEntities(Voyage.class); + Map<String, Voyage> voyageMap = Maps.uniqueIndex( + allVoyages, EchoBaseFunctions.VOYAGE_NAME); + importTransectFile(configuration.getTransectFile(), voyage, + voyageMap, vessel, configuration.getDatum(), configuration.getTransectLicence(), @@ -76,6 +81,7 @@ private void importTransectFile(InputFile inputFile, Voyage voyage, + Map<String, Voyage> voyageMap, Vessel vessel, String datum, String license, @@ -84,21 +90,25 @@ char csvSeparator ) throws TopiaException, IOException { - TransectImportModel csvModel = new TransectImportModel(csvSeparator); + TransectImportModel csvModel = new TransectImportModel(csvSeparator, voyageMap); TopiaDAO<Transect> dao = getDAO(Transect.class); - /* - modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); - modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); - */ Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); try { ImportToMap importer = ImportToMap.newImport(csvModel, reader); for (Map<String, Object> row : importer) { + Date timeCoverageStart = (Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START); + Date timeCoverageEnd = (Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END); + Transit transit = voyage.getTransit(timeCoverageStart, timeCoverageEnd); + if (transit == null) { + throw new EchoBaseTechnicalException( + "Could not find transit for voyage " + + voyage.getName() + " between " + timeCoverageStart + " and " + timeCoverageEnd); + } + Transect transect = dao.create( Transect.PROPERTY_VESSEL, vessel ); @@ -113,10 +123,9 @@ transect.setBinUnitsPingAxis(binUnitsPingAxis); transect.setDateCreated((Date) row.get(Transect.PROPERTY_DATE_CREATED)); - transect.setTimeCoverageStart((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START)); - transect.setTimeCoverageEnd((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END)); + transect.setTimeCoverageStart(timeCoverageStart); + transect.setTimeCoverageEnd(timeCoverageEnd); - transect.setGeospatialLatMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MIN)); transect.setGeospatialLonMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MIN)); transect.setGeospatialVerticalMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN)); @@ -124,24 +133,7 @@ transect.setGeospatialLatMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MAX)); transect.setGeospatialLonMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MAX)); transect.setGeospatialVerticalMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX)); - - // find out the transit where to reattach the transect - List<Transit> transits = voyage.getTransit(); - - Transit transit = null; - - if (CollectionUtils.isNotEmpty(transits)) { - for (Transit aTransit : transits) { - transit = aTransit; - break; - } - } - if (transit == null) { - throw new EchoBaseTechnicalException( - "Could not find transit to reattach transect " + - transect.getTitle()); - } - + transect.setLinestring((String) row.get(Transect.PROPERTY_LINESTRING)); transit.addTransect(transect); } @@ -150,38 +142,4 @@ } } - protected static class TransectImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { - - public static final String TRANSECT_stratum = "stratum"; - public static final String TRANSECT_VoyageID = "VoyageID"; - public static final String TRANSECT_datef = "datef"; - public static final String TRANSECT_heuref = "heuref"; - - public TransectImportModel(char separator) { - super(separator); - - modelBuilder.newMandatoryColumn("Title", Transect.PROPERTY_TITLE); - modelBuilder.newMandatoryColumn("abstract", Transect.PROPERTY_TRANSECT_ABSTRACT); - modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); - modelBuilder.newMandatoryColumn("comment", Transect.PROPERTY_COMMENT); - modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); - modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); - - modelBuilder.newMandatoryColumn("DateCreated", Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY2); - modelBuilder.newMandatoryColumn("TimeCoverageStart", Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.TIME); - modelBuilder.newMandatoryColumn("TimeCoverageEnd", Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.TIME); - modelBuilder.newMandatoryColumn("GeospatialLonMin", Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLatMin", Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialVerticalMin", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLonMax", Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialLatMax", Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - modelBuilder.newMandatoryColumn("GeospatialVerticalMax", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT); - } - - @Override - public Map<String, Object> newEmptyInstance() { - return null; - } - - } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CsvImportResult.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CsvImportResult.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CsvImportResult.java 2012-01-25 10:51:42 UTC (rev 290) @@ -57,7 +57,7 @@ String importFileName, boolean createIfNotFound) { CsvImportResult result = new CsvImportResult(entityType, importFileName, - createIfNotFound); + createIfNotFound); return result; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -381,7 +381,7 @@ } catch (Exception eee) { throw new EchoBaseTechnicalException( "Could not obtain property [" + propertyName + - "] value from entity " + entity.getTopiaId(), eee); + "] value from entity " + entity.getTopiaId(), eee); } String formatedValue; try { @@ -389,8 +389,8 @@ } catch (Exception eee) { throw new EchoBaseTechnicalException( "Could not format property [" + propertyName + - "] from value [" + value + - "] from entity " + entity.getTopiaId(), eee); + "] from value [" + value + + "] from entity " + entity.getTopiaId(), eee); } row.put(propertyName, formatedValue); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -61,7 +61,7 @@ Preconditions.checkNotNull( decorator, "Could not find decorator for type " + type + - " and context " + context + " and context " + context ); return decorator; } @@ -104,7 +104,7 @@ Preconditions.checkNotNull( decorator, "Could not find decorator for type " + object.getClass() + - " and context " + context + " and context " + context ); DecoratorUtil.sort((JXPathDecorator<O>) decorator, list, 0); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2012-01-25 10:51:42 UTC (rev 290) @@ -54,10 +54,10 @@ EchoBaseServiceContext serviceContext, TopiaContext transaction) { return newContext(serviceContext.getLocale(), - transaction, - serviceContext.getConfiguration(), - serviceContext.getDbMeta(), - serviceContext.getServiceFactory() + transaction, + serviceContext.getConfiguration(), + serviceContext.getDbMeta(), + serviceContext.getServiceFactory() ); } @@ -68,10 +68,10 @@ DbMeta dbMeta, EchoBaseServiceFactory serviceFactory) throws TopiaException { return newContext(locale, - topiaContextSupplier.get().beginTransaction(), - configuration, - dbMeta, - serviceFactory); + topiaContextSupplier.get().beginTransaction(), + configuration, + dbMeta, + serviceFactory); } public static EchoBaseServiceContext newContext( @@ -81,10 +81,10 @@ DbMeta dbMeta, EchoBaseServiceFactory serviceFactory) { return new EchoBaseServiceContextImpl(locale, - transaction, - configuration, - dbMeta, - serviceFactory); + transaction, + configuration, + dbMeta, + serviceFactory); } protected EchoBaseServiceContextImpl(Locale locale, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-01-25 10:51:42 UTC (rev 290) @@ -83,7 +83,7 @@ } catch (TopiaException eee) { throw new EchoBaseTechnicalException( "Could not obtain data of id [" + id + "] for type " + - entityType, eee); + entityType, eee); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -28,7 +28,7 @@ import com.google.common.base.Supplier; import fr.ifremer.echobase.EchoBaseIOUtil; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.EchoBaseTopiaRootContextSupplierFactory; +import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EntitiesUtil; @@ -73,6 +73,7 @@ START_SH("startEchobase.bat", "startEchobase.bat"); protected final String inputFileName; + protected final String outputFileName; EmbeddedFile(String inputFileName, String outputFileName) { @@ -134,7 +135,7 @@ } catch (Exception eee) { throw new EchoBaseTechnicalException( "Could not create zip structure at location " + - dir, eee); + dir, eee); } EchoBaseIOUtil.compressZipFile(zipFile, dir); @@ -176,7 +177,7 @@ // create new h2 db Supplier<TopiaContext> topiaContextSupplier = - new EchoBaseTopiaRootContextSupplierFactory().newEmbeddedDatabase(zipDirectory); + new EchoBaseTopiaRootContextFactory().newEmbeddedDatabase(zipDirectory); TopiaContext rootContext = topiaContextSupplier.get(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -238,7 +238,7 @@ // get row number (getRow() begins at 1) int rowNumber = set.getRow() - 1; if (rowNumber < pager.getRecordStartIndex() || - rowNumber >= pager.getRecordEndIndex()) { + rowNumber >= pager.getRecordEndIndex()) { // out of pager bound, by returning null // result will not be take in account Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-25 10:51:42 UTC (rev 290) @@ -155,7 +155,7 @@ } if (!missingEntries.isEmpty() && log.isWarnEnabled()) { log.warn("There is " + missingEntries.size() + " missing files " + - " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false)); + " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false)); } return result; @@ -265,8 +265,8 @@ String sourceTableName = source.getContract().getSimpleName(); String table = targetTableName; if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype || - source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || - source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { + source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || + source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { // relation *-* table = getNormalizedTableName(sourceTableName, targetTableName); updateString = "INSERT INTO " + table + " (" + sourceTableName + "," + targetTableName + ") VALUES('%s','%s');"; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-01-25 10:51:42 UTC (rev 290) @@ -92,6 +92,6 @@ @Override public InputFile[] getInputFiles() { return new InputFile[]{tlbeStationFile, xtblTriFile, - tblMensurationFile, tblMensurationClasseFile}; + tblMensurationFile, tblMensurationClasseFile}; } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java 2012-01-25 10:51:42 UTC (rev 290) @@ -180,6 +180,6 @@ @Override public InputFile[] getInputFiles() { return new InputFile[]{voyageFile, transitFile, - transectFile, echotypeFile}; + transectFile, echotypeFile}; } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-25 10:51:42 UTC (rev 290) @@ -107,15 +107,14 @@ return new AssociationValueParserFormatter<E>(null, null); } - public static <E extends TopiaEntity> AssociationValueParserFormatter<E> newAssociationValueParserFormatter(Class<E> entityType, - Map<String, E> universe) { - return new AssociationValueParserFormatter<E>(entityType, universe); - } +// public static <E extends TopiaEntity> AssociationValueParserFormatter<E> newAssociationValueParserFormatter(Class<E> entityType, +// Map<String, E> universe) { +// return new AssociationValueParserFormatter<E>(entityType, universe); +// } public static final ValueParser<Date> IMPORT_DAY = new DateValue("dd/MM/yy"); - public static final ValueParser<Date> IMPORT_DAY2 = new DateValue("dd-MM-yy"); - public static final ValueParser<Date> TIME = new DateValue("HH:mm:ss"); + public static final ValueParser<Date> IMPORT_DAY_TIME2 = new DateValue("dd-MM-yy HH:mm:ss"); public static final ValueParser<Boolean> INT_TO_BOOLEAN_PARSER = new ValueParser<Boolean>() { @@ -129,10 +128,11 @@ @Override protected Float parseNoneEmptyValue(String value) { - if ("NA".equals(value)) { - return null; + Float result = null; + if (!"NA".equals(value)) { + result = super.parseNoneEmptyValue(value); } - return super.parseNoneEmptyValue(value); + return result; } }; @@ -167,14 +167,17 @@ @Override public String format(Collection<E> e) { + + String value; if (CollectionUtils.isEmpty(e)) { - return ""; + value = ""; + } else { + Collection<String> ids = Lists.newArrayList(); + for (E e1 : e) { + ids.add(e1.getTopiaId()); + } + value = StringUtil.join(ids, "|", true); } - Collection<String> ids = Lists.newArrayList(); - for (E e1 : e) { - ids.add(e1.getTopiaId()); - } - String value = StringUtil.join(ids, "|", true); return value; } } Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java 2012-01-25 10:51:42 UTC (rev 290) @@ -0,0 +1,71 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * 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.csv; + +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Voyage; + +import java.util.Map; + +/** + * Model to import transects. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class TransectImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { + + public static final String TRANSECT_VoyageId = "voyageName"; + + protected final Map<String, Voyage> voyageMap; + + public TransectImportModel(char separator, + Map<String, Voyage> voyageMap) { + super(separator); + this.voyageMap = voyageMap; + modelBuilder.newMandatoryColumn(Transect.PROPERTY_TITLE, Transect.PROPERTY_TITLE); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_TRANSECT_ABSTRACT, Transect.PROPERTY_TRANSECT_ABSTRACT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_STRATUM, Transect.PROPERTY_STRATUM); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_COMMENT, Transect.PROPERTY_COMMENT); + modelBuilder.newMandatoryColumn(TRANSECT_VoyageId, TRANSECT_VoyageId, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); + + modelBuilder.newMandatoryColumn(Transect.PROPERTY_DATE_CREATED, Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY_TIME2); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_START, Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.IMPORT_DAY_TIME2); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_END, Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.IMPORT_DAY_TIME2); + + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MIN, Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MIN, Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MAX, Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MAX, Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn(Transect.PROPERTY_LINESTRING, Transect.PROPERTY_LINESTRING); + } + + @Override + public Map<String, Object> newEmptyInstance() { + return null; + } + +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java 2012-01-25 10:51:42 UTC (rev 290) @@ -0,0 +1,59 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * 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.csv; + +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; + +import java.util.Map; + +/** + * Model to import Transits. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class TransitImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { + + public static final String TRANSIT_VoyageId = "voyageName"; + + protected final Map<String, Voyage> voyageMap; + + public TransitImportModel(char separator, + Map<String, Voyage> voyageMap) { + super(separator); + this.voyageMap = voyageMap; + modelBuilder.newMandatoryColumn(TRANSIT_VoyageId, TRANSIT_VoyageId, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); + modelBuilder.newMandatoryColumn(Transit.PROPERTY_DESCRIPTION, Transit.PROPERTY_DESCRIPTION); + modelBuilder.newMandatoryColumn(Transit.PROPERTY_START_TIME, Transit.PROPERTY_START_TIME, CsvModelUtil.DAY_TIME); + modelBuilder.newMandatoryColumn(Transit.PROPERTY_END_TIME, Transit.PROPERTY_END_TIME, CsvModelUtil.DAY_TIME); + modelBuilder.newMandatoryColumn(Transit.PROPERTY_START_LOCALITY, Transit.PROPERTY_START_LOCALITY); + modelBuilder.newMandatoryColumn(Transit.PROPERTY_END_LOCALITY, Transit.PROPERTY_END_LOCALITY); + } + + @Override + public Map<String, Object> newEmptyInstance() { + return null; + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/VoyageImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/VoyageImportModel.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/VoyageImportModel.java 2012-01-25 10:51:42 UTC (rev 290) @@ -0,0 +1,50 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * 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.csv; + +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.data.VoyageImpl; + +/** + * Model to import Voyages. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class VoyageImportModel extends CsvModelUtil.AbstractImportModel<Voyage> { + + public VoyageImportModel(char separator) { + super(separator); + modelBuilder.newMandatoryColumn(Voyage.PROPERTY_NAME, Voyage.PROPERTY_NAME); + modelBuilder.newMandatoryColumn(Voyage.PROPERTY_START_DATE, Voyage.PROPERTY_START_DATE, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(Voyage.PROPERTY_END_DATE, Voyage.PROPERTY_END_DATE, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(Voyage.PROPERTY_START_PORT, Voyage.PROPERTY_START_PORT); + modelBuilder.newMandatoryColumn(Voyage.PROPERTY_END_PORT, Voyage.PROPERTY_END_PORT); + } + + @Override + public Voyage newEmptyInstance() { + return new VoyageImpl(); + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/VoyageImportModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/TestHelper.java 2012-01-25 10:51:42 UTC (rev 290) @@ -67,8 +67,8 @@ } public static TopiaContext getRootContext(File dbDir) { - EchoBaseTopiaRootContextSupplierFactory factory = - new EchoBaseTopiaRootContextSupplierFactory(); + EchoBaseTopiaRootContextFactory factory = + new EchoBaseTopiaRootContextFactory(); Supplier<TopiaContext> topiaContextSupplier = factory.newEmbeddedDatabase(dbDir); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-01-25 10:50:25 UTC (rev 289) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-01-25 10:51:42 UTC (rev 290) @@ -24,11 +24,9 @@ package fr.ifremer.echobase.services; import com.google.common.base.Supplier; -import com.google.common.collect.Lists; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.EchoBaseTopiaRootContextSupplierFactory; +import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; import fr.ifremer.echobase.TestHelper; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.MockEntityVisitorCreator; import fr.ifremer.echobase.entities.meta.DbMeta; import junit.framework.Assert; @@ -38,7 +36,6 @@ import org.nuiton.topia.persistence.TopiaEntity; import java.io.File; -import java.util.List; import java.util.Locale; /** @@ -66,8 +63,8 @@ public TopiaContext getTransaction() throws Exception { if (transaction == null || transaction.isClosed()) { - EchoBaseTopiaRootContextSupplierFactory factory = - new EchoBaseTopiaRootContextSupplierFactory(); + EchoBaseTopiaRootContextFactory factory = + new EchoBaseTopiaRootContextFactory(); File basedir = TestHelper.getBasedir(); File target = new File(basedir, "/target"); Supplier<TopiaContext> topiaContextSupplier = factory.newEmbeddedDatabase(target);
participants (1)
-
tchemit@users.forge.codelutin.com