r553 - in trunk: echobase-entities echobase-entities/src/main/java/fr/ifremer/echobase echobase-entities/src/main/java/fr/ifremer/echobase/csv echobase-entities/src/main/java/fr/ifremer/echobase/entities echobase-entities/src/main/java/fr/ifremer/echobase/entities/data echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta echobase-entities/src/main/xmi echobase-services/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/impo
Author: tchemit Date: 2012-08-16 18:21:10 +0200 (Thu, 16 Aug 2012) New Revision: 553 Url: http://forge.codelutin.com/repositories/revision/echobase/553 Log: refs #1407: Extraction du module d'import-export csv vers ToPIA Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/EchoBaseMetadatas.java Removed: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractExportModel.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportExportModel.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportModel.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationExportContext.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParser.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParserFormatter.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvImportResult.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseExport.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseImport.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityCsvModel.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityExportContext.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValue.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValueForAssociation.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/AssociationMeta.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/DbMeta.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/MetaFilenameAware.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ReplicateEntityVisitor.java Modified: trunk/echobase-entities/pom.xml trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/CellImpl.java trunk/echobase-entities/src/main/xmi/echobase.zargo trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.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/ExportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.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/AcousticImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.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/ResultsVoyageImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.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/EsduResultByEchotypeAndSpeciesCategoryImportRow.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/EsduResultByEchotypeImportRow.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/EsduResultBySpeciesAndAgeCategoryImportRow.java 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/EsduResultBySpeciesAndSizeCategoryImportRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.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/AcousticImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/Common2ImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AgeCategoryLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellMethodLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataQualityLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderIT.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java Modified: trunk/echobase-entities/pom.xml =================================================================== --- trunk/echobase-entities/pom.xml 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/pom.xml 2012-08-16 16:21:10 UTC (rev 553) @@ -62,11 +62,6 @@ </dependency> <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </dependency> - - <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,14 +24,12 @@ package fr.ifremer.echobase; import com.google.common.base.Function; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.AgeCategory; import fr.ifremer.echobase.entities.references.AreaOfOperation; @@ -183,14 +181,6 @@ } }; - public static final Function<TopiaEntity, String> TO_TOPIAID = new Function<TopiaEntity, String>() { - - @Override - public String apply(TopiaEntity input) { - return input.getTopiaId(); - } - }; - public static final Function<File, String> FILE_NAME = new Function<File, String>() { @Override public String apply(File input) { @@ -306,13 +296,6 @@ } }; - public static final Function<MetaFilenameAware, EchoBaseEntityEnum> META_BY_SOURCE = new Function<MetaFilenameAware, EchoBaseEntityEnum>() { - @Override - public EchoBaseEntityEnum apply(MetaFilenameAware input) { - return input.getSource(); - } - }; - public static final Function<Cell, String> CELL_BY_NAME = new Function<Cell, String>() { @Override public String apply(Cell input) { Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractExportModel.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractExportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractExportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,76 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import org.nuiton.util.csv.ExportModel; -import org.nuiton.util.csv.ExportableColumn; -import org.nuiton.util.csv.ModelBuilder; -import org.nuiton.util.csv.ValueFormatter; -import org.nuiton.util.csv.ValueGetter; - -public abstract class AbstractExportModel<E> implements ExportModel<E> { - - private final char separator; - - protected final ModelBuilder<E> modelBuilder; - - public AbstractExportModel(char separator) { - this.separator = separator; - modelBuilder = new ModelBuilder<E>(); - } - - @Override - public final char getSeparator() { - return separator; - } - - @Override - public final Iterable<ExportableColumn<E, Object>> getColumnsForExport() { - return (Iterable) modelBuilder.getColumnsForExport(); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName) { - return modelBuilder.newColumnForExport(headerName, headerName); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName, String propertyName) { - return modelBuilder.newColumnForExport(headerName, propertyName); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName, ValueGetter<E, String> eStringValueGetter) { - return modelBuilder.newColumnForExport(headerName, eStringValueGetter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, headerName, valueFormatter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, String propertyName, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, propertyName, valueFormatter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, ValueGetter<E, T> etValueGetter, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, etValueGetter, valueFormatter); - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportExportModel.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportExportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportExportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,155 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ExportableColumn; -import org.nuiton.util.csv.ImportExportModel; -import org.nuiton.util.csv.ImportableColumn; -import org.nuiton.util.csv.ImportableExportableColumn; -import org.nuiton.util.csv.ModelBuilder; -import org.nuiton.util.csv.ValueFormatter; -import org.nuiton.util.csv.ValueGetter; -import org.nuiton.util.csv.ValueGetterSetter; -import org.nuiton.util.csv.ValueParser; -import org.nuiton.util.csv.ValueParserFormatter; -import org.nuiton.util.csv.ValueSetter; - -import java.util.List; -import java.util.Map; - -public abstract class AbstractImportExportModel<E> implements ImportExportModel<E> { - - private final char separator; - - protected final ModelBuilder<E> modelBuilder; - - public AbstractImportExportModel(char separator) { - this.separator = separator; - modelBuilder = new ModelBuilder<E>(); - } - - @Override - public final char getSeparator() { - return separator; - } - - @Override - public void pushCsvHeaderNames(List<String> headerNames) { - } - - @Override - public final Iterable<ExportableColumn<E, Object>> getColumnsForExport() { - return (Iterable) modelBuilder.getColumnsForExport(); - } - - @Override - public final Iterable<ImportableColumn<E, Object>> getColumnsForImport() { - return (Iterable) modelBuilder.getColumnsForImport(); - } - - public <T> ImportableColumn<E, T> newIgnoredColumn(String headerName) { - return modelBuilder.newIgnoredColumn(headerName); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName) { - return modelBuilder.newMandatoryColumn(headerName, headerName); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName, String propertyName) { - return modelBuilder.newMandatoryColumn(headerName, propertyName); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, ValueParser<T> valueParser) { - return modelBuilder.newMandatoryColumn(headerName, headerName, valueParser); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, String propertyName, ValueParser<T> valueParser) { - return modelBuilder.newMandatoryColumn(headerName, propertyName, valueParser); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName, ValueSetter<E, String> eStringValueSetter) { - return modelBuilder.newMandatoryColumn(headerName, eStringValueSetter); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, ValueParser<T> valueParser, ValueSetter<E, T> etValueSetter) { - return modelBuilder.newMandatoryColumn(headerName, valueParser, etValueSetter); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName) { - return modelBuilder.newColumnForExport(headerName, headerName); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName, String propertyName) { - return modelBuilder.newColumnForExport(headerName, propertyName); - } - - public ExportableColumn<E, String> newColumnForExport(String headerName, ValueGetter<E, String> eStringValueGetter) { - return modelBuilder.newColumnForExport(headerName, eStringValueGetter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, headerName, valueFormatter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, String propertyName, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, propertyName, valueFormatter); - } - - public <T> ExportableColumn<E, T> newColumnForExport(String headerName, ValueGetter<E, T> etValueGetter, ValueFormatter<T> valueFormatter) { - return modelBuilder.newColumnForExport(headerName, etValueGetter, valueFormatter); - } - - public ImportableExportableColumn<E, String> newColumnForImportExport(String headerName) { - return modelBuilder.newColumnForImportExport(headerName, headerName); - } - - public ImportableExportableColumn<E, String> newColumnForImportExport(String headerName, String propertyName) { - return modelBuilder.newColumnForImportExport(headerName, propertyName); - } - - public ImportableExportableColumn<E, String> newColumnForImportExport(String headerName, ValueGetterSetter<E, String> eStringValueGetterSetter) { - return modelBuilder.newColumnForImportExport(headerName, eStringValueGetterSetter); - } - - public <T> ImportableExportableColumn<E, T> newColumnForImportExport(String headerName, ValueParserFormatter<T> valueParserFormatter) { - return modelBuilder.newColumnForImportExport(headerName, headerName, valueParserFormatter); - } - - public <T> ImportableExportableColumn<E, T> newColumnForImportExport(String headerName, String propertyName, ValueParserFormatter<T> valueParserFormatter) { - return modelBuilder.newColumnForImportExport(headerName, propertyName, valueParserFormatter); - } - - public <T> ImportableExportableColumn<E, T> newColumnForImportExport(String headerName, ValueGetterSetter<E, T> etValueGetterSetter, ValueParserFormatter<T> valueParserFormatter) { - return modelBuilder.newColumnForImportExport(headerName, etValueGetterSetter, valueParserFormatter); - } - - protected <E extends TopiaEntity> void newForeignKeyColumn(String headerName, String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(headerName, propertyName, EchobaseCsvUtil.newForeignKeyValue(entityType, foreignKeyName, universe)); - } - - protected <E extends TopiaEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(propertyName, propertyName, EchobaseCsvUtil.newForeignKeyValue(entityType, foreignKeyName, universe)); - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportModel.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AbstractImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,106 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ImportModel; -import org.nuiton.util.csv.ImportableColumn; -import org.nuiton.util.csv.ModelBuilder; -import org.nuiton.util.csv.ValueParser; -import org.nuiton.util.csv.ValueSetter; - -import java.util.List; -import java.util.Map; - -public abstract class AbstractImportModel<E> implements ImportModel<E> { - - public static final String CELL_NAME = "name"; - - public static final String OPERATION_ID = "operationId"; - - public static final String VESSEL_NAME = "vesselName"; - - public static final String GEAR_CODE = "gearCode"; - - public static final String DEPTH_STRATUM_ID = "depthStratumId"; - - private final char separator; - - protected final ModelBuilder<E> modelBuilder; - - public AbstractImportModel(char separator) { - this.separator = separator; - modelBuilder = new ModelBuilder<E>(); - } - - @Override - public final char getSeparator() { - return separator; - } - - @Override - public void pushCsvHeaderNames(List<String> headerNames) { - } - - @Override - public final Iterable<ImportableColumn<E, Object>> getColumnsForImport() { - return (Iterable) modelBuilder.getColumnsForImport(); - } - - public <T> ImportableColumn<E, T> newIgnoredColumn(String headerName) { - return modelBuilder.newIgnoredColumn(headerName); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName) { - return modelBuilder.newMandatoryColumn(headerName, headerName); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName, String propertyName) { - return modelBuilder.newMandatoryColumn(headerName, propertyName); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, ValueParser<T> valueParser) { - return modelBuilder.newMandatoryColumn(headerName, headerName, valueParser); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, String propertyName, ValueParser<T> valueParser) { - return modelBuilder.newMandatoryColumn(headerName, propertyName, valueParser); - } - - public ImportableColumn<E, String> newMandatoryColumn(String headerName, ValueSetter<E, String> eStringValueSetter) { - return modelBuilder.newMandatoryColumn(headerName, eStringValueSetter); - } - - public <T> ImportableColumn<E, T> newMandatoryColumn(String headerName, ValueParser<T> valueParser, ValueSetter<E, T> etValueSetter) { - return modelBuilder.newMandatoryColumn(headerName, valueParser, etValueSetter); - } - - protected <E extends TopiaEntity> void newForeignKeyColumn(String headerName, String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(headerName, propertyName, EchobaseCsvUtil.newForeignKeyValue(entityType, foreignKeyName, universe)); - } - - protected <E extends TopiaEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(propertyName, propertyName, EchobaseCsvUtil.newForeignKeyValue(entityType, foreignKeyName, universe)); - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationExportContext.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationExportContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationExportContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,106 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import com.google.common.base.Preconditions; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ExportModel; - -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.util.List; - -/** - * To export associations as csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class AssociationExportContext implements Closeable { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(AssociationExportContext.class); - - /** association meta to export. */ - protected final AssociationMeta meta; - - /** Exporter object. */ - protected final EchoBaseExport export; - - /** Where to export datas. */ - protected final Writer writer; - - protected final File entryFile; - - public AssociationExportContext(ExportModel<TopiaEntity> model, - AssociationMeta meta, - File container, - List<TopiaEntity> data) { - Preconditions.checkNotNull(model); - Preconditions.checkNotNull(meta); - Preconditions.checkNotNull(container); - Preconditions.checkNotNull(data); - this.meta = meta; - - export = EchoBaseExport.newExport(model, data, true); - - entryFile = meta.newFile(container); - if (log.isDebugEnabled()) { - log.debug("Creates AssociationExportContext::" + meta + - " - " + entryFile.getName()); - } - writer = meta.newWriter(container); - } - - @Override - public void close() throws IOException { - try { - if (export.isHeaderWritten()) { - - if (log.isInfoEnabled()) { - log.info("Export association " + meta + " to " + entryFile); - } - writer.flush(); - } else { - - // this file was not used, delete it - FileUtils.deleteQuietly(entryFile); - } - } finally { - IOUtils.closeQuietly(writer); - } - } - - public void write() throws Exception { - export.write(writer); - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParser.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParser.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParser.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,37 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import org.nuiton.util.csv.ValueParser; - -import java.text.ParseException; - -public class AssociationValueParser implements ValueParser<String[]> { - - @Override - public String[] parse(String value) throws ParseException { - String[] ids = value.split("\\|"); - return ids; - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParserFormatter.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParserFormatter.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/AssociationValueParserFormatter.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,80 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import com.google.common.collect.Lists; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.StringUtil; -import org.nuiton.util.csv.ValueParserFormatter; - -import java.text.ParseException; -import java.util.Collection; -import java.util.Map; - -public class AssociationValueParserFormatter<E extends TopiaEntity> implements ValueParserFormatter<Collection<E>> { - - protected final Class<E> entityType; - - protected final Map<String, E> universe; - - public AssociationValueParserFormatter( - Class<E> entityType, - Map<String, E> universe) { - this.entityType = entityType; - this.universe = universe; - } - - @Override - public Collection<E> parse(String value) throws ParseException { - Collection<E> result = Lists.newArrayList(); - if (StringUtils.isNotBlank(value)) { - - String[] ids = value.split("\\|"); - for (String id : ids) { - E association = universe.get(id); - association.setTopiaId(id); - result.add(association); - } - } - return result; - } - - @Override - public String format(Collection<E> e) { - - String value; - if (CollectionUtils.isEmpty(e)) { - value = ""; - } else { - Collection<String> ids = Lists.newArrayList(); - for (E e1 : e) { - ids.add(e1.getTopiaId()); - } - value = StringUtil.join(ids, "|", true); - } - return value; - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,103 +0,0 @@ -/* - * #%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.csv; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; - -import java.io.Serializable; -import java.util.Map; -import java.util.Set; - -/** - * To keep result of the import of a file. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class CsvFileImportResult implements Serializable { - - private static final long serialVersionUID = 1L; - - /** Name of the csv file to import. */ - protected final String importFileName; - - /** type of entity to import csv datas. */ - protected final Set<EchoBaseEntityEnum> entityTypes; - - /** Count of created entities. */ - protected final Map<EchoBaseEntityEnum, Integer> numberCreated; - - /** Count of updated entities. */ - protected final Map<EchoBaseEntityEnum, Integer> numberUpdated; - - public CsvFileImportResult(String importFileName) { - this.importFileName = importFileName; - entityTypes = Sets.newHashSet(); - numberCreated = Maps.newEnumMap(EchoBaseEntityEnum.class); - numberUpdated = Maps.newEnumMap(EchoBaseEntityEnum.class); - } - - public Set<EchoBaseEntityEnum> getEntityTypes() { - return Sets.immutableEnumSet(entityTypes); - } - - public int getNumberCreated(EchoBaseEntityEnum entityType) { - return getInteger(numberCreated, entityType); - } - - public int getNumberUpdated(EchoBaseEntityEnum entityType) { - return getInteger(numberUpdated, entityType); - } - - public String getImportFileName() { - return importFileName; - } - - public void incrementsNumberCreated(EchoBaseEntityEnum entityType) { - increments(numberCreated, entityType); - } - - public void incrementsNumberUpdated(EchoBaseEntityEnum entityType) { - increments(numberUpdated, entityType); - } - - protected int getInteger(Map<EchoBaseEntityEnum, Integer> map, - EchoBaseEntityEnum entityType) { - Integer result = map.get(entityType); - return result == null ? 0 : result; - } - - protected void increments(Map<EchoBaseEntityEnum, Integer> map, - EchoBaseEntityEnum entityType) { - Integer result = map.get(entityType); - if (result == null) { - - entityTypes.add(entityType); - result = 0; - } - map.put(entityType, ++result); - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvImportResult.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvImportResult.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvImportResult.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,101 +0,0 @@ -/* - * #%L - * EchoBase :: Services - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.csv; - -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; - -import java.io.Serializable; - -/** - * A simple csv result bean just to keep the number of created or - * updated entities. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class CsvImportResult implements Serializable { - - private static final long serialVersionUID = 1L; - - /** type of entity to import csv datas. */ - protected final EchoBaseEntityEnum entityType; - - /** Name of the csv file to import. */ - protected final String importFileName; - - /** Flag to authorize to create entities not found in db. */ - protected final boolean createIfNotFound; - - /** Count of created entities. */ - protected int numberCreated; - - /** Count of updated entities. */ - protected int numberUpdated; - - public static CsvImportResult newResult(EchoBaseEntityEnum entityType, - String importFileName, - boolean createIfNotFound) { - CsvImportResult result = new CsvImportResult(entityType, importFileName, - createIfNotFound); - return result; - } - - protected CsvImportResult(EchoBaseEntityEnum entityType, - String importFileName, - boolean createIfNotFound) { - this.entityType = entityType; - this.importFileName = importFileName; - this.createIfNotFound = createIfNotFound; - } - - public EchoBaseEntityEnum getEntityType() { - return entityType; - } - - - public String getImportFileName() { - return importFileName; - } - - public int getNumberCreated() { - return numberCreated; - } - - public int getNumberUpdated() { - return numberUpdated; - } - - public boolean isCreateIfNotFound() { - return createIfNotFound; - } - - public void incrementsNumberCreated() { - numberCreated++; - } - - public void incrementsNumberUpdated() { - numberUpdated++; - } - -} Copied: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java (from rev 551, trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java) =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java (rev 0) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java 2012-08-16 16:21:10 UTC (rev 553) @@ -0,0 +1,159 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 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.csv; + +import fr.ifremer.echobase.entities.data.Cell; +import fr.ifremer.echobase.entities.data.CellDAO; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.DataMetadata; +import fr.ifremer.echobase.entities.references.DataQuality; +import org.nuiton.topia.persistence.csv.TopiaCsvCommons; +import org.nuiton.util.csv.ValueParser; +import org.nuiton.util.csv.ValueParserFormatter; +import org.nuiton.util.csv.ValueSetter; + +import java.sql.Timestamp; +import java.text.ParseException; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Usefull class to build csv import-export models. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.2 + */ +public class EchoBaseCsvUtil extends TopiaCsvCommons { + + public static final ValueParserFormatter<Date> DAY_TIME_SECOND_WITH_TIMESTAMP = + new DateValue("dd/MM/yyyy HH:mm:ss") { + + @Override + public Date parse(String value) throws ParseException { + + Date parse = super.parse(value); + if (parse != null) { + parse = new Timestamp(parse.getTime()); + } + return parse; + } + }; + + public static final String CELLULE_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSSS"; + + public static final ValueParser<Date> IMPORT_DAY_TIME_ECHOBASE = new DateValue(CELLULE_DATE_FORMAT); + + public static final ValueParser<Boolean> INT_TO_BOOLEAN_PARSER = new ValueParser<Boolean>() { + + @Override + public Boolean parse(String value) { + return "1".equals(value); + } + }; + + public static final ValueParser<Float> NA_TO_FLOAT_PARSER = new FloatParserFormatter(null, true) { + + @Override + protected Float parseNoneEmptyValue(String value) { + Float result = null; + if (!"NA".equals(value)) { + result = super.parseNoneEmptyValue(value); + } + return result; + } + + }; + + public static final ValueParser<Integer> NA_TO_INTEGER_PARSER = new IntegerParserFormatter(null, true) { + + @Override + protected Integer parseNoneEmptyValue(String value) { + Integer result = null; + if (!"NA".equals(value)) { + result = super.parseNoneEmptyValue(value); + } + return result; + } + + }; + + public static final String CELL_NAME = "name"; + + public static final String OPERATION_ID = "operationId"; + + public static final String VESSEL_NAME = "vesselName"; + + public static final String GEAR_CODE = "gearCode"; + + public static final String DEPTH_STRATUM_ID = "depthStratumId"; + +// public static <E extends TopiaEntity> ForeignKeyValue<E> create(Class<E> type, String propertyName, Map<String, E> universe) { +// return new ForeignKeyValue<E>(type, propertyName, universe); +// } + + protected EchoBaseCsvUtil() { + // avoid instanciation on helper class + } + + public static ValueParser<Cell> newCellValueParser(Voyage voyage, CellDAO cellDAO) { + 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(); + + DataQuality getDataQuality(); + + void setDataQuality(DataQuality dataQuality); + + } + + public static <B extends ResultAble> ValueSetter<B, Result> newResultValueSetter() { + return new ResultValueSetter<B>(); + } + + private static class ResultValueSetter<B extends ResultAble> implements ValueSetter<B, Result> { + + @Override + public void set(B object, Result value) throws Exception { + object.addResult(value); + } + } + + public static ValueParser<Result> newResultValueParser( + DataMetadata metadata, boolean useFillValue) { + return new ResultValueParser(metadata, useFillValue); + } + +} Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseExport.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseExport.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseExport.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,101 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import org.nuiton.util.csv.Export; -import org.nuiton.util.csv.ExportModel; - -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.nio.charset.Charset; - -/** - * Extends the {@link Export} classes to be able to generate only once - * the header. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class EchoBaseExport<E> extends Export<E> { - - public static <E> EchoBaseExport<E> newExport(ExportModel<E> model, - Iterable<E> data, - boolean writeOnceHeader) { - return new EchoBaseExport<E>(model, data, writeOnceHeader); - } - - public static <E> void exportToWriter(ExportModel<E> model, - Iterable<E> data, - Writer writer, - boolean writeOnceHeader) throws Exception { - Export<E> exporter = newExport(model, data, writeOnceHeader); - exporter.write(writer); - } - - public static <E> void exportToFile(ExportModel<E> model, - Iterable<E> data, - File file, - Charset charset, - boolean writeOnceHeader) throws Exception { - Export<E> exporter = newExport(model, data, writeOnceHeader); - exporter.write(file, charset); - } - - public static <E> String exportToString(ExportModel<E> model, - Iterable<E> data, - Charset charset, - boolean writeOnceHeader) throws Exception { - Export<E> exporter = newExport(model, data, writeOnceHeader); - return exporter.toString(charset); - } - - protected final boolean writeOnceHeader; - - protected boolean headerWritten; - - public boolean isHeaderWritten() { - return headerWritten; - } - - protected EchoBaseExport(ExportModel<E> model, - Iterable<E> data, - boolean writeOnceHeader) { - super(model, data); - this.writeOnceHeader = writeOnceHeader; - } - - @Override - protected void writeHeader(Writer writer) throws IOException { - if (!writeOnceHeader || !headerWritten) { - - // no header generated, let's do it! - - super.writeHeader(writer); - - // mark it as written - headerWritten = true; - } - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseImport.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseImport.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchoBaseImport.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,71 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import com.google.common.base.Charsets; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportModel; -import org.nuiton.util.csv.ImportRuntimeException; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; - -/** - * This extends of the {@link Import} offers to allow case on header names. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class EchoBaseImport<E> extends Import<E> { - - public static String[] getHeader(File file, char charSeprator) { - - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), Charsets.UTF_8.name())); - try { - String header = reader.readLine(); - String[] result = header.split(charSeprator + ""); - return result; - } finally { - reader.close(); - } - } catch (IOException e) { - throw new ImportRuntimeException("Could not obtain header of file " + file, e); - } - } - - public static <E> EchoBaseImport<E> newImport(ImportModel<E> model, - Reader reader) { - return new EchoBaseImport<E>(model, reader); - } - - public EchoBaseImport(ImportModel<E> importModel, Reader reader) { - super(importModel, reader); - } - -} Deleted: 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EchobaseCsvUtil.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,166 +0,0 @@ -/* - * #%L - * EchoBase :: Services - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.csv; - -import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; -import fr.ifremer.echobase.entities.data.Result; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.entities.references.DataQuality; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.Common; -import org.nuiton.util.csv.ValueFormatter; -import org.nuiton.util.csv.ValueParser; -import org.nuiton.util.csv.ValueParserFormatter; -import org.nuiton.util.csv.ValueSetter; - -import java.sql.Timestamp; -import java.text.ParseException; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * Usefull class to build csv import-export models. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class EchobaseCsvUtil extends Common { - - public static final ValueParserFormatter<Date> DAY_TIME_SECOND_WITH_TIMESTAMP = - new DateValue("dd/MM/yyyy HH:mm:ss") { - - @Override - public Date parse(String value) throws ParseException { - - Date parse = super.parse(value); - if (parse != null) { - parse = new Timestamp(parse.getTime()); - } - return parse; - } - }; - - public static final String CELLULE_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSSS"; - - public static final ValueParser<Date> IMPORT_DAY_TIME_ECHOBASE = new DateValue(CELLULE_DATE_FORMAT); - - public static final ValueParser<Boolean> INT_TO_BOOLEAN_PARSER = new ValueParser<Boolean>() { - - @Override - public Boolean parse(String value) { - return "1".equals(value); - } - }; - - public static final ValueParser<Float> NA_TO_FLOAT_PARSER = new FloatParserFormatter(null, true) { - - @Override - protected Float parseNoneEmptyValue(String value) { - Float result = null; - if (!"NA".equals(value)) { - result = super.parseNoneEmptyValue(value); - } - return result; - } - - }; - - public static final ValueParser<Integer> NA_TO_INTEGER_PARSER = new IntegerParserFormatter(null, true) { - - @Override - protected Integer parseNoneEmptyValue(String value) { - Integer result = null; - if (!"NA".equals(value)) { - result = super.parseNoneEmptyValue(value); - } - return result; - } - - }; - - public static final AssociationValueParser ASSOCIATION_VALUE_PARSER = new AssociationValueParser(); - - public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyValue<E>(type, propertyName, universe); - } - - public static <E extends TopiaEntity> ForeignKeyValue<E> create(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyValue<E>(type, propertyName, universe); - } - - public static <E extends TopiaEntity> ForeignKeyValueForAssociation<E> newForeignKeyValueAssociation(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyValueForAssociation<E>(type, propertyName, universe); - } - - public static <E extends TopiaEntity> ValueFormatter<Collection<E>> newAssociationValueFormatter() { - return new AssociationValueParserFormatter<E>(null, null); - } - - protected EchobaseCsvUtil() { - // avoid instanciation on helper class - } - - public static ValueParser<Cell> newCellValueParser(Voyage voyage, CellDAO cellDAO) { - 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(); - - DataQuality getDataQuality(); - - void setDataQuality(DataQuality dataQuality); - - } - - public static <B extends ResultAble> ValueSetter<B, Result> newResultValueSetter() { - return new ResultValueSetter<B>(); - } - - private static class ResultValueSetter<B extends ResultAble> implements ValueSetter<B, Result> { - - @Override - public void set(B object, Result value) throws Exception { - object.addResult(value); - } - } - - public static ValueParser<Result> newResultValueParser( - DataMetadata metadata, boolean useFillValue) { - return new ResultValueParser(metadata, useFillValue); - } - -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityCsvModel.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityCsvModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityCsvModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,254 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.csv; - -import com.google.common.base.Function; -import com.google.common.collect.Maps; -import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.meta.TableMeta; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ValueFormatter; -import org.nuiton.util.decorator.Decorator; - -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.Map; - -/** - * A model to import / export entities into csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class EntityCsvModel<E extends TopiaEntity> extends AbstractImportExportModel<E> { - - protected final TableMeta tableMeta; - - public static <E extends TopiaEntity> EntityCsvModel<E> newModel( - char separator, - TableMeta tableMeta - ) { - return new EntityCsvModel<E>(separator, tableMeta); - } - - public static <E extends TopiaEntity> EntityCsvModel<E> newModel( - char separator, - TableMeta tableMeta, - String idHeader - ) { - return new EntityCsvModel<E>(separator, tableMeta, idHeader); - } - - @Override - public E newEmptyInstance() { - return (E) tableMeta.newEntity(); - } - - public void addForeignKeyForExport(String propertyName, - Class<TopiaEntity> entityType) { - - Map<String, TopiaEntity> universe = Collections.emptyMap(); - - newColumnForExport( - propertyName, - EchobaseCsvUtil.newForeignKeyValue(entityType, - propertyName, - universe) - ); - } - - public <T> void addDecoratedForeignKeyForExport(String headerName, String propertyName, Decorator<T> decorator) { - modelBuilder.newColumnForExport(headerName, propertyName, - new ForeignKeyDecoratedValue<T>(decorator)); - } - - public <E extends TopiaEntity> void addForeignKeyForImport(String headerName, - String propertyName, - Class<E> entityType, - Collection<E> entities, - Function<E, String> transform) { - - Map<String, E> universe = Maps.uniqueIndex(entities, transform); - - newMandatoryColumn( - headerName, - propertyName, - EchobaseCsvUtil.newForeignKeyValue(entityType, - propertyName, - universe) - ); - } - - public <E extends TopiaEntity> void addForeignKeyForAssociationForImport(String headerName, - String propertyName, - Class<E> entityType, - Collection<E> entities, - Function<E, String> transform) { - - Map<String, E> universe = Maps.uniqueIndex(entities, transform); - - newMandatoryColumn( - headerName, - propertyName, - EchobaseCsvUtil.newForeignKeyValueAssociation(entityType, - propertyName, - universe) - ); - } - - public <E extends TopiaEntity> void addForeignKeyForImport(String propertyName, - Class<E> entityType, - Collection<E> entities) { - - Map<String, E> universe = Maps.uniqueIndex( - entities, EchoBaseFunctions.TO_TOPIAID); - - newMandatoryColumn( - propertyName, - EchobaseCsvUtil.newForeignKeyValue(entityType, - propertyName, - universe) - ); - } - - public void addDefaultColumn(String propertyName, - Class<?> type) { - addDefaultColumn(propertyName, propertyName, type); - } - - public void addDefaultColumn(String headerName, - String propertyName, - Class<?> type) { - - if (Date.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.DAY_TIME_SECOND_WITH_TIMESTAMP - ); - } else if (double.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.DOUBLE_PRIMITIVE - ); - } else if (Double.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.DOUBLE - ); - } else if (long.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.PRIMITIVE_LONG - ); - } else if (Long.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.LONG - ); - } else if (float.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.PRIMITIVE_FLOAT - ); - } else if (Float.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.FLOAT - ); - } else if (int.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.PRIMITIVE_INTEGER - ); - } else if (Integer.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.INTEGER - ); - } else if (boolean.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.PRIMITIVE_BOOLEAN - ); - } else if (Boolean.class.equals(type)) { - newColumnForImportExport( - headerName, - propertyName, - EchobaseCsvUtil.BOOLEAN - ); - } else { - - // string - newColumnForImportExport( - headerName, - propertyName - ); - } - } - - public static class ForeignKeyDecoratedValue<E> implements ValueFormatter<E> { - - protected final Decorator<E> decorator; - - public ForeignKeyDecoratedValue(Decorator<E> decorator) { - this.decorator = decorator; - } - - @Override - public String format(E e) { - String value = ""; - if (e != null) { - value = decorator.toString(e); - } - return value; - } - } - - protected EntityCsvModel(char separator, - TableMeta tableMeta) { - super(separator); - this.tableMeta = tableMeta; - } - - protected EntityCsvModel(char separator, - TableMeta tableMeta, - String idHeader) { - this(separator, tableMeta); - newColumnForImportExport( - idHeader, - TopiaEntity.TOPIA_ID - ); - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityExportContext.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityExportContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/EntityExportContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,150 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ExportModel; - -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.util.Collection; -import java.util.List; - -/** - * to export entity as csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class EntityExportContext implements Closeable { - - /** Logger. */ - private static final Log log = LogFactory.getLog(EntityExportContext.class); - - /** meta to export. */ - protected final TableMeta meta; - - /** Exporter object. */ - protected final EchoBaseExport export; - - /** Where to export datas. */ - protected final Writer writer; - - /** - * Unique list to store data to export. (will be shared with - * association export contexts.) - */ - private final List<TopiaEntity> data; - - /** Association export context for this type of entity. */ - protected final Collection<AssociationExportContext> associationExportContexts; - - protected final File entryFile; - - public EntityExportContext(ExportModel<TopiaEntity> model, - TableMeta meta, - File container) { - Preconditions.checkNotNull(model); - Preconditions.checkNotNull(meta); - Preconditions.checkNotNull(container); - - this.meta = meta; - data = Lists.newArrayList(); - export = EchoBaseExport.newExport(model, data, true); - entryFile = meta.newFile(container); - if (log.isDebugEnabled()) { - log.debug("Creates EntityExportContext::" + meta + " - " + - entryFile.getName()); - } - writer = meta.newWriter(container); - associationExportContexts = Lists.newArrayList(); - } - - public void addAssociationExportContext(AssociationMeta meta, - ExportModel<TopiaEntity> model, - File container) { - associationExportContexts.add( - new AssociationExportContext(model, - meta, - container, - data) - ); - } - - @Override - public void close() throws IOException { - - try { - if (export.isHeaderWritten()) { - - if (log.isInfoEnabled()) { - log.info("Export table " + meta + " to " + entryFile); - } - writer.flush(); - } else { - // this file was not used, delete it - FileUtils.deleteQuietly(entryFile); - } - } finally { - IOUtils.closeQuietly(writer); - for (AssociationExportContext c : associationExportContexts) { - c.close(); - } - } - } - - public void write(TopiaEntity data) throws Exception { - this.data.add(data); - try { - export.write(writer); - } finally { - this.data.clear(); - } - } - - public void writeAssociations(TopiaEntity data) throws Exception { - this.data.add(data); - try { - for (AssociationExportContext c : associationExportContexts) { - AssociationMeta cMeta = c.meta; - boolean emptyChild = cMeta.isChildEmpty(data); - if (!emptyChild) { - c.write(); - } - } - } finally { - this.data.clear(); - } - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValue.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValue.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValue.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,77 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import fr.ifremer.echobase.EchoBaseTechnicalException; -import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ValueParserFormatter; - -import java.text.ParseException; -import java.util.Map; - -public class ForeignKeyValue<E extends TopiaEntity> implements ValueParserFormatter<E> { - - protected final String propertyName; - - protected final Class<E> entityType; - - protected final Map<String, E> universe; - - public ForeignKeyValue(Class<E> entityType, - String propertyName, - Map<String, E> universe) { - this.entityType = entityType; - this.propertyName = propertyName; - this.universe = universe; - } - - - @Override - public E parse(String value) throws ParseException { - E result = null; - if (StringUtils.isNotBlank(value)) { - - // get entity from universe - result = universe.get(value); - - if (result == null) { - - // can not find entity this is a big problem for us... - throw new EchoBaseTechnicalException( - "Could not find entity of type " + entityType.getSimpleName() + " with '" + propertyName + "' = " + value); - } - } - return result; - } - - @Override - public String format(E e) { - String value = ""; - if (e != null) { - value = e.getTopiaId(); - } - return value; - } -} \ No newline at end of file Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValueForAssociation.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValueForAssociation.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/ForeignKeyValueForAssociation.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,69 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $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.csv; - -import fr.ifremer.echobase.EchoBaseTechnicalException; -import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.csv.ValueParser; - -import java.text.ParseException; -import java.util.Arrays; -import java.util.Collection; -import java.util.Map; - -public class ForeignKeyValueForAssociation<E extends TopiaEntity> implements ValueParser<Collection<E>> { - - protected final String propertyName; - - protected final Class<E> entityType; - - protected final Map<String, E> universe; - - public ForeignKeyValueForAssociation(Class<E> entityType, - String propertyName, - Map<String, E> universe) { - this.entityType = entityType; - this.propertyName = propertyName; - this.universe = universe; - } - - @Override - public Collection<E> parse(String value) throws ParseException { - E result = null; - if (StringUtils.isNotBlank(value)) { - - // get entity from universe - result = universe.get(value); - - if (result == null) { - - // can not find entity this is a big problem for us... - throw new EchoBaseTechnicalException( - "Could not find entity with '" + propertyName + "' = " + value); - } - } - return Arrays.asList(result); - } -} \ No newline at end of file Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,11 +25,9 @@ import com.google.common.collect.Lists; import com.google.common.collect.Multimap; -import com.google.common.collect.Multimaps; -import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.meta.DbMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.Metadatas; import java.util.List; @@ -128,68 +126,6 @@ return result.toArray(new EchoBaseEntityEnum[result.size()]); } - public static MetaFilenameAware[] getEntries(DbMeta dbMeta) { - - List<MetaFilenameAware> entities = Lists.newArrayList(); - List<MetaFilenameAware> associations = Lists.newArrayList(); - - addEntries(dbMeta, entities, associations, getReferenceTypes()); - addEntries(dbMeta, entities, associations, getDataTypes()); - entities.addAll(associations); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static MetaFilenameAware[] getReferenceEntries(DbMeta dbMeta) { - - List<MetaFilenameAware> entities = Lists.newArrayList(); - List<MetaFilenameAware> associations = Lists.newArrayList(); - - addEntries(dbMeta, entities, associations, getReferenceTypes()); - - entities.addAll(associations); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static MetaFilenameAware[] getDataEntries(DbMeta dbMeta) { - - List<MetaFilenameAware> entities = Lists.newArrayList(); - - addEntries(dbMeta, entities, null, getDataTypes()); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static Multimap<EchoBaseEntityEnum, MetaFilenameAware> getDataAssociationsEntries(DbMeta dbMeta) { - - List<MetaFilenameAware> associations = Lists.newArrayList(); - - addEntries(dbMeta, null, associations, getDataTypes()); - - Multimap<EchoBaseEntityEnum, MetaFilenameAware> associationsBySource = Multimaps.index(associations, EchoBaseFunctions.META_BY_SOURCE); - return associationsBySource; - } - - protected static void addEntries(DbMeta dbMeta, - List<MetaFilenameAware> entities, - List<MetaFilenameAware> associations, - EchoBaseEntityEnum[] types) { - for (EchoBaseEntityEnum type : types) { - - TableMeta tableMeta = getTableMeta(dbMeta, type); - if (entities != null) { - entities.add(tableMeta); - } - if (associations != null) { - associations.addAll(tableMeta.getAssociations()); - } - } - } - - protected static TableMeta getTableMeta(DbMeta dbMeta, - EchoBaseEntityEnum tableName) { - TableMeta result = dbMeta.getTable(tableName); - return result; - } - protected EntitiesUtil() { // avoid to instanciate helper class } Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/CellImpl.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/CellImpl.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/CellImpl.java 2012-08-16 16:21:10 UTC (rev 553) @@ -51,7 +51,7 @@ } @Override - public void acceptWithNoChilds(EntityVisitor visitor) { + public void accept2(EntityVisitor visitor) { visitor.start(this); visitor.visit(this, PROPERTY_NAME, String.class, name); visitor.visit(this, PROPERTY_DATA, Collection.class, Data.class, data); Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/AssociationMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/AssociationMeta.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/AssociationMeta.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,151 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.entities.meta; - -import com.google.common.base.Charsets; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.EntityOperator; -import org.nuiton.util.ObjectUtil; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.OutputStreamWriter; -import java.io.Serializable; -import java.io.Writer; -import java.util.Collection; - -/** - * Define the meta data of a entity association field. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class AssociationMeta implements Serializable, MetaFilenameAware { - - private static final long serialVersionUID = 1L; - - - /** Association source entity type. */ - protected EchoBaseEntityEnum source; - - /** Association target entity type. */ - protected EchoBaseEntityEnum target; - - /** Name fo the association. */ - protected String name; - - /** Operator of the source entity used to get / set associations. */ - protected transient EntityOperator<TopiaEntity> operator; - - protected static AssociationMeta newMeta(EchoBaseEntityEnum source, - EchoBaseEntityEnum target, - String name) { - return new AssociationMeta(source, target, name); - } - - public AssociationMeta(EchoBaseEntityEnum source, - EchoBaseEntityEnum target, - String name) { - this.source = source; - this.target = target; - this.name = name; - } - - @Override - public EchoBaseEntityEnum getSource() { - return source; - } - - @Override - public String getName() { - return name; - } - - @Override - public String getFilename() { - return source.name() + "_" + name + CSV_EXTENSION; - } - - @Override - public File newFile(File container) { - return new File(container, getFilename()); - } - - @Override - public Writer newWriter(File container) { - File file = newFile(container); - try { - return new OutputStreamWriter(new FileOutputStream(file), - Charsets.UTF_8); - } catch (FileNotFoundException e) { - throw new EchoBaseTechnicalException("Could not find file " + file); - } - } - - public EchoBaseEntityEnum getTarget() { - return target; - } - - public TopiaEntity newEntity() { - return ObjectUtil.newInstance(source.getImplementation()); - } - - public Object newAssociation() { - return ObjectUtil.newInstance(target.getImplementation()); - } - - public Collection<TopiaEntity> getChilds(TopiaEntity entity) { - Object o = getOperator().get(name, entity); - return (Collection<TopiaEntity>) o; - } - - public void setChilds(TopiaEntity entity, Collection<TopiaEntity> childs) { - getOperator().addAllChild(name, entity, childs); - } - - public boolean isChildEmpty(TopiaEntity entity) { - boolean result = getOperator().isChildEmpty(name, entity); - return result; - } - - public EntityOperator<TopiaEntity> getOperator() { - if (operator == null) { - operator = - (EntityOperator<TopiaEntity>) - EchoBaseDAOHelper.getOperator( - source.getContract()); - } - - return operator; - } - - @Override - public String toString() { - return "<" + source + ":" + name + " " + target + ">"; - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,94 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.entities.meta; - -import org.nuiton.topia.persistence.TopiaEntity; - -import java.io.Serializable; -import java.util.Date; - -/** - * Define the meta data of a entity field. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class ColumnMeta implements Serializable { - - protected static ColumnMeta newMeta(String name, Class<?> type) { - return new ColumnMeta(name, type); - } - - private static final long serialVersionUID = 1L; - - /** Name of the column. */ - protected String name; - - /** Type of the column. */ - protected Class<?> type; - - public String getName() { - return name; - } - - public Class<?> getType() { - return type; - } - - public String getTypeSimpleName() { - return type.getSimpleName(); - } - - public String getColumnType() { - String result = "string"; - if (boolean.class.equals(type)) { - result = "boolean"; - } else if (Date.class.equals(type)) { - result = "date"; - } - return result; - } - - public boolean isFK() { - return TopiaEntity.class.isAssignableFrom(type); - } - - public boolean isDate() { - return Date.class.isAssignableFrom(type); - } - - public boolean isBoolean() { - return boolean.class.equals(type); - } - - public boolean isNumber() { - return !isBoolean() && (type.isPrimitive() || Number.class.isAssignableFrom(type)); - } - - protected ColumnMeta(String name, Class<?> type) { - this.name = name; - this.type = type; - } - -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/DbMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/DbMeta.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/DbMeta.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,98 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.entities.meta; - - -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; - -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -/** - * Define metas about a db. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class DbMeta implements Iterable<TableMeta> { - - /** All metas of the db. */ - protected final List<TableMeta> tables; - - /** All types that we do not want to edit. */ - protected final Set<EchoBaseEntityEnum> nonEditableTypes = Sets.immutableEnumSet( - EchoBaseEntityEnum.EchoBaseUser, - EchoBaseEntityEnum.EntityModificationLog, - EchoBaseEntityEnum.ExportQuery - ); - - public static DbMeta newDbMeta() { - return new DbMeta(EchoBaseEntityEnum.values()); - } - - public List<String> getTableNames() { - List<String> result = Lists.newArrayList(); - for (TableMeta tableMeta : getTables()) { - result.add(tableMeta.getName()); - } - return result; - } - - public List<TableMeta> getTables() { - return tables; - } - - public TableMeta getTable(EchoBaseEntityEnum entityType) { - Preconditions.checkNotNull(entityType); - TableMeta result = null; - for (TableMeta tableMeta : getTables()) { - if (entityType.equals(tableMeta.getSource())) { - result = tableMeta; - break; - } - } - return result; - } - - @Override - public Iterator<TableMeta> iterator() { - return getTables().iterator(); - } - - protected DbMeta(EchoBaseEntityEnum[] entityTypes) { - tables = Lists.newArrayList(); - for (EchoBaseEntityEnum entityEnum : entityTypes) { - TableMeta tableMeta = TableMeta.newMeta(entityEnum); - tables.add(tableMeta); - } - } - - public boolean isEditable(TableMeta meta) { - return !nonEditableTypes.contains(meta.getSource()); - } -} Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/EchoBaseMetadatas.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/EchoBaseMetadatas.java (rev 0) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/EchoBaseMetadatas.java 2012-08-16 16:21:10 UTC (rev 553) @@ -0,0 +1,86 @@ +package fr.ifremer.echobase.entities.meta; + +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EntitiesUtil; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.Metadatas; +import org.nuiton.topia.persistence.metadata.TopiaEntityEnumProvider; + +import java.util.List; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since TODO + */ +public class EchoBaseMetadatas { + + /** All types that we do not want to edit. */ + protected static final EchoBaseEntityEnum[] nonEditableTypes = { + EchoBaseEntityEnum.EchoBaseUser, + EchoBaseEntityEnum.EntityModificationLog, + EchoBaseEntityEnum.ExportQuery + }; + + public static DbMeta<EchoBaseEntityEnum> newDbMeta( + + ) { + return DbMeta.newDbMeta( + EchoBaseEntityEnum.values(), + nonEditableTypes, + new EchoBaseTopiaEntityEnumProvider() + ); + } + + public static MetaFilenameAware<EchoBaseEntityEnum>[] getEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { + + List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); + List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); + + Metadatas.addEntries(dbMeta, entities, associations, EntitiesUtil.getReferenceTypes()); + Metadatas.addEntries(dbMeta, entities, associations, EntitiesUtil.getDataTypes()); + entities.addAll(associations); + return entities.toArray(new MetaFilenameAware[entities.size()]); + } + + public static MetaFilenameAware<EchoBaseEntityEnum>[] getReferenceEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { + + List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); + List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); + + Metadatas.addEntries(dbMeta, entities, associations, EntitiesUtil.getReferenceTypes()); + + entities.addAll(associations); + return entities.toArray(new MetaFilenameAware[entities.size()]); + } + + public static MetaFilenameAware<EchoBaseEntityEnum>[] getDataEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { + + List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); + + Metadatas.addEntries(dbMeta, entities, null, EntitiesUtil.getDataTypes()); + return entities.toArray(new MetaFilenameAware[entities.size()]); + } + + public static Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> getDataAssociationsEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { + + List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); + + Metadatas.addEntries(dbMeta, null, associations, EntitiesUtil.getDataTypes()); + + Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> associationsBySource = Metadatas.split(associations); + return associationsBySource; + } + + public static class EchoBaseTopiaEntityEnumProvider implements TopiaEntityEnumProvider<EchoBaseEntityEnum> { + + @Override + public <E> EchoBaseEntityEnum getEntityEnum(Class<E> type) { + return EchoBaseEntityEnum.valueOf(type); + } + } +} Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/EchoBaseMetadatas.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/MetaFilenameAware.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/MetaFilenameAware.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/MetaFilenameAware.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,51 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.entities.meta; - -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; - -import java.io.File; -import java.io.Writer; - -/** - * Contract for exportable some Meta. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public interface MetaFilenameAware { - - String CSV_EXTENSION = ".csv"; - - EchoBaseEntityEnum getSource(); - - String getName(); - - String getFilename(); - - File newFile(File container); - - Writer newWriter(File container); - -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,270 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 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.entities.meta; - -import com.google.common.base.Charsets; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.EntityOperator; -import org.nuiton.util.ObjectUtil; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderModelBuilder; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.OutputStreamWriter; -import java.io.Serializable; -import java.io.Writer; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Define metas of a given db table. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class TableMeta implements Serializable, Iterable<ColumnMeta>, MetaFilenameAware { - - private static final long serialVersionUID = 1L; - - public static TableMeta newMeta(EchoBaseEntityEnum entityEnum) { - return new TableMeta(entityEnum); - } - - /** Type of the entity. */ - protected final EchoBaseEntityEnum source; - - /** List of columns of the entity. */ - protected List<ColumnMeta> columns; - - /** List of dependencies (says all property with a topiaentity type) */ - protected final EchoBaseEntityEnum[] dependencies; - - /** List of associations of the entity. */ - protected List<AssociationMeta> associations; - - /** Binder used to copy entities (lazy loaded). */ - protected Binder<TopiaEntity, TopiaEntity> binder; - - /** Entity operator used in generic algorithms. */ - protected transient EntityOperator<TopiaEntity> operator; - - protected boolean useNaturalIdsOrNotNulls; - - @Override - public EchoBaseEntityEnum getSource() { - return source; - } - - @Override - public String getName() { - return source.name(); - } - - @Override - public String getFilename() { - return source.name() + ".csv"; - } - - @Override - public File newFile(File container) { - return new File(container, getFilename()); - } - - @Override - public Writer newWriter(File container) { - File file = newFile(container); - try { - return new OutputStreamWriter(new FileOutputStream(file), - Charsets.UTF_8); - } catch (FileNotFoundException e) { - throw new EchoBaseTechnicalException("Could not find file " + file); - } - } - - @Override - public String toString() { - return "<" + source + ">"; - } - - public Class<? extends TopiaEntity> getEntityType() { - return source.getContract(); - } - - public ColumnMeta getColumns(String columnName) { - Preconditions.checkNotNull(columnName); - ColumnMeta result = null; - for (ColumnMeta columnMeta : getColumns()) { - if (columnName.equals(columnMeta.getName())) { - result = columnMeta; - break; - } - } - return result; - } - - public String[] getColumnNamesAsArray() { - List<String> columnNames = getColumnNames(); - return columnNames.toArray(new String[columnNames.size()]); - } - - public List<String> getColumnNames() { - List<String> result = Lists.newLinkedList(); - for (ColumnMeta columnMeta : getColumns()) { - result.add(columnMeta.getName()); - } - return result; - } - - public List<ColumnMeta> getColumns() { - return columns; - } - - public List<AssociationMeta> getAssociations() { - return associations; - } - - public EchoBaseEntityEnum[] getDependencies() { - return dependencies; - } - - public AssociationMeta getAssociations(String name) { - AssociationMeta result = null; - for (AssociationMeta meta : getAssociations()) { - if (name.equals(meta.getName())) { - result = meta; - break; - } - } - return result; - } - - public void copy(TopiaEntity source, TopiaEntity target) { - getBinder().copy(source, target); - } - - public Map<String, Object> prepareCreate(TopiaEntity bean, - String topiaId) { - Map<String, Object> result = getOperator().getNaturalIsdAndNotNulls(bean); - if (topiaId != null) { - result.put(TopiaEntity.TOPIA_ID, topiaId); - } - return result; - } - - @Override - public Iterator<ColumnMeta> iterator() { - return getColumns().iterator(); - } - - public TopiaEntity newEntity() { - return ObjectUtil.newInstance(source.getImplementation()); - } - - protected static <E extends TopiaEntity> Binder<E, E> newbinder(TableMeta meta) { - BinderModelBuilder<E, E> binderModelBuilder = - (BinderModelBuilder<E, E>) BinderModelBuilder.newEmptyBuilder(meta.getEntityType()); - for (ColumnMeta columnMeta : meta) { - binderModelBuilder.addSimpleProperties( - columnMeta.getName() - ); - } - Binder<E, E> binder = binderModelBuilder.toBinder(); - return binder; - } - - protected Binder<TopiaEntity, TopiaEntity> getBinder() { - if (binder == null) { - binder = newbinder(this); - } - return binder; - } - - protected TableMeta(EchoBaseEntityEnum source) { - Preconditions.checkNotNull(source); - this.source = source; - - Class<? extends TopiaEntity> contract = source.getContract(); - EntityOperator<? extends TopiaEntity> operator = - EchoBaseDAOHelper.getOperator(contract); - - associations = Lists.newArrayList(); - columns = Lists.newLinkedList(); - Set<EchoBaseEntityEnum> deps = Sets.newHashSet(); - - // fill associations - List<String> associationProperties = operator.getAssociationProperties(); - for (String property : associationProperties) { - Class<?> propertyType = operator.getAssociationPropertyType(property); - if (TopiaEntity.class.isAssignableFrom(propertyType)) { - - // only use it for entity - EchoBaseEntityEnum targetEnum = - EchoBaseEntityEnum.valueOf(propertyType); - - AssociationMeta meta = AssociationMeta.newMeta(source, - targetEnum, - property - ); - associations.add(meta); - } - } - - // fill properties (remove all asociations) - List<String> properties = Lists.newArrayList(operator.getProperties()); - properties.removeAll(associationProperties); - for (String property : properties) { - Class<?> propertyType = operator.getPropertyType(property); - ColumnMeta meta = ColumnMeta.newMeta(property, - propertyType); - columns.add(meta); - if (meta.isFK()) { - EchoBaseEntityEnum dependency = - EchoBaseEntityEnum.valueOf(propertyType); - deps.add(dependency); - } - } - dependencies = deps.toArray(new EchoBaseEntityEnum[deps.size()]); - - useNaturalIdsOrNotNulls = source.isUseNotNulls() || - source.isUseNaturalIds(); - } - - public EntityOperator<TopiaEntity> getOperator() { - if (operator == null) { - operator = EchoBaseDAOHelper.getOperator( - (Class<TopiaEntity>) getEntityType()); - } - return operator; - } -} Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo =================================================================== (Binary files differ) 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,13 +27,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EntityModificationLog; -import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.DbMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -43,6 +40,9 @@ import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaFilterPagerUtil; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.PagerUtil; import org.nuiton.util.beans.BeanMonitor; import org.nuiton.util.beans.PropertyDiff; @@ -87,9 +87,9 @@ } } - public TableMeta getTableMeta(EchoBaseEntityEnum tableName) { - DbMeta dbMeta = getDbMeta(); - TableMeta result = dbMeta.getTable(tableName); + public TableMeta<EchoBaseEntityEnum> getTableMeta(EchoBaseEntityEnum tableName) { + DbMeta<EchoBaseEntityEnum> dbMeta = getDbMeta(); + TableMeta<EchoBaseEntityEnum> result = dbMeta.getTable(tableName); return result; } @@ -121,7 +121,7 @@ return rows; } - public <E extends TopiaEntity> List<E> getEntities(TableMeta tableMeta, + public <E extends TopiaEntity> List<E> getEntities(TableMeta<EchoBaseEntityEnum> tableMeta, TopiaFilterPagerUtil.FilterPagerBean pager, String sidx, Boolean ascendantOrder, @@ -295,7 +295,7 @@ } } - public Map<?, ?> getData(TableMeta tableMeta, String topiaId) { + public Map<?, ?> getData(TableMeta<EchoBaseEntityEnum> tableMeta, String topiaId) { EchoBaseEntityEnum entityEnum = tableMeta.getSource(); try { @@ -343,7 +343,7 @@ commitTransaction("Could not commit transaction"); } - public boolean saveEntity(TableMeta tableMeta, + public boolean saveEntity(TableMeta<EchoBaseEntityEnum> tableMeta, String messagePrefix, TopiaEntity entity, EchoBaseUser user, @@ -528,9 +528,9 @@ return row; } - protected <E extends TopiaEntity> ImportExportModel<E> buildForSave(TableMeta meta) { + protected <E extends TopiaEntity> ImportExportModel<E> buildForSave(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, TopiaEntity.TOPIA_ID @@ -554,11 +554,11 @@ return model; } - protected <E extends TopiaEntity> ExportModel<E> buildForLoad(TableMeta meta, + protected <E extends TopiaEntity> ExportModel<E> buildForLoad(TableMeta<EchoBaseEntityEnum> meta, String idName, boolean addDecorated) { - EntityCsvModel<E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, idName Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,8 +25,9 @@ import com.google.common.base.Preconditions; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Locale; @@ -46,7 +47,7 @@ protected Locale locale; - protected DbMeta dbMeta; + protected DbMeta<EchoBaseEntityEnum> dbMeta; public static EchoBaseServiceContext newContext( EchoBaseServiceContext serviceContext, @@ -111,7 +112,7 @@ } @Override - public DbMeta getDbMeta() { + public DbMeta<EchoBaseEntityEnum> getDbMeta() { return dbMeta; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,8 +25,9 @@ package fr.ifremer.echobase.services; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Locale; @@ -48,7 +49,7 @@ EchoBaseConfiguration getConfiguration(); - DbMeta getDbMeta(); + DbMeta<EchoBaseEntityEnum> getDbMeta(); EchoBaseServiceFactory getServiceFactory(); 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,7 +29,6 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.DbMeta; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.nuiton.topia.TopiaContext; @@ -37,6 +36,7 @@ import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Date; import java.util.List; @@ -121,7 +121,7 @@ return serviceContext.getLocale(); } - protected final DbMeta getDbMeta() { + protected final DbMeta<EchoBaseEntityEnum> getDbMeta() { return serviceContext.getDbMeta(); } 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,8 +29,8 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EntitiesUtil; import fr.ifremer.echobase.entities.ExportQuery; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; import fr.ifremer.echobase.services.exceptions.ExportQueryNameAlreadyExistException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -157,7 +157,7 @@ protected void rollbackTransaction(TopiaContext tx, String message) { try { - if (tx!=null) { + if (tx != null) { tx.rollbackTransaction(); } } catch (TopiaException eee) { @@ -172,13 +172,13 @@ // export db steps - nbSteps += EntitiesUtil.getReferenceEntries(getDbMeta()).length; + nbSteps += EchoBaseMetadatas.getReferenceEntries(getDbMeta()).length; if (model.getVoyageIds() != null) { nbSteps += model.getVoyageIds().length; } // import db stesp - nbSteps += EntitiesUtil.getEntries(getDbMeta()).length; + nbSteps += EchoBaseMetadatas.getEntries(getDbMeta()).length; return nbSteps; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,21 +23,30 @@ */ package fr.ifremer.echobase.services; +import com.google.common.base.Preconditions; import com.google.common.collect.Multimap; +import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseIOUtil; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.EntitiesUtil; +import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.persistence.csv.out.AbstractExportEntityVisitor; +import org.nuiton.topia.persistence.csv.out.TopiaCsvExports; import org.nuiton.util.FileUtil; import org.nuiton.util.TimeLog; import java.io.File; import java.io.IOException; +import java.util.Map; +import java.util.Set; /** * Service to import / export a complete db. @@ -77,20 +86,20 @@ FileUtil.createDirectoryIfNecessary(dir); - MetaFilenameAware[] entries = EntitiesUtil.getEntries(getDbMeta()); + MetaFilenameAware<EchoBaseEntityEnum>[] entries = EchoBaseMetadatas.getEntries(getDbMeta()); model.setNbSteps(entries.length); - for (MetaFilenameAware entry : entries) { + for (MetaFilenameAware<EchoBaseEntityEnum> entry : entries) { model.incrementsProgression(); File entryFile = new File(dir, entry.getFilename()); if (entry instanceof AssociationMeta) { - AssociationMeta associationMeta = (AssociationMeta) entry; + AssociationMeta<EchoBaseEntityEnum> associationMeta = (AssociationMeta<EchoBaseEntityEnum>) entry; exportService.exportDatas(associationMeta, entryFile); } else { - TableMeta meta = (TableMeta) entry; + TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; exportService.exportDatas(meta, entryFile); } } @@ -126,7 +135,7 @@ ExportService exportService = getService(ExportService.class); // export all referentiel - MetaFilenameAware[] refEntries = EntitiesUtil.getReferenceEntries( + MetaFilenameAware<EchoBaseEntityEnum>[] refEntries = EchoBaseMetadatas.getReferenceEntries( getDbMeta()); boolean withVoyages = model.getVoyageIds() != null; @@ -140,27 +149,27 @@ model.setNbSteps(nbstesp); } - for (MetaFilenameAware entry : refEntries) { + for (MetaFilenameAware<EchoBaseEntityEnum> entry : refEntries) { model.incrementsProgression(); File entryFile = new File(dir, entry.getFilename()); if (entry instanceof AssociationMeta) { - AssociationMeta associationMeta = (AssociationMeta) entry; + AssociationMeta<EchoBaseEntityEnum> associationMeta = (AssociationMeta<EchoBaseEntityEnum>) entry; exportService.exportDatas(associationMeta, entryFile); } else { - TableMeta meta = (TableMeta) entry; + TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; exportService.exportDatas(meta, entryFile); } } if (withVoyages) { - MetaFilenameAware[] dataEntries = - EntitiesUtil.getDataEntries(getDbMeta()); - Multimap<EchoBaseEntityEnum, MetaFilenameAware> dataAssociationEntries = - EntitiesUtil.getDataAssociationsEntries(getDbMeta()); + MetaFilenameAware<EchoBaseEntityEnum>[] dataEntries = + EchoBaseMetadatas.getDataEntries(getDbMeta()); + Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> dataAssociationEntries = + EchoBaseMetadatas.getDataAssociationsEntries(getDbMeta()); - ReplicateEntityVisitor visitor = ReplicateEntityVisitor.createVisitor( + ReplicateEntityVisitor visitor = createVisitor( exportService, dataEntries, dataAssociationEntries, @@ -183,4 +192,70 @@ EchoBaseIOUtil.compressZipFile(zipFile, dir); } + + public ReplicateEntityVisitor createVisitor(ExportService service, + MetaFilenameAware<EchoBaseEntityEnum>[] entityMetas, + Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> associations, + File container) { + + Preconditions.checkNotNull(service); + + Map<Class<?>, TopiaCsvExports.EntityExportContext> contexts = TopiaCsvExports.createReplicateEntityVisitorContexts( + service, entityMetas, associations, container); + + ReplicateEntityVisitor result = new ReplicateEntityVisitor(contexts); + return result; + } + + /** + * entity visitor to export data to csv files. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ + public static class ReplicateEntityVisitor extends AbstractExportEntityVisitor<EchoBaseEntityEnum> { + + protected final Set<String> categoryIds; + + @Override + protected boolean isNoChildVisit(String propertyName, TopiaEntity entity) { + return Result.PROPERTY_CATEGORY.equals(propertyName) && + entity instanceof Result; + } + + public ReplicateEntityVisitor(Map<Class<?>, TopiaCsvExports.EntityExportContext> entityExporters) { + super(entityExporters); + categoryIds = Sets.newHashSet(); + } + + @Override + public void visit(TopiaEntity entity, String propertyName, + Class<?> type, Object value) { + if (Result.PROPERTY_CATEGORY.equals(propertyName) && + entity instanceof Result) { + + // export category + try { + TopiaEntity topiaEntity = (TopiaEntity) value; + if (categoryIds.add(topiaEntity.getTopiaId())) { + // add this new category + topiaEntity.accept(this); + } + + } catch (TopiaException e) { + if (log.isErrorEnabled()) { + log.error("Can not visit entity " + value, e); + } + } + } + } + + @Override + public void clear() { + + categoryIds.clear(); + + super.clear(); + } + } } 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,8 +25,8 @@ import com.google.common.base.Charsets; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.AbstractExportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.util.csv.ext.AbstractExportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.ExportQueryImpl; @@ -312,7 +312,7 @@ for (String columnHeader : columnHeaders) { newColumnForExport( columnHeader, - EchobaseCsvUtil.TO_STRING_FORMATTER + EchoBaseCsvUtil.TO_STRING_FORMATTER ); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,15 +25,16 @@ import com.google.common.base.Charsets; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.AbstractExportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.out.EntityAssociationExportModel; +import org.nuiton.topia.persistence.csv.out.ExportModelFactory; import org.nuiton.util.TimeLog; import org.nuiton.util.csv.Export; import org.nuiton.util.csv.ExportModel; @@ -48,14 +49,15 @@ * @author tchemit <chemit@codelutin.com> * @since 0.2 */ -public class ExportService extends EchoBaseServiceSupport { +public class ExportService extends EchoBaseServiceSupport implements ExportModelFactory<EchoBaseEntityEnum> { /** Logger. */ private static final Log log = LogFactory.getLog(ExportService.class); public static final TimeLog TIME_LOG = new TimeLog(ExportService.class); - public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta associationMeta) { + @Override + public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<EchoBaseEntityEnum> associationMeta) { ExportModel<E> model = EntityAssociationExportModel.newExportModel( getConfiguration().getCsvSeparator(), @@ -64,9 +66,10 @@ return model; } - public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta meta, boolean asSeen) { + @Override + public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<EchoBaseEntityEnum> meta, boolean asSeen) { - EntityCsvModel<E> model; + EntityCsvModel<EchoBaseEntityEnum, E> model; if (asSeen) { @@ -111,7 +114,7 @@ return model; } - public String exportDatas(TableMeta tableMeta, boolean asSeen) { + public String exportDatas(TableMeta<EchoBaseEntityEnum> tableMeta, boolean asSeen) { Export<TopiaEntity> export = prepareExport(tableMeta, asSeen); @@ -122,7 +125,7 @@ } } - public void exportDatas(TableMeta tableMeta, File file) { + public void exportDatas(TableMeta<EchoBaseEntityEnum> tableMeta, File file) { if (log.isInfoEnabled()) { log.info("Export table " + tableMeta + " to " + file); @@ -139,7 +142,7 @@ TIME_LOG.log(s2, "exportDatas::exportToFile"); } - public void exportDatas(AssociationMeta associationMeta, File file) { + public void exportDatas(AssociationMeta<EchoBaseEntityEnum> associationMeta, File file) { if (log.isInfoEnabled()) { log.info("Export association " + associationMeta + " to " + file); @@ -157,7 +160,7 @@ TIME_LOG.log(s2, "exportDatas::exportToFile"); } - protected Export<TopiaEntity> prepareExport(TableMeta tableMeta, boolean asSeen) { + protected Export<TopiaEntity> prepareExport(TableMeta<EchoBaseEntityEnum> tableMeta, boolean asSeen) { DbEditorService service = getService(DbEditorService.class); List<TopiaEntity> datas = service.getEntities(tableMeta, null, null, null, null); @@ -165,46 +168,14 @@ return Export.newExport(model, datas); } - protected Export<TopiaEntity> prepareExport(AssociationMeta associationMeta) { + protected Export<TopiaEntity> prepareExport(AssociationMeta<EchoBaseEntityEnum> associationMeta) { DbEditorService service = getService(DbEditorService.class); - TableMeta tableMeta = service.getTableMeta(associationMeta.getSource()); + TableMeta<EchoBaseEntityEnum> tableMeta = service.getTableMeta(associationMeta.getSource()); List<TopiaEntity> datas = service.getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0"); ExportModel<TopiaEntity> model = buildForExport(associationMeta); return Export.newExport(model, datas); } - /** - * A model to export associations of entities into csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ - public static class EntityAssociationExportModel<E extends TopiaEntity> extends AbstractExportModel<E> { - - protected final AssociationMeta meta; - - public static <E extends TopiaEntity> ExportModel<E> newExportModel(char separator, - AssociationMeta meta - ) { - EntityAssociationExportModel<E> model = new EntityAssociationExportModel<E>( - separator, - meta); - - // topiaId <-> topiaId - model.newColumnForExport(TopiaEntity.TOPIA_ID); - - model.newColumnForExport( - meta.getName(), - EchobaseCsvUtil.newAssociationValueFormatter() - ); - return model; - } - - protected EntityAssociationExportModel(char separator, AssociationMeta meta) { - super(separator); - this.meta = meta; - } - } } 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,27 +24,21 @@ package fr.ifremer.echobase.services; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import fr.ifremer.echobase.csv.CsvImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EntitiesUtil; import fr.ifremer.echobase.entities.EntityModificationLog; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; -import org.apache.commons.lang3.StringUtils; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; +import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; import org.nuiton.util.TimeLog; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportModel; -import org.nuiton.util.csv.ImportToMap; -import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; @@ -90,9 +84,13 @@ List<String> missingEntries = Lists.newArrayList(); - Map<MetaFilenameAware, ZipEntry> entriestoConsume = discoverEntries( - file, zipFile, missingEntries); + MetaFilenameAware<EchoBaseEntityEnum>[] entries = + EchoBaseMetadatas.getEntries(getDbMeta()); + Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> entriestoConsume = TopiaCsvImports.discoverEntries( + "echobase/", entries, + zipFile, missingEntries); + if (computeSteps) { int size = entriestoConsume.size(); model.setNbSteps(size + missingEntries.size()); @@ -109,22 +107,42 @@ } // consume all found entries - for (Map.Entry<MetaFilenameAware, ZipEntry> entry : + for (Map.Entry<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> entry : entriestoConsume.entrySet()) { model.incrementsProgression(); - MetaFilenameAware entryDef = entry.getKey(); + MetaFilenameAware<EchoBaseEntityEnum> entryDef = entry.getKey(); ZipEntry value = entry.getValue(); - CsvImportResult csvResult = CsvImportResult.newResult( + CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult( entryDef.getSource(), value.getName(), false ); - Reader reader = - new BufferedReader(new InputStreamReader(zipFile.getInputStream(value))); + + Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value))); try { - importFile(entryDef, reader, csvResult); + long s0 = TimeLog.getTime(); + + if (log.isInfoEnabled()) { + log.info("Will import " + entry); + } + + ImportService importService = getService(ImportService.class); + + TopiaCsvImports.importFile((TopiaContextImplementor) getTransaction(), + importService, + entryDef, + reader, + csvResult); + + TIME_LOG.log(s0, "importFile::done"); + + s0 = TimeLog.getTime(); + + flushTransaction(); + + TIME_LOG.log(s0, "importFile::flushTransaction"); } finally { reader.close(); @@ -157,172 +175,171 @@ } } - protected Map<MetaFilenameAware, ZipEntry> discoverEntries(File file, - ZipFile zipFile, - List<String> missingEntries) { - - Map<MetaFilenameAware, ZipEntry> result = - Maps.newLinkedHashMap(); - - MetaFilenameAware[] entries = EntitiesUtil.getEntries(getDbMeta()); - - // check that all mandatories - for (MetaFilenameAware entry : entries) { - String filename = entry.getFilename(); - ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename); - - if (zipEntry == null) { - missingEntries.add(filename); - } else { - result.put(entry, zipEntry); - } - } -// if (!missingEntries.isEmpty() && log.isWarnEnabled()) { -// log.warn("There is " + missingEntries.size() + " missing files " + -// " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false)); +// public void importFile(MetaFilenameAware<EchoBaseEntityEnum> entry, +// Reader reader, +// CsvImportResult<EchoBaseEntityEnum> csvResult) throws IOException, TopiaException { +// +// long s0 = TimeLog.getTime(); +// +// if (log.isInfoEnabled()) { +// log.info("Will import " + entry); // } +// +// ImportService importService = getService(ImportService.class); +// +// TopiaCsvImports.importFile((TopiaContextImplementor) getTransaction(), +// importService, +// entry, +// reader, +// csvResult); +// +// if (entry instanceof AssociationMeta) { +// +// // load a association input +// AssociationMeta<EchoBaseEntityEnum> meta = (AssociationMeta<EchoBaseEntityEnum>) entry; +// ImportModel<Map<String, Object>> model = +// importService.buildForImport(meta); +// ImportToMap importer = ImportToMap.newImportToMap(model, reader, false); +// +// +// try { +// if (isNMAssociationMeta(meta)) { +// TopiaCsvImports.importNMAssociationFile(getTransaction(), meta, importer, csvResult, 1000); +// } else { +// TopiaCsvImports.importAssociationFile(getTransaction(), meta, importer, csvResult, 1000); +// } +// } finally { +// importer.close(); +// } +// +// } else { +// +// // normal entity table import +// TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; +// ImportModel<TopiaEntity> model = importService.buildForImport(meta); +// Import<TopiaEntity> importer = Import.newImport(model, reader); +// +// try { +// TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); +// TopiaCsvImports.importEntityFile(dao, meta, importer, csvResult); +// } finally { +// importer.close(); +// } +// } +// +// TIME_LOG.log(s0, "importFile::done"); +// +// s0 = TimeLog.getTime(); +// +// flushTransaction(); +// +// TIME_LOG.log(s0, "importFile::flushTransaction"); +// } +// +// protected boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) { +// EchoBaseEntityEnum source = meta.getSource(); +// EchoBaseEntityEnum target = meta.getTarget(); +// boolean result = false; +// if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype || +// source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || +// source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { +// result = true; +// } +// return result; +// } +// +// public Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> discoverEntries(ZipFile zipFile, +// List<String> missingEntries) { +// +// Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> result = +// Maps.newLinkedHashMap(); +// +// MetaFilenameAware<EchoBaseEntityEnum>[] entries = +// EchoBaseMetadatas.getEntries(getDbMeta()); +// +// // check that all mandatories +// for (MetaFilenameAware<EchoBaseEntityEnum> entry : entries) { +// String filename = entry.getFilename(); +// ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename); +// +// if (zipEntry == null) { +// missingEntries.add(filename); +// } else { +// result.put(entry, zipEntry); +// } +// } +//// if (!missingEntries.isEmpty() && log.isWarnEnabled()) { +//// log.warn("There is " + missingEntries.size() + " missing files " + +//// " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false)); +//// } +// +// return result; +// } +// +// protected void importEntityFile(TableMeta<EchoBaseEntityEnum> meta, +// Import<TopiaEntity> importer, +// CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { +// +// TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); +// +// for (TopiaEntity entity : importer) { +// +// Map<String, Object> properties = meta.prepareCreate( +// entity, entity.getTopiaId()); +// TopiaEntity entityToSave = dao.create(properties); +// +// meta.copy(entity, entityToSave); +// +// csvResult.incrementsNumberUpdated(); +// } +// } +// +// protected void importAssociationFile(AssociationMeta<EchoBaseEntityEnum> meta, +// ImportToMap importer, +// CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { +// +// EchoBaseEntityEnum source = meta.getSource(); +// EchoBaseEntityEnum target = meta.getTarget(); +// +// StringBuilder builder = new StringBuilder(); +// +// String updateString; +// String targetTableName = target.getContract().getSimpleName(); +// 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) { +// // relation *-* +// table = TopiaEntityHelper.getNormalizedAssociationTableName(sourceTableName, targetTableName); +// updateString = "INSERT INTO " + table + " (" + sourceTableName + "," + targetTableName + ") VALUES('%s','%s');"; +// } else { +// updateString = "UPDATE " + table + " SET " + sourceTableName + " = '%s' WHERE topiaId ='%s';"; +// } +// +// if (log.isDebugEnabled()) { +// log.debug("Will apply " + updateString); +// } +// int compt = 0; +// for (Map<String, Object> row : importer) { +// String topiaId = (String) row.get(TopiaEntity.TOPIA_ID); +// String[] associations = (String[]) row.get("target"); +// for (String association : associations) { +// if (StringUtils.isNotEmpty(association)) { +// builder.append(String.format(updateString, topiaId, association)).append('\n'); +// compt++; +// if (compt % 1000 == 0) { +// // flush it +// getTransaction().executeSQL(builder.toString()); +// builder = new StringBuilder(); +// } +// } +// } +// csvResult.incrementsNumberUpdated(); +// } +// if (builder.length() > 0) { +// getTransaction().executeSQL(builder.toString()); +// } +// } - return result; - } - - static class MyImportToMap extends ImportToMap { - - public static MyImportToMap newImportToMap(ImportModel<Map<String, Object>> model, - Reader reader) { - return new MyImportToMap(model, reader); - } - - protected MyImportToMap(ImportModel<Map<String, Object>> model, - Reader reader) { - super(model, reader); - this.reader.setSafetySwitch(false); - } - - } - - public void importFile(MetaFilenameAware entry, - Reader reader, - CsvImportResult csvResult) throws IOException, TopiaException { - - long s0 = TimeLog.getTime(); - - if (log.isInfoEnabled()) { - log.info("Will import " + entry); - } - - ImportService importService = getService(ImportService.class); - - if (entry instanceof AssociationMeta) { - - // load a association input - AssociationMeta meta = (AssociationMeta) entry; - ImportModel<Map<String, Object>> model = - importService.buildForImport(meta); - ImportToMap importer = MyImportToMap.newImportToMap(model, reader); - - try { - importAssociationfile(meta, importer, csvResult); - } finally { - importer.close(); - } - - } else { - - // normal entity table import - TableMeta meta = (TableMeta) entry; - ImportModel<TopiaEntity> model = importService.buildForImport(meta); - Import<TopiaEntity> importer = Import.newImport(model, reader); - - try { - importEntityFile(meta, importer, csvResult); - } finally { - importer.close(); - } - } - - TIME_LOG.log(s0, "importFile::done"); - - s0 = TimeLog.getTime(); - - flushTransaction(); - - TIME_LOG.log(s0, "importFile::flushTransaction"); - } - - protected void importEntityFile(TableMeta meta, - Import<TopiaEntity> importer, - CsvImportResult csvResult) throws TopiaException { - - TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); - - for (TopiaEntity entity : importer) { - - Map<String, Object> properties = meta.prepareCreate( - entity, entity.getTopiaId()); - TopiaEntity entityToSave = dao.create(properties); - - meta.copy(entity, entityToSave); - - csvResult.incrementsNumberUpdated(); - } - } - - protected String getNormalizedTableName(String table1, String table2) { - String result; - if (table1.compareTo(table2) > 0) { - result = table2 + "_" + table1; - } else { - result = table1 + "_" + table2; - } - return result; - } - - protected void importAssociationfile(AssociationMeta meta, - ImportToMap importer, - CsvImportResult csvResult) throws TopiaException { - - EchoBaseEntityEnum source = meta.getSource(); - EchoBaseEntityEnum target = meta.getTarget(); - - StringBuilder builder = new StringBuilder(); - - String updateString; - String targetTableName = target.getContract().getSimpleName(); - 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) { - // relation *-* - table = getNormalizedTableName(sourceTableName, targetTableName); - updateString = "INSERT INTO " + table + " (" + sourceTableName + "," + targetTableName + ") VALUES('%s','%s');"; - } else { - updateString = "UPDATE " + table + " SET " + sourceTableName + " = '%s' WHERE topiaId ='%s';"; - } - - if (log.isDebugEnabled()) { - log.debug("Will apply " + updateString); - } - int compt = 0; - for (Map<String, Object> row : importer) { - String topiaId = (String) row.get(TopiaEntity.TOPIA_ID); - String[] associations = (String[]) row.get("target"); - for (String association : associations) { - if (StringUtils.isNotEmpty(association)) { - builder.append(String.format(updateString, topiaId, association)).append('\n'); - compt++; - if (compt % 1000 == 0) { - // flush it - getTransaction().executeSQL(builder.toString()); - builder = new StringBuilder(); - } - } - } - csvResult.incrementsNumberUpdated(); - } - if (builder.length() > 0) { - getTransaction().executeSQL(builder.toString()); - } - } - } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,26 +23,26 @@ */ package fr.ifremer.echobase.services; +import com.google.common.base.Charsets; +import com.google.common.io.Files; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.CsvImportResult; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; +import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel; +import org.nuiton.topia.persistence.csv.in.ImportModelFactory; import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportExportModel; import org.nuiton.util.csv.ImportModel; import java.io.BufferedReader; import java.io.File; -import java.io.FileReader; import java.io.IOException; import java.util.Collection; import java.util.Map; @@ -53,16 +53,17 @@ * @author tchemit <chemit@codelutin.com> * @since 0.2 */ -public class ImportService extends EchoBaseServiceSupport { +public class ImportService extends EchoBaseServiceSupport implements ImportModelFactory<EchoBaseEntityEnum> { /** Logger. */ private static final Log log = LogFactory.getLog(ImportService.class); - public <E extends TopiaEntity> EntityCsvModel<E> buildForImport(TableMeta meta) { + @Override + public <E extends TopiaEntity> ImportModel<E> buildForImport(TableMeta<EchoBaseEntityEnum> meta) { DbEditorService service = getService(DbEditorService.class); - EntityCsvModel<E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, TopiaEntity.TOPIA_ID @@ -83,7 +84,8 @@ return model; } - public ImportModel<Map<String, Object>> buildForImport(AssociationMeta meta) { + @Override + public ImportModel<Map<String, Object>> buildForImport(AssociationMeta<EchoBaseEntityEnum> meta) { ImportModel<Map<String, Object>> model = EntityAssociationImportModel.newImportModel( @@ -93,22 +95,35 @@ return model; } - public CsvImportResult importDatas(EchoBaseEntityEnum entityType, - String importFileName, - File importFile, - boolean createIfNotFound, - EchoBaseUser user) throws IOException { + @Override + public boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) { + EchoBaseEntityEnum source = meta.getSource(); + EchoBaseEntityEnum target = meta.getTarget(); + boolean result = false; + if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype || + source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || + source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { + result = true; + } + return result; + } + public CsvImportResult<EchoBaseEntityEnum> importDatas(EchoBaseEntityEnum entityType, + String importFileName, + File importFile, + boolean createIfNotFound, + EchoBaseUser user) throws IOException { + DbEditorService service = getService(DbEditorService.class); - TableMeta meta = service.getTableMeta(entityType); - ImportExportModel<TopiaEntity> csvModel = buildForImport(meta); + TableMeta<EchoBaseEntityEnum> meta = service.getTableMeta(entityType); + ImportModel<TopiaEntity> csvModel = buildForImport(meta); String messagePrefix = "Import du fichier " + importFileName + " le " + newDate(); - CsvImportResult result = CsvImportResult.newResult(entityType, - importFileName, - createIfNotFound); - BufferedReader bf = new BufferedReader(new FileReader(importFile)); + CsvImportResult<EchoBaseEntityEnum> result = CsvImportResult.newResult( + entityType, importFileName, createIfNotFound); + + BufferedReader bf = Files.newReader(importFile, Charsets.UTF_8); try { Import<TopiaEntity> importer = Import.newImport(csvModel, bf); @@ -147,48 +162,4 @@ return result; } - /** - * A model to import associations of entities into csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ - public static class EntityAssociationImportModel extends AbstractImportModel<Map<String, Object>> { - - protected final AssociationMeta meta; - - public static ImportModel<Map<String, Object>> newImportModel(char separator, - AssociationMeta meta - ) { - EntityAssociationImportModel model = new EntityAssociationImportModel( - separator, meta); - - // topiaId <-> topiaId - model.newMandatoryColumn( - TopiaEntity.TOPIA_ID, - EchobaseCsvUtil.<Map<String, Object>, String>newMapProperty(TopiaEntity.TOPIA_ID) - ); - - // add association -> target - model.newMandatoryColumn( - meta.getName(), - EchobaseCsvUtil.ASSOCIATION_VALUE_PARSER, - EchobaseCsvUtil.<Map<String, Object>, String[]>newMapProperty("target") - ); - - return model; - } - - @Override - public Map<String, Object> newEmptyInstance() { - return null; - } - - protected EntityAssociationImportModel(char separator, - AssociationMeta meta) { - super(separator); - this.meta = meta; - } - - } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -26,7 +26,7 @@ import java.io.Serializable; /** - * Cotnract for a progression model while long service actions. + * Contract for a progression model while long service actions. * * @author tchemit <chemit@codelutin.com> * @since 0.3 Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ReplicateEntityVisitor.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ReplicateEntityVisitor.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ReplicateEntityVisitor.java 2012-08-16 16:21:10 UTC (rev 553) @@ -1,257 +0,0 @@ -/* - * #%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; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.EntityExportContext; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -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.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.EntityVisitor; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.TimeLog; -import org.nuiton.util.csv.ExportModel; - -import java.io.File; -import java.util.Collection; -import java.util.Map; -import java.util.Set; - -/** - * entity visitor to export data to csv files. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.3 - */ -public class ReplicateEntityVisitor implements EntityVisitor { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(ReplicateEntityVisitor.class); - - public static final TimeLog TIME_LOG = - new TimeLog(ReplicateEntityVisitor.class); - - public static ReplicateEntityVisitor createVisitor(ExportService service, - MetaFilenameAware[] entityMetas, - Multimap<EchoBaseEntityEnum, MetaFilenameAware> associations, - File container) { - - Preconditions.checkNotNull(service); - Preconditions.checkNotNull(entityMetas); - Preconditions.checkNotNull(associations); - Preconditions.checkNotNull(container); - - Map<Class<?>, EntityExportContext> contexts = Maps.newHashMap(); - - for (MetaFilenameAware entityMeta : entityMetas) { - TableMeta meta = (TableMeta) entityMeta; - EchoBaseEntityEnum source = meta.getSource(); - - Collection<MetaFilenameAware> metaFilenameAwares = associations.get(source); - - ExportModel<TopiaEntity> model = service.buildForExport(meta, false); - - EntityExportContext exportContext = new EntityExportContext( - model, - meta, - container); - - // save both for contract and implementation with same context - contexts.put(source.getContract(), exportContext); - contexts.put(source.getImplementation(), exportContext); - - for (MetaFilenameAware metaFilenameAware : metaFilenameAwares) { - AssociationMeta associationMeta = (AssociationMeta) metaFilenameAware; - - ExportModel<TopiaEntity> associationModel = - service.buildForExport(associationMeta); - exportContext.addAssociationExportContext(associationMeta, - associationModel, - container); - } - } - - ReplicateEntityVisitor result = new ReplicateEntityVisitor(contexts); - return result; - } - - /** Export for simple entity. */ - protected final Map<Class<?>, EntityExportContext> entityExporters; - - protected final Set<String> categoryIds; - - public ReplicateEntityVisitor(Map<Class<?>, EntityExportContext> entityExporters) { - this.entityExporters = entityExporters; - categoryIds = Sets.newHashSet(); - } - - public void export(TopiaEntity entity) { - Preconditions.checkNotNull(entity); - long s1 = TimeLog.getTime(); - try { - entity.accept(this); - } catch (TopiaException e) { - throw new EchoBaseTechnicalException( - "Could not export entity " + entity.getTopiaId(), e); - } finally { - TIME_LOG.log(s1, "export::" + entity.getTopiaId()); - } - } - - @Override - public void start(TopiaEntity entity) { - String topiaId = entity.getTopiaId(); - try { - if (log.isDebugEnabled()) { - log.debug("Starts export of entity " + topiaId); - } - EntityExportContext entityExporter = - entityExporters.get(entity.getClass()); - entityExporter.write(entity); - } catch (Exception e) { - throw new EchoBaseTechnicalException( - "Could not export entity " + entity, e); - } finally { - if (log.isDebugEnabled()) { - log.debug("Ends export of entity " + topiaId); - } - } - } - - @Override - public void end(TopiaEntity entity) { - try { - if (log.isDebugEnabled()) { - log.debug("Starts export of association of entity " + - entity.getTopiaId()); - } - EntityExportContext entityExporter = - entityExporters.get(entity.getClass()); - entityExporter.writeAssociations(entity); - } catch (Exception e) { - throw new EchoBaseTechnicalException( - "Could not export associations of entity " + entity, e); - } finally { - if (log.isDebugEnabled()) { - log.debug("Ends export of association of entity " + - entity.getTopiaId()); - } - } - } - - @Override - public void visit(TopiaEntity entity, String propertyName, - Class<?> type, Object value) { - if (Result.PROPERTY_CATEGORY.equals(propertyName) && - entity instanceof Result) { - - // export category - try { - TopiaEntity topiaEntity = (TopiaEntity) value; - if (categoryIds.add(topiaEntity.getTopiaId())) { - // add this new category - topiaEntity.accept(this); - } - - } catch (TopiaException e) { - if (log.isErrorEnabled()) { - log.error("Can not visit entity " + value, e); - } - } - } - } - - @Override - public void visit(TopiaEntity entity, - String propertyName, - Class<?> collectionType, - Class<?> type, - Object value) { - - if (TopiaEntity.class.isAssignableFrom(type) && - entityExporters.containsKey(type)) { - Collection<?> cValue = (Collection<?>) value; - - if (CollectionUtils.isNotEmpty(cValue)) { - - if (Voyage.PROPERTY_POST_CELL.equals(propertyName) - && entity instanceof Voyage) { - - // special case, when visiting cells from Voyage entity, - // let's not visit cells childs (they will be visited later - // by the DataProcessing himself) - for (Object currentValue : cValue) { - ((Cell) currentValue).acceptWithNoChilds(this); - } - } else { - for (Object currentValue : cValue) { - try { - ((TopiaEntity) currentValue).accept(this); - } catch (TopiaException e) { - if (log.isErrorEnabled()) { - log.error("Can not visit entity " + value, e); - } - } - } - } - } - } - } - - @Override - public void visit(TopiaEntity entity, - String propertyName, - Class<?> collectionType, Class<?> type, - int index, - Object value) { - - // nothing to do - } - - @Override - public void clear() { - - // use at the end of visit (or later) - - categoryIds.clear(); - - for (EntityExportContext exportContext : entityExporters.values()) { - IOUtils.closeQuietly(exportContext); - } - } -} Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2012-08-16 16:21:10 UTC (rev 553) @@ -26,9 +26,9 @@ import com.google.common.collect.Lists; import fr.ifremer.echobase.EchoBaseIOUtil; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import java.io.File; import java.util.List; @@ -51,7 +51,7 @@ protected String importNotes; /** Result stats for each file imported. (mainly kept for testing purpose). */ - protected final List<CsvFileImportResult> importResults = + protected final List<CsvFileImportResult<EchoBaseEntityEnum>> importResults = Lists.newArrayList(); public File getWorkingDirectory() { @@ -70,7 +70,7 @@ this.importNotes = importNotes; } - public List<CsvFileImportResult> getImportResults() { + public List<CsvFileImportResult<EchoBaseEntityEnum>> getImportResults() { return importResults; } @@ -92,7 +92,7 @@ return result; } - public void addResult(CsvFileImportResult fileResult) { + public void addResult(CsvFileImportResult<EchoBaseEntityEnum> fileResult) { Set<EchoBaseEntityEnum> entityTypes = fileResult.getEntityTypes(); if (!entityTypes.isEmpty()) { importResults.add(fileResult); 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,8 +29,7 @@ import com.google.common.collect.Maps; 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.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EntityModificationLog; @@ -58,6 +57,7 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.StringUtil; import org.nuiton.util.TimeLog; import org.nuiton.util.csv.ImportRuntimeException; @@ -119,8 +119,6 @@ // do commit commitTransaction("Could not execute import " + getImportLabel()); return result; - } catch (ImportException e) { - throw e; } catch (EchoBaseTechnicalException e) { throw new ImportException(e.getMessage(), e); } @@ -142,7 +140,7 @@ buffer.append("Import réalisé en "); buffer.append(StringUtil.convertTime(time)); - for (CsvFileImportResult importResult : configuration.getImportResults()) { + for (CsvFileImportResult<EchoBaseEntityEnum> importResult : configuration.getImportResults()) { StringBuilder description = new StringBuilder(); description.append("Depuis Fichier ").append(importResult.getImportFileName()); @@ -291,7 +289,7 @@ SizeCategory sizeCategory, AgeCategory ageCategory, SexCategory sexCategory, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { String key = species == null ? "" : species.getBaracoudaCode(); key += "#" + (ageCategory == null ? "" : ageCategory.getName()); @@ -339,7 +337,7 @@ Species species, SizeCategory sizeCategory, AgeCategory ageCategory, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { // get species categorie first @@ -362,7 +360,7 @@ CategoryDAO categoryDAO, Echotype echotype, SpeciesCategory speciesCategory, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { String key = speciesCategory == null ? "" : speciesCategory.getTopiaId(); key += "#" + (echotype == null ? "" : echotype.getName()); @@ -434,7 +432,7 @@ DataMetadata dataMetaData, String dataValue, DataQuality dataQuality, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { Data data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetaData, @@ -445,12 +443,12 @@ importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); } - protected void addResults(EchobaseCsvUtil.ResultAble row, + protected void addResults(EchoBaseCsvUtil.ResultAble row, Cell cell, Category category, String resultLabel, ResultDAO dao, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { List<Result> results = row.getResult(); for (Result result : results) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -28,9 +28,8 @@ import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Cell; @@ -115,7 +114,7 @@ } private final DateFormat cellDateFormat = new SimpleDateFormat( - EchobaseCsvUtil.CELLULE_DATE_FORMAT); + EchoBaseCsvUtil.CELLULE_DATE_FORMAT); private DataAcquisition getDataAcquisition(Transect transect, AcousticInstrument instrument, @@ -153,8 +152,8 @@ log.info("Starts " + getImportMessage(inputFile)); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, AcousticInstrument> instrumentsById = getEntitiesMap(AcousticInstrument.class, @@ -187,8 +186,8 @@ Locale locale = getLocale(); String dataProcessingId = null; try { - Import<AcousticImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<AcousticImportRow> importer = Import.newImport(csvModel, + reader); DataAcquisition dataAcquisition = null; DataProcessing dataProcessing = null; @@ -431,7 +430,7 @@ AcousticImportRow row, DataQuality dataQuality, DataDAO dao, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { String dataValue; @@ -711,7 +710,7 @@ String metadataName, String dataValue, DataQuality dataQuality, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { createCellData( dao, cell, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -28,8 +28,6 @@ import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Operation; @@ -56,6 +54,7 @@ import fr.ifremer.echobase.services.importdata.csv.TotalSampleImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; @@ -107,7 +106,7 @@ InputFile inputFile; - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; inputFile = configuration.getTotalSampleFile(); if (inputFile.hasFile()) { @@ -147,7 +146,7 @@ } } - private CsvFileImportResult importTotalSampleFile( + private CsvFileImportResult<EchoBaseEntityEnum> importTotalSampleFile( CatchesImportConfiguration configuration, InputFile inputFile, Map<String, Operation> operationMap, @@ -159,8 +158,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); TotalSampleImportModel csvModel = new TotalSampleImportModel(getCsvSeparator(), operationMap, @@ -192,9 +191,9 @@ Locale locale = getLocale(); try { Import<TotalSampleImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); - int rowNumber=0; + int rowNumber = 0; configuration.incrementsProgression(); for (TotalSampleImportRow row : importer) { @@ -311,7 +310,7 @@ } } - private CsvFileImportResult importSubSampleFile( + private CsvFileImportResult<EchoBaseEntityEnum> importSubSampleFile( CatchesImportConfiguration configuration, InputFile inputFile, Map<String, Operation> operationMap, @@ -329,8 +328,8 @@ EchoBaseFunctions.SEX_CATEGORY_NAME); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); SubSampleImportModel csvModel = new SubSampleImportModel( getCsvSeparator(), @@ -360,10 +359,10 @@ Reader reader = getInputFileReader(inputFile); try { Import<SubSampleImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (SubSampleImportRow row : importer) { doFlushTransaction(++rowNumber, inputFile); @@ -440,7 +439,7 @@ } } - private CsvFileImportResult importBiometrySampleFile( + private CsvFileImportResult<EchoBaseEntityEnum> importBiometrySampleFile( CatchesImportConfiguration configuration, InputFile inputFile, Map<String, Operation> operationMap, @@ -456,8 +455,8 @@ SampleDataType.class, EchoBaseFunctions.SAMPLE_DATA_TYPE_NAME); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); BiometrySampleImportModel csvModel = new BiometrySampleImportModel(getCsvSeparator(), @@ -477,11 +476,11 @@ Reader reader = getInputFileReader(inputFile); try { - Import<BiometrySampleImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<BiometrySampleImportRow> importer = Import.newImport( + csvModel, reader); configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (BiometrySampleImportRow row : importer) { doFlushTransaction(++rowNumber, inputFile); @@ -540,7 +539,7 @@ private Sample addSample(SampleDAO dao, Operation operation, Sample sample, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { Preconditions.checkNotNull(operation); Preconditions.checkNotNull(sample); Sample result = create(dao, sample); @@ -554,7 +553,7 @@ String label, float value, Sample sample, - CsvFileImportResult importResult) { + CsvFileImportResult<EchoBaseEntityEnum> importResult) { SampleData sampleData = create( dao, SampleData.PROPERTY_SAMPLE_DATA_TYPE, sampleDataType, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -28,8 +28,6 @@ import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Transect; @@ -52,6 +50,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportModel; import org.nuiton.util.csv.ImportRuntimeException; @@ -93,7 +92,7 @@ case ALL: { - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; importResult = importVoyageFile(configuration); configuration.addResult(importResult); @@ -107,7 +106,7 @@ break; case TRANSECT: { - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; importResult = importTransectFile(vesselMap, configuration); configuration.addResult(importResult); @@ -140,7 +139,7 @@ } } - protected CsvFileImportResult importVoyageFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importVoyageFile( CommonImportConfiguration configuration) throws ImportException { InputFile inputFile = configuration.getVoyageFile(); @@ -156,8 +155,8 @@ getEntityById(AreaOfOperation.class, configuration.getAreaOfOperationId()); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); String voyageDescription = configuration.getVoyageDescription(); String datum = configuration.getDatum(); @@ -170,7 +169,7 @@ Locale locale = getLocale(); Reader reader = getInputFileReader(inputFile); try { - Import<Voyage> importer = EchoBaseImport.newImport(csvModel, reader); + Import<Voyage> importer = Import.newImport(csvModel, reader); configuration.incrementsProgression(); for (Voyage voyage : importer) { @@ -211,7 +210,7 @@ } } - protected CsvFileImportResult importTransitFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importTransitFile( CommonImportConfiguration configuration) throws ImportException { InputFile inputFile = configuration.getTransitFile(); @@ -220,8 +219,8 @@ log.info("Starts import of transits from file " + inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); // get voyage Voyage voyage = getEntityById(Voyage.class, @@ -241,7 +240,7 @@ Reader reader = getInputFileReader(inputFile); try { Import<TransitImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); for (TransitImportRow row : importer) { @@ -265,7 +264,7 @@ } } - private CsvFileImportResult importTransectFile( + private CsvFileImportResult<EchoBaseEntityEnum> importTransectFile( Map<String, Vessel> vesselMap, CommonImportConfiguration configuration) throws ImportException { @@ -276,8 +275,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); // get voyage Voyage voyage = getEntityById(Voyage.class, @@ -303,7 +302,7 @@ Reader reader = getInputFileReader(inputFile); try { Import<TransectImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); for (TransectImportRow row : importer) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -26,8 +26,6 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.GearMetadataValue; @@ -53,6 +51,7 @@ import fr.ifremer.echobase.services.importdata.csv.OperationMetadataValueImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; @@ -97,7 +96,7 @@ Map<String, Gear> gearMap = getEntitiesMap( Gear.class, EchoBaseFunctions.GEAR_CASINO_GEAR_NAME); - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; importResult = importOperationFile( configuration, @@ -127,7 +126,7 @@ configuration.addResult(importResult); } - protected CsvFileImportResult importOperationFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importOperationFile( OperationImportConfiguration configuration, Voyage voyage, Map<String, Vessel> vesselMap, @@ -141,8 +140,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, DepthStratum> depthStratumMap = getEntitiesMap( DepthStratum.class, EchoBaseFunctions.DEPTH_STRATUM_ID); @@ -158,10 +157,10 @@ Reader reader = getInputFileReader(inputFile); try { Import<OperationImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (OperationImportRow row : importer) { configuration.incrementsProgression(); @@ -192,7 +191,7 @@ } } - protected CsvFileImportResult importOperationMetadataFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importOperationMetadataFile( OperationImportConfiguration configuration, Map<String, Vessel> vesselMap, Map<String, Operation> operationMap) throws ImportException { @@ -204,8 +203,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, OperationMetadata> operationMetadatasByName = getEntitiesMap(OperationMetadata.class, @@ -224,9 +223,9 @@ Reader reader = getInputFileReader(inputFile); try { Import<OperationMetadataValueImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); - int rowNumber=0; + int rowNumber = 0; configuration.incrementsProgression(); for (OperationMetadataValueImportRow row : importer) { @@ -250,7 +249,7 @@ } } - protected CsvFileImportResult importGearMetadataFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importGearMetadataFile( OperationImportConfiguration configuration, Map<String, Vessel> vesselMap, Map<String, Gear> gearMap, @@ -263,8 +262,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, GearMetadata> gearMetadatasByType = getEntitiesMap(GearMetadata.class, @@ -283,9 +282,9 @@ Reader reader = getInputFileReader(inputFile); try { Import<GearMetadataValueImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); - int rowNumber=0; + int rowNumber = 0; configuration.incrementsProgression(); for (GearMetadataValueImportRow row : importer) { 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -26,8 +26,6 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Category; @@ -58,8 +56,10 @@ 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.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; +import org.nuiton.util.csv.ext.CsvReaders; import java.io.Reader; import java.util.Arrays; @@ -130,7 +130,7 @@ voyage.getEchotype(), EchoBaseFunctions.ECHOTYPE_NAME); InputFile inputFile; - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; inputFile = configuration.getEsduByEchotypeFile(); if (inputFile.hasFile()) { @@ -195,7 +195,7 @@ } } - private CsvFileImportResult importByEchotypeFile( + private CsvFileImportResult<EchoBaseEntityEnum> importByEchotypeFile( ResultsImportConfiguration configuration, InputFile inputFile, Voyage voyage, @@ -211,11 +211,11 @@ } // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); List<DataMetadata> metas = getMetas( EsduResultByEchotypeImportModel.COLUMN_NAMES_TO_EXCLUDE, @@ -239,7 +239,7 @@ Reader reader = getInputFileReader(inputFile); try { Import<EsduResultByEchotypeImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); int rowNumber = 0; @@ -266,7 +266,7 @@ } } - private CsvFileImportResult importByEchotypeAndSpeciesCategoryFile( + private CsvFileImportResult<EchoBaseEntityEnum> importByEchotypeAndSpeciesCategoryFile( ResultsImportConfiguration configuration, InputFile inputFile, Voyage voyage, @@ -285,11 +285,11 @@ } // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); List<DataMetadata> metas = getMetas( @@ -319,8 +319,8 @@ Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<EsduResultByEchotypeAndSpeciesCategoryImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<EsduResultByEchotypeAndSpeciesCategoryImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); int rowNumber = 0; @@ -350,7 +350,7 @@ } } - private CsvFileImportResult importBySpeciesAndSizeCategoryFile( + private CsvFileImportResult<EchoBaseEntityEnum> importBySpeciesAndSizeCategoryFile( ResultsImportConfiguration configuration, InputFile inputFile, Voyage voyage, Map<String, Voyage> voyageMap, @@ -366,12 +366,12 @@ } // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); List<DataMetadata> metas = getMetas( @@ -402,8 +402,8 @@ Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<EsduResultBySpeciesAndSizeCategoryImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<EsduResultBySpeciesAndSizeCategoryImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); int rowNumber = 0; @@ -454,7 +454,7 @@ } } - private CsvFileImportResult importBySpeciesAndAgeCategoryFile( + private CsvFileImportResult<EchoBaseEntityEnum> importBySpeciesAndAgeCategoryFile( ResultsImportConfiguration configuration, InputFile inputFile, Voyage voyage, @@ -471,12 +471,12 @@ } // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); List<DataMetadata> metas = getMetas( @@ -505,8 +505,8 @@ Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<EsduResultBySpeciesAndAgeCategoryImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<EsduResultBySpeciesAndAgeCategoryImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); int rowNumber = 0; 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,8 +27,7 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Category; @@ -53,7 +52,9 @@ import fr.ifremer.echobase.services.importdata.csv.MapCellImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; +import org.nuiton.util.csv.ext.CsvReaders; import java.io.Reader; import java.util.Arrays; @@ -88,12 +89,12 @@ Voyage voyage = getEntityById(Voyage.class, configuration.getVoyageId()); - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; importResult = importMapFile(configuration, voyage); configuration.addResult(importResult); } - protected CsvFileImportResult importMapFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importMapFile( ResultsImportConfiguration configuration, Voyage voyage) throws ImportException { @@ -156,8 +157,8 @@ DataQuality.class, EchoBaseFunctions.DATA_QUALITY_NAME); // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); List<DataMetadata> metas = getMetas( MapCellImportModel.COLUMN_NAMES_TO_EXCLUDE, @@ -174,8 +175,8 @@ metas, dataQualityMap); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); CellDAO dao = getDAO(Cell.class, CellDAO.class); DataDAO dataDao = getDAO(Data.class, DataDAO.class); @@ -186,8 +187,8 @@ Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<MapCellImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<MapCellImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,8 +27,6 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Category; @@ -57,7 +55,10 @@ import fr.ifremer.echobase.services.importdata.csv.RegionCellResultImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; +import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; +import org.nuiton.util.csv.ext.CsvReaders; import java.io.Reader; import java.util.Arrays; @@ -95,7 +96,7 @@ Map<String, DataQuality> dataQualityMap = getEntitiesMap( DataQuality.class, EchoBaseFunctions.DATA_QUALITY_NAME); - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; importResult = importRegionFile(configuration, voyage, dataQualityMap); configuration.addResult(importResult); @@ -107,7 +108,7 @@ configuration.addResult(importResult); } - protected CsvFileImportResult importRegionFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importRegionFile( ResultsImportConfiguration configuration, Voyage voyage, Map<String, DataQuality> dataQualityMap) throws ImportException { @@ -152,16 +153,16 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); CellDAO dao = getDAO(Cell.class, CellDAO.class); DataDAO dataDao = getDAO(Data.class, DataDAO.class); Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<RegionCellImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<RegionCellImportRow> importer = + Import.newImport(csvModel, reader); Cell cell = null; @@ -210,7 +211,7 @@ } } - protected CsvFileImportResult importRegionAssociationFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importRegionAssociationFile( ResultsImportConfiguration configuration, Voyage voyage) throws ImportException { @@ -235,16 +236,16 @@ regionsMap, getDAO(Cell.class, CellDAO.class)); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<RegionCellAssociationImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<RegionCellAssociationImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (RegionCellAssociationImportRow row : importer) { rowNumber++; @@ -265,7 +266,7 @@ } } - protected CsvFileImportResult importRegionResultFile( + protected CsvFileImportResult<EchoBaseEntityEnum> importRegionResultFile( ResultsImportConfiguration configuration, Voyage voyage, Map<String, DataQuality> dataQualityMap) throws ImportException { @@ -300,8 +301,8 @@ DataMetadata.class, EchoBaseFunctions.DATA_METADATA_NAME); // first get header of file to detect which results to import - String[] header = EchoBaseImport.getHeader(inputFile.getFile(), - getCsvSeparator()); + String[] header = CsvReaders.getHeader(inputFile.getFile(), + getCsvSeparator()); List<DataMetadata> metas = getMetas( @@ -321,8 +322,8 @@ String resultLabel = configuration.getResultLabel(); - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); @@ -331,11 +332,11 @@ Reader reader = getInputFileReader(inputFile); try { - EchoBaseImport<RegionCellResultImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<RegionCellResultImportRow> importer = + Import.newImport(csvModel, reader); configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (RegionCellResultImportRow row : importer) { rowNumber++; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,8 +29,6 @@ import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Echotype; @@ -54,6 +52,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; @@ -102,7 +101,7 @@ InputFile inputFile; - CsvFileImportResult importResult; + CsvFileImportResult<EchoBaseEntityEnum> importResult; inputFile = configuration.getLengthAgeKeyFile(); if (inputFile.hasFile()) { @@ -143,7 +142,7 @@ } } - protected CsvFileImportResult importLenghtWeightKey( + protected CsvFileImportResult<EchoBaseEntityEnum> importLenghtWeightKey( ResultsImportConfiguration configuration, InputFile inputFile, Map<String, Voyage> voyageMap, @@ -155,8 +154,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, SizeCategory> sizeCategoryMap = getEntitiesMap( SizeCategory.class, @@ -179,7 +178,7 @@ try { Import<LengthWeightKeyImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); int rowNumber = 0; @@ -221,7 +220,7 @@ } } - protected CsvFileImportResult importLenthAgeKey( + protected CsvFileImportResult<EchoBaseEntityEnum> importLenthAgeKey( ResultsImportConfiguration configuration, InputFile inputFile, Map<String, Voyage> voyageMap, @@ -233,8 +232,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); LengthAgeKeyImportModel csvModel = new LengthAgeKeyImportModel( serviceContext.getConfiguration().getCsvSeparator(), @@ -247,7 +246,7 @@ Reader reader = getInputFileReader(inputFile); try { Import<LengthAgeKeyImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); @@ -275,7 +274,7 @@ } } - private CsvFileImportResult importEchotypeFile( + private CsvFileImportResult<EchoBaseEntityEnum> importEchotypeFile( ResultsImportConfiguration configuration, InputFile inputFile, Map<String, Voyage> voyageMap, @@ -286,8 +285,8 @@ inputFile.getFileName()); } - CsvFileImportResult importResult = new CsvFileImportResult( - inputFile.getFileName()); + CsvFileImportResult<EchoBaseEntityEnum> importResult = CsvFileImportResult.newResult( + inputFile.getFileName(), EchoBaseEntityEnum.values()); Map<String, DepthStratum> depthStratumMap = getEntitiesMap( DepthStratum.class, @@ -304,7 +303,7 @@ Reader reader = getInputFileReader(inputFile); try { Import<EchotypeImportRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import.newImport(csvModel, reader); configuration.incrementsProgression(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.DataAcquisition; @@ -60,15 +60,15 @@ newIgnoredColumn("MOVIES_EILayer\\sndset\\startSample");//J newIgnoredColumn("MOVIES_EILayer\\sndset\\mainBeamAlongSteeringAngle");//K newIgnoredColumn("MOVIES_EILayer\\sndset\\mainBeamAthwartSteeringAngle");//L - newMandatoryColumn("MOVIES_EILayer\\sndset\\absorptionCoef", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_ABSORPTION, EchobaseCsvUtil.FLOAT);//M - newMandatoryColumn("MOVIES_EILayer\\sndset\\transmissionPower", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_POWER, EchobaseCsvUtil.INTEGER);//N - newMandatoryColumn("MOVIES_EILayer\\sndset\\beamAlongAngleSensitivity", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_BEAM_ANGLE_ALONGSHIP, EchobaseCsvUtil.FLOAT);//O - newMandatoryColumn("MOVIES_EILayer\\sndset\\beamAthwartAngleSensitivity", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_BEAM_ANGLE_ATHWARTSHIP, EchobaseCsvUtil.FLOAT);//P + newMandatoryColumn("MOVIES_EILayer\\sndset\\absorptionCoef", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_ABSORPTION, EchoBaseCsvUtil.FLOAT);//M + newMandatoryColumn("MOVIES_EILayer\\sndset\\transmissionPower", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_POWER, EchoBaseCsvUtil.INTEGER);//N + newMandatoryColumn("MOVIES_EILayer\\sndset\\beamAlongAngleSensitivity", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_BEAM_ANGLE_ALONGSHIP, EchoBaseCsvUtil.FLOAT);//O + newMandatoryColumn("MOVIES_EILayer\\sndset\\beamAthwartAngleSensitivity", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_BEAM_ANGLE_ATHWARTSHIP, EchoBaseCsvUtil.FLOAT);//P newIgnoredColumn("MOVIES_EILayer\\sndset\\beam3dBWidthAlong");//Q newIgnoredColumn("MOVIES_EILayer\\sndset\\beam3dBWidthAthwart");//R - newMandatoryColumn("MOVIES_EILayer\\sndset\\beamEquTwoWayAngle", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_PSI, EchobaseCsvUtil.FLOAT);//S - newMandatoryColumn("MOVIES_EILayer\\sndset\\beamGain", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_GAIN, EchobaseCsvUtil.FLOAT);//T - newMandatoryColumn("MOVIES_EILayer\\sndset\\beamSACorrection", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_SACORRECTION, EchobaseCsvUtil.FLOAT);//U + newMandatoryColumn("MOVIES_EILayer\\sndset\\beamEquTwoWayAngle", AcousticImportRow.PROPERTY_TRANSDUCER_ACQUISITION_PSI, EchoBaseCsvUtil.FLOAT);//S + newMandatoryColumn("MOVIES_EILayer\\sndset\\beamGain", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_GAIN, EchoBaseCsvUtil.FLOAT);//T + newMandatoryColumn("MOVIES_EILayer\\sndset\\beamSACorrection", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_SACORRECTION, EchoBaseCsvUtil.FLOAT);//U newIgnoredColumn("MOVIES_EILayer\\sndset\\bottomDetectionMinDepth");//V newIgnoredColumn("MOVIES_EILayer\\sndset\\bottomDetectionMaxDepth");//W newIgnoredColumn("MOVIES_EILayer\\sndset\\bottomDetectionMinLevel");//X @@ -79,7 +79,7 @@ newIgnoredColumn("MOVIES_EILayer\\sndset\\bandWidth");//AC newIgnoredColumn("MOVIES_EILayer\\sndset\\tvgminrange");//AD newIgnoredColumn("MOVIES_EILayer\\sndset\\tvgmaxrange");//AE - newMandatoryColumn("MOVIES_EILayer\\sndset\\pulseduration", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_PULSE_LENGTH, EchobaseCsvUtil.FLOAT);//AF + newMandatoryColumn("MOVIES_EILayer\\sndset\\pulseduration", AcousticImportRow.PROPERTY_TRANSCEIVER_ACQUISITION_PULSE_LENGTH, EchoBaseCsvUtil.FLOAT);//AF newIgnoredColumn("MOVIES_EILayer\\shipnav");//AG newIgnoredColumn("MOVIES_EILayer\\shipnav\\lat");//AH newIgnoredColumn("MOVIES_EILayer\\shipnav\\long");//AI @@ -99,28 +99,28 @@ // Cell elementary Datas newIgnoredColumn("MOVIES_EILayer\\cellset");//AW - newMandatoryColumn("MOVIES_EILayer\\cellset\\cellnum", AcousticImportRow.PROPERTY_CELL_NUM, EchobaseCsvUtil.PRIMITIVE_INTEGER);//AX - newMandatoryColumn("MOVIES_EILayer\\cellset\\celltype", AcousticImportRow.PROPERTY_CELL_TYPE, EchobaseCsvUtil.PRIMITIVE_INTEGER);//AY - newMandatoryColumn("MOVIES_EILayer\\cellset\\depthstart", AcousticImportRow.PROPERTY_CELL_DEPTH_START, EchobaseCsvUtil.PRIMITIVE_FLOAT);//AZ - newMandatoryColumn("MOVIES_EILayer\\cellset\\depthend", AcousticImportRow.PROPERTY_CELL_DEPTH_END, EchobaseCsvUtil.PRIMITIVE_FLOAT);//BA + newMandatoryColumn("MOVIES_EILayer\\cellset\\cellnum", AcousticImportRow.PROPERTY_CELL_NUM, EchoBaseCsvUtil.PRIMITIVE_INTEGER);//AX + newMandatoryColumn("MOVIES_EILayer\\cellset\\celltype", AcousticImportRow.PROPERTY_CELL_TYPE, EchoBaseCsvUtil.PRIMITIVE_INTEGER);//AY + newMandatoryColumn("MOVIES_EILayer\\cellset\\depthstart", AcousticImportRow.PROPERTY_CELL_DEPTH_START, EchoBaseCsvUtil.PRIMITIVE_FLOAT);//AZ + newMandatoryColumn("MOVIES_EILayer\\cellset\\depthend", AcousticImportRow.PROPERTY_CELL_DEPTH_END, EchoBaseCsvUtil.PRIMITIVE_FLOAT);//BA newIgnoredColumn("MOVIES_EILayer\\cellset\\indexstart");//BB newIgnoredColumn("MOVIES_EILayer\\cellset\\indexend");//BC - newMandatoryColumn("MOVIES_EILayer\\cellset\\datestart", AcousticImportRow.PROPERTY_CELL_DATE_START, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE);//BD - newMandatoryColumn("MOVIES_EILayer\\cellset\\dateend", AcousticImportRow.PROPERTY_CELL_DATE_END, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE);//BE + newMandatoryColumn("MOVIES_EILayer\\cellset\\datestart", AcousticImportRow.PROPERTY_CELL_DATE_START, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE);//BD + newMandatoryColumn("MOVIES_EILayer\\cellset\\dateend", AcousticImportRow.PROPERTY_CELL_DATE_END, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE);//BE - newMandatoryColumn("MOVIES_EILayer\\cellset\\lat", AcousticImportRow.PROPERTY_CELL_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT);//BF - newMandatoryColumn("MOVIES_EILayer\\cellset\\long", AcousticImportRow.PROPERTY_CELL_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT);//BG - newMandatoryColumn("MOVIES_EILayer\\cellset\\volume", AcousticImportRow.PROPERTY_CELL_VOLUME, EchobaseCsvUtil.NA_TO_INTEGER_PARSER);//BH - newMandatoryColumn("MOVIES_EILayer\\cellset\\area", AcousticImportRow.PROPERTY_CELL_SURFACE, EchobaseCsvUtil.PRIMITIVE_INTEGER);//BI + newMandatoryColumn("MOVIES_EILayer\\cellset\\lat", AcousticImportRow.PROPERTY_CELL_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT);//BF + newMandatoryColumn("MOVIES_EILayer\\cellset\\long", AcousticImportRow.PROPERTY_CELL_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT);//BG + newMandatoryColumn("MOVIES_EILayer\\cellset\\volume", AcousticImportRow.PROPERTY_CELL_VOLUME, EchoBaseCsvUtil.NA_TO_INTEGER_PARSER);//BH + newMandatoryColumn("MOVIES_EILayer\\cellset\\area", AcousticImportRow.PROPERTY_CELL_SURFACE, EchoBaseCsvUtil.PRIMITIVE_INTEGER);//BI newIgnoredColumn("MOVIES_EILayer\\cellset\\diststart");//BJ newIgnoredColumn("MOVIES_EILayer\\cellset\\distend");//BK - newMandatoryColumn("MOVIES_EILayer\\cellset\\thresholdup", AcousticImportRow.PROPERTY_E_ITHRESHOLD_HIGH, EchobaseCsvUtil.PRIMITIVE_INTEGER);//BL - newMandatoryColumn("MOVIES_EILayer\\cellset\\thresholdlow", AcousticImportRow.PROPERTY_E_ITHRESHOLD_LOW, EchobaseCsvUtil.PRIMITIVE_INTEGER);//BM + newMandatoryColumn("MOVIES_EILayer\\cellset\\thresholdup", AcousticImportRow.PROPERTY_E_ITHRESHOLD_HIGH, EchoBaseCsvUtil.PRIMITIVE_INTEGER);//BL + newMandatoryColumn("MOVIES_EILayer\\cellset\\thresholdlow", AcousticImportRow.PROPERTY_E_ITHRESHOLD_LOW, EchoBaseCsvUtil.PRIMITIVE_INTEGER);//BM newIgnoredColumn("MOVIES_EILayer\\eilayer");//BN - newMandatoryColumn("MOVIES_EILayer\\eilayer\\sa", AcousticImportRow.PROPERTY_CELL_NASC, EchobaseCsvUtil.NA_TO_FLOAT_PARSER);//BO + newMandatoryColumn("MOVIES_EILayer\\eilayer\\sa", AcousticImportRow.PROPERTY_CELL_NASC, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER);//BO newIgnoredColumn("MOVIES_EILayer\\eilayer\\sv");//BP - newMandatoryColumn("MOVIES_EILayer\\eilayer\\ni", AcousticImportRow.PROPERTY_CELL_NUMBER_OF_SAMPLES_ECHO_INTEGRATED, EchobaseCsvUtil.NA_TO_INTEGER_PARSER);//BQ - newMandatoryColumn("MOVIES_EILayer\\eilayer\\nt", AcousticImportRow.PROPERTY_CELL_NUMBER_OF_SAMPLES_RECORDED, EchobaseCsvUtil.NA_TO_INTEGER_PARSER);//BR + newMandatoryColumn("MOVIES_EILayer\\eilayer\\ni", AcousticImportRow.PROPERTY_CELL_NUMBER_OF_SAMPLES_ECHO_INTEGRATED, EchoBaseCsvUtil.NA_TO_INTEGER_PARSER);//BQ + newMandatoryColumn("MOVIES_EILayer\\eilayer\\nt", AcousticImportRow.PROPERTY_CELL_NUMBER_OF_SAMPLES_RECORDED, EchoBaseCsvUtil.NA_TO_INTEGER_PARSER);//BR newIgnoredColumn("MOVIES_EILayer\\boterr");//BR newIgnoredColumn("MOVIES_EILayer\\boterr\\sa");//BT newIgnoredColumn("MOVIES_EILayer\\boterr\\ni");//BU Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; @@ -46,14 +46,14 @@ Map<String, SampleDataType> sampleDataTypeMap) { super(separator); - newForeignKeyColumn(OPERATION_ID, BiometrySampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); + newForeignKeyColumn(EchoBaseCsvUtil.OPERATION_ID, BiometrySampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, BiometrySampleImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); - newMandatoryColumn(BiometrySampleImportRow.PROPERTY_NUM_FISH, EchobaseCsvUtil.PRIMITIVE_INTEGER); + newMandatoryColumn(BiometrySampleImportRow.PROPERTY_NUM_FISH, EchoBaseCsvUtil.PRIMITIVE_INTEGER); newForeignKeyColumn("name", SampleData.PROPERTY_SAMPLE_DATA_TYPE, SampleDataType.class, SampleDataType.PROPERTY_NAME, sampleDataTypeMap); newMandatoryColumn(SampleData.PROPERTY_DATA_LABEL); - newMandatoryColumn(SampleData.PROPERTY_DATA_VALUE, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); + newMandatoryColumn(SampleData.PROPERTY_DATA_VALUE, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DepthStratum; @@ -48,7 +49,7 @@ newMandatoryColumn("echotypeName", Echotype.PROPERTY_NAME); newMandatoryColumn("meaning", Echotype.PROPERTY_MEANING); newForeignKeyColumn(EchotypeImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); - newForeignKeyColumn(DEPTH_STRATUM_ID, Echotype.PROPERTY_DEPTH_STRATUM, DepthStratum.class, DepthStratum.PROPERTY_ID, depthStratumMap); + newForeignKeyColumn(EchoBaseCsvUtil.DEPTH_STRATUM_ID, Echotype.PROPERTY_DEPTH_STRATUM, DepthStratum.class, DepthStratum.PROPERTY_ID, depthStratumMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, Echotype.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); } 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -46,7 +46,7 @@ public class EsduResultByEchotypeAndSpeciesCategoryImportModel extends AbstractImportModel<EsduResultByEchotypeAndSpeciesCategoryImportRow> { public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - CELL_NAME, + EchoBaseCsvUtil.CELL_NAME, Species.PROPERTY_BARACOUDA_CODE, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, @@ -70,15 +70,15 @@ newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, echotypeMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); - newMandatoryColumn(CELL_NAME, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); + newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_CELL, EchoBaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newForeignKeyColumn(EsduResultByEchotypeAndSpeciesCategoryImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, dataQualityMap); for (DataMetadata metadata : dataMetadatas) { String name = metadata.getName(); newMandatoryColumn( name, - EchobaseCsvUtil.newResultValueParser(metadata, false), - EchobaseCsvUtil.<EsduResultByEchotypeAndSpeciesCategoryImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<EsduResultByEchotypeAndSpeciesCategoryImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -42,7 +42,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements EchobaseCsvUtil.ResultAble { +public class EsduResultByEchotypeAndSpeciesCategoryImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_VOYAGE = "voyage"; 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -44,7 +44,7 @@ public class EsduResultByEchotypeImportModel extends AbstractImportModel<EsduResultByEchotypeImportRow> { public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - CELL_NAME, + EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeImportRow.PROPERTY_ECHOTYPE, EsduResultByEchotypeImportRow.PROPERTY_DATA_QUALITY, EsduResultByEchotypeImportRow.PROPERTY_VOYAGE @@ -62,15 +62,15 @@ newForeignKeyColumn(RegionCellImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newForeignKeyColumn(EsduResultByEchotypeImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, echotypeMap); - newMandatoryColumn(CELL_NAME, EsduResultByEchotypeImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); + newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultByEchotypeImportRow.PROPERTY_CELL, EchoBaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newForeignKeyColumn(EsduResultByEchotypeImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, dataQualityMap); for (DataMetadata metadata : dataMetadatas) { String name = metadata.getName(); newMandatoryColumn( name, - EchobaseCsvUtil.newResultValueParser(metadata, false), - EchobaseCsvUtil.<EsduResultByEchotypeImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<EsduResultByEchotypeImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -39,7 +39,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EsduResultByEchotypeImportRow implements EchobaseCsvUtil.ResultAble { +public class EsduResultByEchotypeImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_VOYAGE = "voyage"; 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; @@ -44,7 +44,7 @@ public class EsduResultBySpeciesAndAgeCategoryImportModel extends AbstractImportModel<EsduResultBySpeciesAndAgeCategoryImportRow> { public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - CELL_NAME, + EchoBaseCsvUtil.CELL_NAME, Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING, @@ -63,7 +63,7 @@ super(separator); newForeignKeyColumn(RegionCellImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); - newMandatoryColumn(CELL_NAME, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); + newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_CELL, EchoBaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY); newMandatoryColumn(EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_AGE_CATEGORY_MEANING); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndAgeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); @@ -73,8 +73,8 @@ String name = metadata.getName(); newMandatoryColumn( name, - EchobaseCsvUtil.newResultValueParser(metadata, false), - EchobaseCsvUtil.<EsduResultBySpeciesAndAgeCategoryImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<EsduResultBySpeciesAndAgeCategoryImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; @@ -40,7 +40,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EsduResultBySpeciesAndAgeCategoryImportRow implements EchobaseCsvUtil.ResultAble { +public class EsduResultBySpeciesAndAgeCategoryImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_VOYAGE = "voyage"; 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; @@ -44,7 +44,7 @@ public class EsduResultBySpeciesAndSizeCategoryImportModel extends AbstractImportModel<EsduResultBySpeciesAndSizeCategoryImportRow> { public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - CELL_NAME, + EchoBaseCsvUtil.CELL_NAME, Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING, @@ -63,7 +63,7 @@ super(separator); newForeignKeyColumn(RegionCellImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); - newMandatoryColumn(CELL_NAME, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, EchobaseCsvUtil.newCellValueParser(voyage, esduCellMap)); + newMandatoryColumn(EchoBaseCsvUtil.CELL_NAME, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_CELL, EchoBaseCsvUtil.newCellValueParser(voyage, esduCellMap)); newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY); newMandatoryColumn(EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SIZE_CATEGORY_MEANING); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, EsduResultBySpeciesAndSizeCategoryImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); @@ -73,8 +73,8 @@ String name = metadata.getName(); newMandatoryColumn( name, - EchobaseCsvUtil.newResultValueParser(metadata, false), - EchobaseCsvUtil.<EsduResultBySpeciesAndSizeCategoryImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<EsduResultBySpeciesAndSizeCategoryImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; @@ -40,7 +40,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EsduResultBySpeciesAndSizeCategoryImportRow implements EchobaseCsvUtil.ResultAble { +public class EsduResultBySpeciesAndSizeCategoryImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_VOYAGE = "voyage"; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.GearMetadataValue; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.references.Gear; @@ -48,11 +49,11 @@ Map<String, Operation> operationMap) { super(separator); - newForeignKeyColumn(VESSEL_NAME, GearMetadataValueImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); - newForeignKeyColumn(OPERATION_ID, GearMetadataValueImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); + newForeignKeyColumn(EchoBaseCsvUtil.VESSEL_NAME, GearMetadataValueImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); + newForeignKeyColumn(EchoBaseCsvUtil.OPERATION_ID, GearMetadataValueImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); newForeignKeyColumn("metadataType", GearMetadataValue.PROPERTY_GEAR_METADATA, GearMetadata.class, GearMetadata.PROPERTY_NAME, gearMetadataMap); - newForeignKeyColumn(GEAR_CODE, GearMetadataValue.PROPERTY_GEAR, Gear.class, Gear.PROPERTY_CASINO_GEAR_NAME, gearMap); + newForeignKeyColumn(EchoBaseCsvUtil.GEAR_CODE, GearMetadataValue.PROPERTY_GEAR, Gear.class, Gear.PROPERTY_CASINO_GEAR_NAME, gearMap); newMandatoryColumn("gearMetadataValue", GearMetadataValue.PROPERTY_DATA_VALUE); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.LengthAgeKey; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Species; @@ -48,9 +48,9 @@ newForeignKeyColumn(LengthAgeKeyImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); - newMandatoryColumn(LengthAgeKey.PROPERTY_AGE, EchobaseCsvUtil.PRIMITIVE_INTEGER); - newMandatoryColumn(LengthAgeKey.PROPERTY_PERCENT_AT_AGE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(LengthAgeKey.PROPERTY_LENGTH, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthAgeKey.PROPERTY_AGE, EchoBaseCsvUtil.PRIMITIVE_INTEGER); + newMandatoryColumn(LengthAgeKey.PROPERTY_PERCENT_AT_AGE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthAgeKey.PROPERTY_LENGTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); newMandatoryColumn(LengthAgeKey.PROPERTY_METADATA); newForeignKeyColumn(LengthAgeKey.PROPERTY_STRATA, Strata.class, Strata.PROPERTY_NAME, strataMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, LengthAgeKey.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.LengthWeightKey; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.SizeCategory; @@ -47,8 +47,8 @@ Map<String, SizeCategory> sizeCategoryMap, Map<String, Species> speciesMap) { super(separator); - newMandatoryColumn("aParameter", LengthWeightKey.PROPERTY_APARAMETER, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn("bParameter", LengthWeightKey.PROPERTY_BPARAMETER, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn("aParameter", LengthWeightKey.PROPERTY_APARAMETER, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn("bParameter", LengthWeightKey.PROPERTY_BPARAMETER, EchoBaseCsvUtil.PRIMITIVE_FLOAT); newForeignKeyColumn(LengthWeightKeyImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newForeignKeyColumn(LengthWeightKeyImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AgeCategory; import fr.ifremer.echobase.entities.references.CellType; @@ -79,18 +79,18 @@ newForeignKeyColumn(MapCellImportRow.PROPERTY_AGE_CATEGORY, AgeCategory.class, AgeCategory.PROPERTY_NAME, ageCategoryMap); newForeignKeyColumn(MapCellImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, dataQualityMap); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_DEPTH, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_LONGITUDE_LAG, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_LATITUDE_LAG, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_DEPTH_LAG, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_CELL_DEPTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_LONGITUDE_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_LATITUDE_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(MapCellImportRow.PROPERTY_DATA_GRID_DEPTH_LAG, EchoBaseCsvUtil.PRIMITIVE_FLOAT); for (DataMetadata metadata : dataMetadatas) { newMandatoryColumn( metadata.getName(), - EchobaseCsvUtil.newResultValueParser(metadata, false), - EchobaseCsvUtil.<MapCellImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, false), + EchoBaseCsvUtil.<MapCellImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.CellImpl; import fr.ifremer.echobase.entities.data.Result; @@ -43,7 +43,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class MapCellImportRow implements EchobaseCsvUtil.ResultAble { +public class MapCellImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_NAME = "name"; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Gear; @@ -46,19 +46,19 @@ Map<String, DepthStratum> depthStratumMap) { super(separator); - newForeignKeyColumn(VESSEL_NAME, OperationImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); + newForeignKeyColumn(EchoBaseCsvUtil.VESSEL_NAME, OperationImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); - newForeignKeyColumn(GEAR_CODE, Operation.PROPERTY_GEAR, Gear.class, Gear.PROPERTY_CASINO_GEAR_NAME, gearMap); - newForeignKeyColumn(DEPTH_STRATUM_ID, Operation.PROPERTY_DEPTH_STRATUM, DepthStratum.class, DepthStratum.PROPERTY_ID, depthStratumMap); - newMandatoryColumn(OPERATION_ID, Operation.PROPERTY_ID); - newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_TIME, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_TIME, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newForeignKeyColumn(EchoBaseCsvUtil.GEAR_CODE, Operation.PROPERTY_GEAR, Gear.class, Gear.PROPERTY_CASINO_GEAR_NAME, gearMap); + newForeignKeyColumn(EchoBaseCsvUtil.DEPTH_STRATUM_ID, Operation.PROPERTY_DEPTH_STRATUM, DepthStratum.class, DepthStratum.PROPERTY_ID, depthStratumMap); + newMandatoryColumn(EchoBaseCsvUtil.OPERATION_ID, Operation.PROPERTY_ID); + newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_TIME, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_TIME, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.OperationMetadataValue; import fr.ifremer.echobase.entities.references.OperationMetadata; @@ -45,8 +46,8 @@ Map<String, Operation> operationMap) { super(separator); - newForeignKeyColumn(VESSEL_NAME, OperationMetadataValueImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); - newForeignKeyColumn(OPERATION_ID, OperationMetadataValueImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); + newForeignKeyColumn(EchoBaseCsvUtil.VESSEL_NAME, OperationMetadataValueImportRow.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); + newForeignKeyColumn(EchoBaseCsvUtil.OPERATION_ID, OperationMetadataValueImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); newForeignKeyColumn("metadataType", OperationMetadataValue.PROPERTY_OPERATION_METADATA, OperationMetadata.class, OperationMetadata.PROPERTY_NAME, operationMetadataMap); newMandatoryColumn("operationMetadataValue", OperationMetadataValue.PROPERTY_DATA_VALUE); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.CellDAO; import fr.ifremer.echobase.entities.data.Voyage; @@ -47,7 +47,7 @@ super(separator); newForeignKeyColumn(RegionCellAssociationImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newForeignKeyColumn("regionName", RegionCellAssociationImportRow.PROPERTY_REGION_CELL, Cell.class, Cell.PROPERTY_NAME, regionCellMap); - newMandatoryColumn("esduName", RegionCellAssociationImportRow.PROPERTY_ESDU_CELL, EchobaseCsvUtil.newCellValueParser(voyage, cellDAO)); + newMandatoryColumn("esduName", RegionCellAssociationImportRow.PROPERTY_ESDU_CELL, EchoBaseCsvUtil.newCellValueParser(voyage, cellDAO)); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataQuality; @@ -51,7 +51,7 @@ newMandatoryColumn(RegionCellImportRow.PROPERTY_NAME); newMandatoryColumn("regionEnvCoordinates", RegionCellImportRow.PROPERTY_DATA_COORDINATE); - newMandatoryColumn("surface", RegionCellImportRow.PROPERTY_DATA_SURFACE, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn("surface", RegionCellImportRow.PROPERTY_DATA_SURFACE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Voyage; @@ -47,7 +47,7 @@ public static final String[] COLUMN_NAMES_TO_EXCLUDE = { - CELL_NAME, + EchoBaseCsvUtil.CELL_NAME, Species.PROPERTY_BARACOUDA_CODE, RegionCellResultImportRow.PROPERTY_VOYAGE, RegionCellResultImportRow.PROPERTY_SIZE_CATEGORY, @@ -67,7 +67,7 @@ super(separator); newForeignKeyColumn(RegionCellResultImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); - newForeignKeyColumn(CELL_NAME, RegionCellResultImportRow.PROPERTY_CELL, Cell.class, Cell.PROPERTY_NAME, regionCellMap); + newForeignKeyColumn(EchoBaseCsvUtil.CELL_NAME, RegionCellResultImportRow.PROPERTY_CELL, Cell.class, Cell.PROPERTY_NAME, regionCellMap); newForeignKeyColumn(RegionCellResultImportRow.PROPERTY_ECHOTYPE, Echotype.class, Echotype.PROPERTY_NAME, echotypeMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, RegionCellResultImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); newForeignKeyColumn(RegionCellResultImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); @@ -76,8 +76,8 @@ for (DataMetadata metadata : dataMetadatas) { newMandatoryColumn( metadata.getName(), - EchobaseCsvUtil.newResultValueParser(metadata, true), - EchobaseCsvUtil.<RegionCellResultImportRow>newResultValueSetter()); + EchoBaseCsvUtil.newResultValueParser(metadata, true), + EchoBaseCsvUtil.<RegionCellResultImportRow>newResultValueSetter()); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportRow.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportRow.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.importdata.csv; import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Result; @@ -41,7 +41,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class RegionCellResultImportRow implements EchobaseCsvUtil.ResultAble { +public class RegionCellResultImportRow implements EchoBaseCsvUtil.ResultAble { public static final String PROPERTY_NAME = "name"; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; @@ -51,19 +51,19 @@ newIgnoredColumn("subHaul"); - newForeignKeyColumn(OPERATION_ID, SubSampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); + newForeignKeyColumn(EchoBaseCsvUtil.OPERATION_ID, SubSampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, SubSampleImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); newForeignKeyColumn(SubSampleImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); newForeignKeyColumn(SubSampleImportRow.PROPERTY_SEX_CATEGORY, SexCategory.class, SexCategory.PROPERTY_NAME, sexCategoryMap); - newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, EchobaseCsvUtil.PRIMITIVE_INTEGER); + newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, EchoBaseCsvUtil.PRIMITIVE_INTEGER); - newMandatoryColumn(SubSampleImportRow.PROPERTY_NUMBER_AT_LENGTH, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(SubSampleImportRow.PROPERTY_WEIGHT_AT_LENGTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); + newMandatoryColumn(SubSampleImportRow.PROPERTY_NUMBER_AT_LENGTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(SubSampleImportRow.PROPERTY_WEIGHT_AT_LENGTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); newMandatoryColumn(SubSampleImportRow.PROPERTY_LENGTH_CLASS); newMandatoryColumn(SubSampleImportRow.PROPERTY_UNITS); - newMandatoryColumn(SubSampleImportRow.PROPERTY_ROUND, EchobaseCsvUtil.NA_TO_INTEGER_PARSER); + newMandatoryColumn(SubSampleImportRow.PROPERTY_ROUND, EchoBaseCsvUtil.NA_TO_INTEGER_PARSER); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.references.SizeCategory; @@ -46,17 +46,17 @@ Map<String, SizeCategory> sizeCategoryMap) { super(separator); - newForeignKeyColumn(OPERATION_ID, TotalSampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); + newForeignKeyColumn(EchoBaseCsvUtil.OPERATION_ID, TotalSampleImportRow.PROPERTY_OPERATION, Operation.class, Operation.PROPERTY_ID, operationMap); newForeignKeyColumn(Species.PROPERTY_BARACOUDA_CODE, TotalSampleImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); newForeignKeyColumn(TotalSampleImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); - newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, EchobaseCsvUtil.NA_TO_INTEGER_PARSER); + newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, EchoBaseCsvUtil.NA_TO_INTEGER_PARSER); - newMandatoryColumn(TotalSampleImportRow.PROPERTY_MEAN_LENGTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - newMandatoryColumn(TotalSampleImportRow.PROPERTY_MEAN_WEIGHT, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - newMandatoryColumn(TotalSampleImportRow.PROPERTY_NO_PER_KG, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - newMandatoryColumn(TotalSampleImportRow.PROPERTY_SORTED_WEIGHT, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(TotalSampleImportRow.PROPERTY_MEAN_LENGTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + newMandatoryColumn(TotalSampleImportRow.PROPERTY_MEAN_WEIGHT, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + newMandatoryColumn(TotalSampleImportRow.PROPERTY_NO_PER_KG, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + newMandatoryColumn(TotalSampleImportRow.PROPERTY_SORTED_WEIGHT, EchoBaseCsvUtil.PRIMITIVE_FLOAT); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; @@ -48,7 +48,7 @@ Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newForeignKeyColumn( - VESSEL_NAME, Transect.PROPERTY_VESSEL, + EchoBaseCsvUtil.VESSEL_NAME, Transect.PROPERTY_VESSEL, Vessel.class, Vessel.PROPERTY_NAME, vesselMap); newMandatoryColumn(Transect.PROPERTY_TITLE); @@ -56,16 +56,16 @@ newMandatoryColumn(Transect.PROPERTY_STRATUM); newMandatoryColumn(Transect.PROPERTY_COMMENT); - newMandatoryColumn(Transect.PROPERTY_DATE_CREATED, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_START, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_END, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Transect.PROPERTY_DATE_CREATED, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_START, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_END, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MIN, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MIN, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MAX, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MAX, EchobaseCsvUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, EchobaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MIN, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MIN, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MAX, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MAX, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, EchoBaseCsvUtil.PRIMITIVE_FLOAT); newMandatoryColumn(Transect.PROPERTY_LINESTRING); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; @@ -43,8 +43,8 @@ super(separator); newForeignKeyColumn(TransitImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newMandatoryColumn(Transit.PROPERTY_DESCRIPTION); - newMandatoryColumn(Transit.PROPERTY_START_TIME, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Transit.PROPERTY_END_TIME, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Transit.PROPERTY_START_TIME, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Transit.PROPERTY_END_TIME, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); newMandatoryColumn(Transit.PROPERTY_START_LOCALITY); newMandatoryColumn(Transit.PROPERTY_END_LOCALITY); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,8 +23,8 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.data.VoyageImpl; @@ -39,8 +39,8 @@ public VoyageImportModel(char separator) { super(separator); newMandatoryColumn(Voyage.PROPERTY_NAME); - newMandatoryColumn(Voyage.PROPERTY_START_DATE, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); - newMandatoryColumn(Voyage.PROPERTY_END_DATE, EchobaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Voyage.PROPERTY_START_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); + newMandatoryColumn(Voyage.PROPERTY_END_DATE, EchoBaseCsvUtil.IMPORT_DAY_TIME_ECHOBASE); newMandatoryColumn(Voyage.PROPERTY_START_PORT); newMandatoryColumn(Voyage.PROPERTY_END_PORT); } 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,7 +25,7 @@ import com.google.common.base.Preconditions; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserImpl; @@ -137,7 +137,7 @@ } } - protected <E extends TopiaEntity> void assertCsvImportResult(CsvFileImportResult actual, + protected <E extends TopiaEntity> void assertCsvImportResult(CsvFileImportResult<EchoBaseEntityEnum> actual, Class<E> entityType, int numberCreated) throws TopiaException { assertCsvImportResult(actual, @@ -148,7 +148,7 @@ } - protected <E extends TopiaEntity> void assertCsvImportResult(List<CsvFileImportResult> actual, + protected <E extends TopiaEntity> void assertCsvImportResult(List<CsvFileImportResult<EchoBaseEntityEnum>> actual, int pos, Class<E> entityType, int numberCreated) throws TopiaException { @@ -161,7 +161,7 @@ } - protected <E extends TopiaEntity> void assertCsvImportResult(CsvFileImportResult actual, + protected <E extends TopiaEntity> void assertCsvImportResult(CsvFileImportResult<EchoBaseEntityEnum> actual, Class<E> entityType, int numberCreated, int numberUpdated, @@ -175,7 +175,7 @@ assertNbEntities(entityType, nbCount); } - protected <E extends TopiaEntity> void assertCsvImportResult(List<CsvFileImportResult> results, + protected <E extends TopiaEntity> void assertCsvImportResult(List<CsvFileImportResult<EchoBaseEntityEnum>> results, int pos, Class<E> entityType, int numberCreated, Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -28,7 +28,8 @@ import fr.ifremer.echobase.EchoBaseConfigurationOption; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -37,6 +38,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaRuntimeException; +import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.util.FileUtil; import java.io.File; @@ -187,8 +189,8 @@ } @Override - public DbMeta getDbMeta() { - return DbMeta.newDbMeta(); + public DbMeta<EchoBaseEntityEnum> getDbMeta() { + return EchoBaseMetadatas.newDbMeta(); } @Override 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,9 +29,9 @@ import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.CsvFileImportResult; -import fr.ifremer.echobase.csv.EchoBaseImport; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Cell; @@ -60,6 +60,8 @@ import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.TimeLog; +import org.nuiton.util.csv.Import; +import org.nuiton.util.csv.ext.CsvReaders; import java.io.File; import java.io.Reader; @@ -174,7 +176,7 @@ } protected <M extends AbstractImportConfiguration, S extends AbstractImportDataService<M>> - List<CsvFileImportResult> doImport(M conf, + List<CsvFileImportResult<EchoBaseEntityEnum>> doImport(M conf, Class<S> serviceType, int nbResults) throws ImportException { @@ -188,7 +190,7 @@ TIME_LOG.log(s0, "doImport"); - List<CsvFileImportResult> result = conf.getImportResults(); + List<CsvFileImportResult<EchoBaseEntityEnum>> result = conf.getImportResults(); Assert.assertNotNull(result); Assert.assertEquals(nbResults, result.size()); @@ -290,8 +292,8 @@ Reader reader = service.getInputFileReader(inputFile); try { - EchoBaseImport<ResultEdsuImportMockImportModelRow> importer = - EchoBaseImport.newImport(csvModel, reader); + Import<ResultEdsuImportMockImportModelRow> importer = + Import.newImport(csvModel, reader); for (ResultEdsuImportMockImportModelRow row : importer) { @@ -327,9 +329,9 @@ File file) { super(separator); - newMandatoryColumn(esduColumnName, CELL_NAME); + newMandatoryColumn(esduColumnName, EchoBaseCsvUtil.CELL_NAME); - String[] header = EchoBaseImport.getHeader(file, separator); + String[] header = CsvReaders.getHeader(file, separator); for (String columnHeader : header) { Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.DataAcquisition; @@ -83,7 +84,7 @@ prepareInputFile(conf.getMoviesFile(), getImportPath("movies.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, AcousticImportService.class, 1); assertCsvImportResult(result, 0, DataAcquisition.class, NB_DATA_ACQUISITION); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; import fr.ifremer.echobase.entities.references.SpeciesCategory; @@ -68,7 +69,7 @@ prepareInputFile(conf.getBiometrySampleFile(), getImportPath("biometrysample.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CatchesImportService.class, 3); assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_TOTAL, 0, NB_SAMPLE); @@ -101,7 +102,7 @@ prepareInputFile(conf.getTotalSampleFile(), getImportPath("totalsample.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CatchesImportService.class, 1); assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_TOTAL); @@ -124,7 +125,7 @@ prepareInputFile(conf.getSubSampleFile(), getImportPath("subsample.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CatchesImportService.class, 1); assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_UNSORTED); @@ -147,7 +148,7 @@ prepareInputFile(conf.getBiometrySampleFile(), getImportPath("biometrysample.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CatchesImportService.class, 1); assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_BIOMETRY); assertCsvImportResult(result, 0, SampleData.class, NB_SAMPLE_DATA_BIOMETRY); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/Common2ImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/Common2ImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/Common2ImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; @@ -73,7 +74,7 @@ transit.clearTransect(); } - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CommonImportService.class, 1); assertCsvImportResult(result, 0, Transect.class, NB_TRANSECT); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; @@ -77,7 +78,7 @@ conf.setImportMode(CommonImportMode.ALL); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, CommonImportService.class, 3); assertCsvImportResult(result, 0, Voyage.class, NB_VOYAGE); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.GearMetadataValue; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.OperationMetadataValue; @@ -69,7 +70,7 @@ prepareInputFile(conf.getGearMetadataFile(), getImportPath("gearmetadatavalue.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, OperationImportService.class, 3); assertCsvImportResult(result, 0, Operation.class, NB_OPERATION); 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-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,8 +24,9 @@ package fr.ifremer.echobase.services.importdata; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.references.AgeCategory; @@ -73,11 +74,11 @@ InputFile inputFile = conf.getEsduByEchotypeFile(); prepareInputFile(inputFile, getImportPath("byEchotype.csv.gz")); - addMissingEsduCells(AbstractImportModel.CELL_NAME, conf.getVoyageId(), inputFile); + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, conf.getVoyageId(), inputFile); conf.setDataProcessingId(getDataProcessingId()); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Result.class, 43533); @@ -105,11 +106,11 @@ prepareInputFile(inputFile, getImportPath("byEchotypeAndSpeciesCategory.csv.gz")); - addMissingEsduCells(AbstractImportModel.CELL_NAME, conf.getVoyageId(), inputFile); + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, conf.getVoyageId(), inputFile); conf.setDataProcessingId(getDataProcessingId()); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Result.class, 357291); @@ -138,11 +139,11 @@ prepareInputFile(intputFile, getImportPath("bySpeciesAndSizeCategory.csv.gz")); - addMissingEsduCells(AbstractImportModel.CELL_NAME, conf.getVoyageId(), intputFile); + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, conf.getVoyageId(), intputFile); conf.setDataProcessingId(getDataProcessingId()); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Result.class, 68108); @@ -172,11 +173,11 @@ prepareInputFile(inputFile, getImportPath("bySpeciesAndAgeCategory.csv.gz")); - addMissingEsduCells(AbstractImportModel.CELL_NAME, conf.getVoyageId(), inputFile); + addMissingEsduCells(EchoBaseCsvUtil.CELL_NAME, conf.getVoyageId(), inputFile); conf.setDataProcessingId(getDataProcessingId()); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Category.class, 14); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; @@ -69,7 +70,7 @@ prepareInputFile(conf.getMapsFile(), getImportPath("maps.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsMapCellImportService.class, 1); assertCsvImportResult(result, 0, Cell.class, 380); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; @@ -79,7 +80,7 @@ conf.getVoyageId(), conf.getRegionAssociationFile()); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsRegionCellImportService.class, 3); assertCsvImportResult(result, 0, Cell.class, 10, 0, 2083); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,7 +23,8 @@ */ package fr.ifremer.echobase.services.importdata; -import fr.ifremer.echobase.csv.CsvFileImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.LengthAgeKey; import fr.ifremer.echobase.entities.data.LengthWeightKey; @@ -72,7 +73,7 @@ getImportPath("lengthWeightKey.csv.gz")); prepareInputFile(conf.getEchotypeFile(), getImportPath("echotype.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsVoyageImportService.class, 3); assertCsvImportResult(result, 0, LengthAgeKey.class, NB_LENGTH_AGE_KEY); @@ -99,7 +100,7 @@ prepareInputFile(conf.getLengthAgeKeyFile(), getImportPath("lengthAgeKey.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsVoyageImportService.class, 1); assertCsvImportResult(result, 0, LengthAgeKey.class, NB_LENGTH_AGE_KEY); @@ -124,7 +125,7 @@ prepareInputFile(conf.getLengthWeightKeyFile(), getImportPath("lengthWeightKey.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsVoyageImportService.class, 1); assertCsvImportResult(result, 0, LengthWeightKey.class, NB_LENGTH_WEIGHT_KEY); @@ -148,7 +149,7 @@ prepareInputFile(conf.getEchotypeFile(), getImportPath("echotype.csv.gz")); - List<CsvFileImportResult> result; + List<CsvFileImportResult<EchoBaseEntityEnum>> result; result = doImport(conf, ResultsVoyageImportService.class, 1); assertCsvImportResult(result, 0, Echotype.class, NB_ECHOTYPE); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-08-16 16:21:10 UTC (rev 553) @@ -32,8 +32,8 @@ import com.healthmarketscience.jackcess.Table; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseIOUtil; -import fr.ifremer.echobase.csv.AbstractExportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.util.csv.ext.AbstractExportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EntitiesUtil; import org.apache.commons.logging.Log; @@ -217,8 +217,8 @@ } newColumnForExport( name, - EchobaseCsvUtil.newMapProperty(name), - (ValueFormatter<Object>) EchobaseCsvUtil.TO_STRING_FORMATTER + EchoBaseCsvUtil.newMapProperty(name), + (ValueFormatter<Object>) EchoBaseCsvUtil.TO_STRING_FORMATTER ); } } Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,11 +23,12 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link AcousticInstrument} loader. @@ -42,9 +43,9 @@ } @Override - protected EntityCsvModel<AcousticInstrument> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, AcousticInstrument> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<AcousticInstrument> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,AcousticInstrument> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); @@ -58,11 +59,11 @@ model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSCEIVER_SERIAL); model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_APERTURE); model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_BEAMS); - model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_DEPTH, EchobaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_DEPTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_LOCATION); model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_MODEL); - model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_AZIMUTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_ELEVATION, EchobaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_AZIMUTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_ELEVATION, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(AcousticInstrument.PROPERTY_TRANSDUCER_SERIAL); return model; } Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AgeCategoryLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AgeCategoryLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AgeCategoryLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.AgeCategory; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * To load {@link AgeCategory} entities. @@ -42,9 +43,9 @@ @Override - protected EntityCsvModel<AgeCategory> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, AgeCategory> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<AgeCategory> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,AgeCategory> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link AreaOfOperation} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<AreaOfOperation> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, AreaOfOperation> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<AreaOfOperation> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,AreaOfOperation> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -38,8 +38,6 @@ import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.data.VoyageDAO; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.entities.references.CellMethod; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.CellTypeDAO; @@ -51,6 +49,8 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.io.File; import java.io.IOException; @@ -144,10 +144,10 @@ super.copyAndLoad(outputDir); - AssociationMeta associationMeta; + AssociationMeta<EchoBaseEntityEnum> associationMeta; - TableMeta dataMeta; - dataMeta = getTable(EchoBaseEntityEnum.Data); + TableMeta<EchoBaseEntityEnum> dataMeta = + getTable(EchoBaseEntityEnum.Data); copyAndLoadEntities(outputDir, dataMeta, false, FileType.BARACOUDA); // also export cells associations Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellMethodLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellMethodLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellMethodLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.CellMethod; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link CellMethod} loader. @@ -41,8 +42,8 @@ } @Override - protected EntityCsvModel<CellMethod> createCsvImportModel(TableMeta meta) { - EntityCsvModel<CellMethod> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, CellMethod> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,CellMethod> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link CellType} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<CellType> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, CellType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<CellType> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,CellType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,9 +27,9 @@ import com.healthmarketscience.jackcess.Database; import com.healthmarketscience.jackcess.Table; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.CellMethod; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataType; @@ -40,6 +40,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.io.IOException; import java.util.List; @@ -102,8 +103,8 @@ } @Override - protected EntityCsvModel<DataMetadata> createCsvImportModel(TableMeta meta) { - EntityCsvModel<DataMetadata> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, DataMetadata> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,DataMetadata> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataQualityLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataQualityLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataQualityLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link DataQuality} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<DataQuality> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, DataQuality> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<DataQuality> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,DataQuality> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.DataType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link DataType} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<DataType> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, DataType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<DataType> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,DataType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link DepthStratum} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<DepthStratum> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, DepthStratum> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<DepthStratum> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,DepthStratum> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,12 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.EchotypeCategory; import fr.ifremer.echobase.tools.FileType; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link EchotypeCategory} loader. @@ -38,18 +37,14 @@ */ public class EchotypeCategoryLoader extends EntityLoader<EchotypeCategory> { - /** Logger. */ - private static final Log log = - LogFactory.getLog(EchotypeCategoryLoader.class); - public EchotypeCategoryLoader() { super(EchotypeCategory.class, FileType.NEW); } @Override - protected EntityCsvModel<EchotypeCategory> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, EchotypeCategory> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<EchotypeCategory> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,EchotypeCategory> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,15 +29,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import com.google.common.io.Files; import com.healthmarketscience.jackcess.Database; -import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.CsvImportResult; -import fr.ifremer.echobase.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; @@ -50,6 +45,12 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaId; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; +import org.nuiton.topia.persistence.csv.EntityCsvModel; import org.nuiton.util.FileUtil; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportModel; @@ -89,9 +90,9 @@ private final Set<FileType> fileTypes; - private TableMeta meta; + private TableMeta<EchoBaseEntityEnum> meta; - private AssociationMeta parentAssociationMeta; + private AssociationMeta<EchoBaseEntityEnum> parentAssociationMeta; private final EchoBaseEntityEnum parent; @@ -142,7 +143,7 @@ if (parent != null) { - TableMeta parentMeta = getDbMeta().getTable(parent); + TableMeta<EchoBaseEntityEnum> parentMeta = getDbMeta().getTable(parent); // find the associationMeta parentAssociationMeta = @@ -152,7 +153,7 @@ } } - protected EntityCsvModel<E> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, E> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { // by default no model return null; } @@ -173,7 +174,7 @@ return entityType; } - public EchoBaseEntityEnum[] getDependencies() { + public Set<EchoBaseEntityEnum> getDependencies() { return meta.getDependencies(); } @@ -181,15 +182,15 @@ return extraDependencies; } - public TableMeta getMeta() { + public TableMeta<EchoBaseEntityEnum> getMeta() { return meta; } - public AssociationMeta getParentAssociationMeta() { + public AssociationMeta<EchoBaseEntityEnum> getParentAssociationMeta() { return parentAssociationMeta; } - public TableMeta getTable(EchoBaseEntityEnum tableName) { + public TableMeta<EchoBaseEntityEnum> getTable(EchoBaseEntityEnum tableName) { return getDbMeta().getTable(tableName); } @@ -205,9 +206,9 @@ log.info("Import " + entityType + " from " + csvfile); } - TableMeta tableMeta = getTable(entityType); + TableMeta<EchoBaseEntityEnum> tableMeta = getTable(entityType); - EntityCsvModel<E> csvModel = createCsvImportModel(tableMeta); + EntityCsvModel<EchoBaseEntityEnum, E> csvModel = createCsvImportModel(tableMeta); BufferedReader bf = new BufferedReader(new FileReader(csvfile)); try { @@ -243,7 +244,7 @@ } protected void importNewEntities(DbEditorService dbEditorService, - TableMeta meta, + TableMeta<EchoBaseEntityEnum> meta, Import<E> importer) { for (E entity : importer) { @@ -282,7 +283,7 @@ } protected void exportAssociations(File outputDir, FileType targetType) throws IOException { - AssociationMeta associationMeta = getParentAssociationMeta(); + AssociationMeta<EchoBaseEntityEnum> associationMeta = getParentAssociationMeta(); if (associationMeta != null) { @@ -292,7 +293,7 @@ protected void exportData(File outputDir, FileType targetType, - TableMeta meta) throws IOException { + TableMeta<EchoBaseEntityEnum> meta) throws IOException { File out = getTableFile(outputDir, meta, targetType); @@ -315,7 +316,7 @@ } public File getTableFile(File directory, - MetaFilenameAware meta, + MetaFilenameAware<EchoBaseEntityEnum> meta, FileType fileType) throws IOException { File parentDir = new File(directory, fileType.name().toLowerCase()); @@ -345,7 +346,7 @@ } public void copyAndLoadEntities(File directory, - MetaFilenameAware meta, + MetaFilenameAware<EchoBaseEntityEnum> meta, boolean commit, FileType... fileTypes) throws IOException, TopiaException { @@ -354,11 +355,11 @@ File out = getTableFile(directory, meta, fileType); copyStreamToFile(out, fileType); - CsvImportResult result = CsvImportResult.newResult( + CsvImportResult<EchoBaseEntityEnum> result = CsvImportResult.newResult( meta.getSource(), out.getAbsolutePath(), true); - BufferedReader bf = new BufferedReader(new FileReader(out)); + BufferedReader bf = Files.newReader(out, Charsets.UTF_8); try { importFile(meta, bf, result); @@ -398,7 +399,7 @@ protected void exportAssociation(File outputDir, FileType targetType, - AssociationMeta associationMeta) throws IOException { + AssociationMeta<EchoBaseEntityEnum> associationMeta) throws IOException { File out = getTableFile(outputDir, associationMeta, targetType); getExportService().exportDatas(associationMeta, out); } @@ -418,9 +419,9 @@ return entity; } - public <E extends TopiaEntity> void importFile(MetaFilenameAware entry, + public <E extends TopiaEntity> void importFile(MetaFilenameAware<EchoBaseEntityEnum> entry, Reader reader, - CsvImportResult csvResult) throws IOException { + CsvImportResult<EchoBaseEntityEnum> csvResult) throws IOException { ImportService service = getImportService(); @@ -428,7 +429,8 @@ // load a association input - AssociationMeta associationMeta = (AssociationMeta) entry; + AssociationMeta<EchoBaseEntityEnum> associationMeta = + (AssociationMeta<EchoBaseEntityEnum>) entry; if (log.isInfoEnabled()) { log.info("Will import " + associationMeta); @@ -437,7 +439,7 @@ EchoBaseEntityEnum target = associationMeta.getTarget(); List<TopiaEntity> targetEntities = getEntities(target); Map<String, TopiaEntity> targetsById = - Maps.uniqueIndex(targetEntities, EchoBaseFunctions.TO_TOPIAID); + Maps.uniqueIndex(targetEntities, TopiaId.GET_TOPIA_ID); ImportModel<Map<String, Object>> model = service.buildForImport(associationMeta); @@ -447,7 +449,7 @@ List<E> sourceEntities = getEntities(sourceType); Map<String, E> sourcesById = - Maps.uniqueIndex(sourceEntities, EchoBaseFunctions.TO_TOPIAID); + Maps.uniqueIndex(sourceEntities, TopiaId.GET_TOPIA_ID); try { for (Map<String, Object> row : importer) { String topiaId = (String) row.get(TopiaEntity.TOPIA_ID); @@ -471,7 +473,8 @@ // normal entity table import - TableMeta tableMeta = (TableMeta) entry; + TableMeta<EchoBaseEntityEnum> tableMeta = + (TableMeta<EchoBaseEntityEnum>) entry; if (log.isInfoEnabled()) { log.info("Will import " + tableMeta); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,11 +23,12 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.csv.Common; import org.nuiton.util.csv.ValueParser; @@ -48,9 +49,9 @@ } @Override - protected EntityCsvModel<Gear> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, Gear> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<Gear> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,Gear> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); @@ -58,7 +59,7 @@ model.newMandatoryColumn("CasinoGearName", Gear.PROPERTY_CASINO_GEAR_NAME); model.newMandatoryColumn("ValidSince", Gear.PROPERTY_VALID_SINCE, IMPORT_DAY); model.newMandatoryColumn("InvalidSince", Gear.PROPERTY_INVALID_SINCE, IMPORT_DAY); - model.newMandatoryColumn("IsFishingGear", Gear.PROPERTY_FISHING_GEAR, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("IsFishingGear", Gear.PROPERTY_FISHING_GEAR, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); model.newMandatoryColumn("gearLabel", Gear.PROPERTY_GEAR_CODE); model.newMandatoryColumn("GearName", Gear.PROPERTY_NAME); model.newMandatoryColumn("Description", Gear.PROPERTY_DESCRIPTION); @@ -66,8 +67,8 @@ model.addDefaultColumn("GearClassification", Gear.PROPERTY_GEAR_CLASSIFICATION, int.class); model.addDefaultColumn("ParentGear", Gear.PROPERTY_PARENT_GEAR, int.class); model.addDefaultColumn("Status", Gear.PROPERTY_STATUS, int.class); - model.newMandatoryColumn("IsActive", Gear.PROPERTY_ACTIVE, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); - model.newMandatoryColumn("IsTowed", Gear.PROPERTY_TOWED, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("IsActive", Gear.PROPERTY_ACTIVE, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("IsTowed", Gear.PROPERTY_TOWED, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); return model; } } \ No newline at end of file Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,12 +24,12 @@ package fr.ifremer.echobase.tools.loaders; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.OperationEvent; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; @@ -46,11 +46,11 @@ } @Override - protected EntityCsvModel<GearMetadata> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, GearMetadata> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { List<OperationEvent> events = getEntities(EchoBaseEntityEnum.OperationEvent); - EntityCsvModel<GearMetadata> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,GearMetadata> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link Mission} loader. @@ -41,8 +42,8 @@ } @Override - protected EntityCsvModel<Mission> createCsvImportModel(TableMeta meta) { - EntityCsvModel<Mission> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, Mission> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,Mission> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.OperationEvent; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link OperationEvent} loader. @@ -41,8 +42,8 @@ } @Override - protected EntityCsvModel<OperationEvent> createCsvImportModel(TableMeta meta) { - EntityCsvModel<OperationEvent> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, OperationEvent> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,OperationEvent> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -36,7 +36,6 @@ 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.meta.TableMeta; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; @@ -49,6 +48,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.io.File; import java.io.IOException; @@ -95,7 +95,7 @@ protected void exportAssociations(File outputDir, FileType targetType) throws IOException { super.exportAssociations(outputDir, targetType); - TableMeta meta = getMeta(); + TableMeta<EchoBaseEntityEnum> meta = getMeta(); // export operation metadata values exportAssociation(outputDir, targetType, @@ -114,7 +114,7 @@ copyAndLoadEntities(outputDir, getTable(EchoBaseEntityEnum.OperationMetadataValue), false, FileType.BARACOUDA); copyAndLoadEntities(outputDir, getTable(EchoBaseEntityEnum.GearMetadataValue), false, FileType.BARACOUDA); - TableMeta meta = getMeta(); + TableMeta<EchoBaseEntityEnum> meta = getMeta(); copyAndLoadEntities(outputDir, meta.getAssociations(Operation.PROPERTY_OPERATION_METADATA_VALUE), false, FileType.ASSOCIATION); copyAndLoadEntities(outputDir, meta.getAssociations(Operation.PROPERTY_GEAR_METADATA_VALUE), false, FileType.ASSOCIATION); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,13 +24,13 @@ package fr.ifremer.echobase.tools.loaders; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EntityCsvModel; +import org.nuiton.topia.persistence.csv.EntityCsvModel; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.OperationEvent; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; @@ -47,11 +47,11 @@ } @Override - protected EntityCsvModel<OperationMetadata> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, OperationMetadata> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { List<OperationEvent> events = getEntities(EchoBaseEntityEnum.OperationEvent); - EntityCsvModel<OperationMetadata> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,OperationMetadata> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,11 +24,12 @@ package fr.ifremer.echobase.tools.loaders; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.ReferenceDatum; import fr.ifremer.echobase.entities.references.ReferenceDatumType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; @@ -45,8 +46,8 @@ } @Override - protected EntityCsvModel<ReferenceDatum> createCsvImportModel(TableMeta meta) { - EntityCsvModel<ReferenceDatum> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, ReferenceDatum> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,ReferenceDatum> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.ReferenceDatumType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link ReferenceDatumType} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<ReferenceDatumType> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, ReferenceDatumType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<ReferenceDatumType> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,ReferenceDatumType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link SampleDataType} loader. @@ -41,8 +42,8 @@ } @Override - protected EntityCsvModel<SampleDataType> createCsvImportModel(TableMeta meta) { - EntityCsvModel<SampleDataType> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, SampleDataType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,SampleDataType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -35,7 +35,6 @@ import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; import fr.ifremer.echobase.entities.data.SampleDataDAO; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.entities.references.SampleType; import fr.ifremer.echobase.entities.references.SampleTypeDAO; @@ -49,6 +48,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.StringUtil; import java.io.File; @@ -91,7 +91,7 @@ protected void exportAssociations(File outputDir, FileType targetType) throws IOException { super.exportAssociations(outputDir, targetType); - TableMeta meta = getMeta(); + TableMeta<EchoBaseEntityEnum> meta = getMeta(); exportAssociation(outputDir, targetType, meta.getAssociations(Sample.PROPERTY_SAMPLE_DATA)); @@ -105,7 +105,7 @@ copyAndLoadEntities(outputDir, getTable(EchoBaseEntityEnum.SampleData), false, FileType.BARACOUDA); - TableMeta meta = getMeta(); + TableMeta<EchoBaseEntityEnum> meta = getMeta(); copyAndLoadEntities(outputDir, meta.getAssociations(Sample.PROPERTY_SAMPLE_DATA), false, FileType.ASSOCIATION); } Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,11 +23,12 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.entities.references.SampleType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link SampleDataType} loader. @@ -42,8 +43,8 @@ } @Override - protected EntityCsvModel<SampleType> createCsvImportModel(TableMeta meta) { - EntityCsvModel<SampleType> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, SampleType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,SampleType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.SexCategory; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link SexCategory} loader. @@ -41,8 +42,8 @@ } @Override - protected EntityCsvModel<SexCategory> createCsvImportModel(TableMeta meta) { - EntityCsvModel<SexCategory> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, SexCategory> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,SexCategory> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,11 +23,12 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.SexCategory; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link SexCategory} loader. @@ -42,8 +43,8 @@ } @Override - protected EntityCsvModel<SizeCategory> createCsvImportModel(TableMeta meta) { - EntityCsvModel<SizeCategory> model = EntityCsvModel.newModel( + protected EntityCsvModel<EchoBaseEntityEnum, SizeCategory> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { + EntityCsvModel<EchoBaseEntityEnum,SizeCategory> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link Species} loader. @@ -41,9 +42,9 @@ } @Override - protected EntityCsvModel<Species> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, Species> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<Species> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,Species> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,12 +24,13 @@ package fr.ifremer.echobase.tools.loaders; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Strata; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; @@ -46,19 +47,19 @@ } @Override - protected EntityCsvModel<Strata> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, Strata> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { List<DepthStratum> depthStratums = getEntities(DepthStratum.class); - EntityCsvModel<Strata> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,Strata> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); model.newMandatoryColumn(Strata.PROPERTY_NAME); - model.newMandatoryColumn(Strata.PROPERTY_MAX_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - model.newMandatoryColumn(Strata.PROPERTY_MIN_LATITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - model.newMandatoryColumn(Strata.PROPERTY_MAX_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); - model.newMandatoryColumn(Strata.PROPERTY_MIN_LONGITUDE, EchobaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Strata.PROPERTY_MAX_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Strata.PROPERTY_MIN_LATITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Strata.PROPERTY_MAX_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Strata.PROPERTY_MIN_LONGITUDE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(Strata.PROPERTY_SEAFLOOR_SUBSTRATE); model.addForeignKeyForImport(Strata.PROPERTY_DEPTH_STRATUM, Strata.PROPERTY_DEPTH_STRATUM, DepthStratum.class, depthStratums, EchoBaseFunctions.DEPTH_STRATUM_ID); return model; Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,11 +23,12 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.TSParameters; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * {@link TSParameters} loader. @@ -46,9 +47,9 @@ "averageFishLength";"location";"minDepth";"maxDepth";"averageDepth";"dielPeriod";"method";"b";"a";"r2";"isOK";"Comment";"isPublished";"C_Perm" */ @Override - protected EntityCsvModel<TSParameters> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, TSParameters> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<TSParameters> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,TSParameters> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); @@ -58,23 +59,23 @@ model.addDefaultColumn("speciesCommonName", TSParameters.PROPERTY_SPECIES_COMMON_NAME, String.class); model.addDefaultColumn("genusSpecies", TSParameters.PROPERTY_GENUS_SPECIES, String.class); model.addDefaultColumn("speciesTSGroup", TSParameters.PROPERTY_SPECIES_TSGROUP, String.class); - model.newMandatoryColumn("hasSwimbladder", TSParameters.PROPERTY_SWIMBLADDER, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("hasSwimbladder", TSParameters.PROPERTY_SWIMBLADDER, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); model.addDefaultColumn("swimbladderType", TSParameters.PROPERTY_SWIMBLADDER_TYPE, String.class); - model.newMandatoryColumn("minFishLength", TSParameters.PROPERTY_MIN_FISH_LENGTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn("maxFishLength", TSParameters.PROPERTY_MAX_DEPTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn("averageFishLength", TSParameters.PROPERTY_AVERAGE_FISH_LENGTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("minFishLength", TSParameters.PROPERTY_MIN_FISH_LENGTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("maxFishLength", TSParameters.PROPERTY_MAX_DEPTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("averageFishLength", TSParameters.PROPERTY_AVERAGE_FISH_LENGTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); model.addDefaultColumn("location", TSParameters.PROPERTY_LOCATION, String.class); - model.newMandatoryColumn("minDepth", TSParameters.PROPERTY_MIN_DEPTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn("maxDepth", TSParameters.PROPERTY_MAX_DEPTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn("averageDepth", TSParameters.PROPERTY_AVERAGE_DEPTH, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("minDepth", TSParameters.PROPERTY_MIN_DEPTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("maxDepth", TSParameters.PROPERTY_MAX_DEPTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("averageDepth", TSParameters.PROPERTY_AVERAGE_DEPTH, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); model.addDefaultColumn("dielPeriod", TSParameters.PROPERTY_DIEL_PERIOD, String.class); model.addDefaultColumn("method", TSParameters.PROPERTY_METHOD, String.class); model.addDefaultColumn("b", TSParameters.PROPERTY_B, Float.class); model.addDefaultColumn("a", TSParameters.PROPERTY_A, Float.class); - model.newMandatoryColumn("r2", TSParameters.PROPERTY_R2, EchobaseCsvUtil.NA_TO_FLOAT_PARSER); - model.newMandatoryColumn("isOK", TSParameters.PROPERTY_OK, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("r2", TSParameters.PROPERTY_R2, EchoBaseCsvUtil.NA_TO_FLOAT_PARSER); + model.newMandatoryColumn("isOK", TSParameters.PROPERTY_OK, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); model.addDefaultColumn("Comment", TSParameters.PROPERTY_COMMENT, String.class); - model.newMandatoryColumn("isPublished", TSParameters.PROPERTY_PUBLISHED, EchobaseCsvUtil.INT_TO_BOOLEAN_PARSER); + model.newMandatoryColumn("isPublished", TSParameters.PROPERTY_PUBLISHED, EchoBaseCsvUtil.INT_TO_BOOLEAN_PARSER); model.addDefaultColumn("C_Perm", TSParameters.PROPERTY_CODE_PERM, String.class); return model; } Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,12 +24,13 @@ package fr.ifremer.echobase.tools.loaders; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.entities.references.VesselType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; @@ -46,12 +47,12 @@ } @Override - protected EntityCsvModel<Vessel> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, Vessel> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { List<VesselType> vesselTypesByName = getEntities( VesselType.class); - EntityCsvModel<Vessel> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,Vessel> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); @@ -59,13 +60,13 @@ model.newMandatoryColumn(Vessel.PROPERTY_ALT_CALLSIGN); model.newMandatoryColumn(Vessel.PROPERTY_CALLSIGN); model.newMandatoryColumn(Vessel.PROPERTY_CODE); - model.newMandatoryColumn(Vessel.PROPERTY_ENGINE_POWER, EchobaseCsvUtil.PRIMITIVE_INTEGER); - model.newMandatoryColumn(Vessel.PROPERTY_IMO, EchobaseCsvUtil.PRIMITIVE_INTEGER); - model.newMandatoryColumn(Vessel.PROPERTY_LENGTH, EchobaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Vessel.PROPERTY_ENGINE_POWER, EchoBaseCsvUtil.PRIMITIVE_INTEGER); + model.newMandatoryColumn(Vessel.PROPERTY_IMO, EchoBaseCsvUtil.PRIMITIVE_INTEGER); + model.newMandatoryColumn(Vessel.PROPERTY_LENGTH, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.newMandatoryColumn(Vessel.PROPERTY_NAME); model.newMandatoryColumn(Vessel.PROPERTY_NOISE_DESIGN); model.newMandatoryColumn(Vessel.PROPERTY_OPERATOR); - model.newMandatoryColumn(Vessel.PROPERTY_TONNAGE, EchobaseCsvUtil.PRIMITIVE_FLOAT); + model.newMandatoryColumn(Vessel.PROPERTY_TONNAGE, EchoBaseCsvUtil.PRIMITIVE_FLOAT); model.addForeignKeyForImport(Vessel.PROPERTY_VESSEL_TYPE, Vessel.PROPERTY_VESSEL_TYPE, VesselType.class, vesselTypesByName, EchoBaseFunctions.VESSEL_TYPE_NAME); return model; Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.tools.loaders; -import fr.ifremer.echobase.csv.EntityCsvModel; -import fr.ifremer.echobase.entities.meta.TableMeta; +import org.nuiton.topia.persistence.csv.EntityCsvModel; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.references.VesselType; import fr.ifremer.echobase.tools.FileType; +import org.nuiton.topia.persistence.metadata.TableMeta; /** * Loader of {@link VesselType}. @@ -43,9 +44,9 @@ } @Override - protected EntityCsvModel<VesselType> createCsvImportModel(TableMeta meta) { + protected EntityCsvModel<EchoBaseEntityEnum, VesselType> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) { - EntityCsvModel<VesselType> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseEntityEnum,VesselType> model = EntityCsvModel.newModel( getCsvSeparator(), meta ); Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2012-08-16 16:21:10 UTC (rev 553) @@ -29,14 +29,12 @@ import com.healthmarketscience.jackcess.Table; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.csv.AbstractImportModel; -import fr.ifremer.echobase.csv.EchobaseCsvUtil; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.EchotypeImpl; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.EchotypeCategory; @@ -48,6 +46,8 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportModel; @@ -79,7 +79,7 @@ super.exportAssociations(outputDir, targetType); // also export voyage - echotype associations - AssociationMeta associationMeta = + AssociationMeta<EchoBaseEntityEnum> associationMeta = getMeta().getAssociations(Voyage.PROPERTY_ECHOTYPE); exportAssociation(outputDir, targetType, associationMeta); @@ -150,12 +150,12 @@ echotypeCategorys ); - TableMeta echotypeMeta = getTable(EchoBaseEntityEnum.Echotype); + TableMeta<EchoBaseEntityEnum> echotypeMeta = getTable(EchoBaseEntityEnum.Echotype); - AssociationMeta voyageEchotypeAssociationMeta = + AssociationMeta<EchoBaseEntityEnum> voyageEchotypeAssociationMeta = getMeta().getAssociations(Voyage.PROPERTY_ECHOTYPE); - AssociationMeta echotypeSpeciesAssociationMeta = + AssociationMeta<EchoBaseEntityEnum> echotypeSpeciesAssociationMeta = echotypeMeta.getAssociations(Echotype.PROPERTY_SPECIES); DbEditorService dbEditorService = @@ -289,7 +289,6 @@ public static class EchotypeImportModel extends AbstractImportModel<EchotyeRow> { - public EchotypeImportModel(char separator, Map<String, Voyage> voyages, Map<String, Species> species, @@ -302,7 +301,7 @@ "CAMPAGNE";"ECHOS";"IMAGES";"LIBELLE_DESCRIPTION_DEVIATION";"ID_DESCRIPTION_DEVIATION";"GENRE_ESP";"TYPE_DEVIATION" */ - newMandatoryColumn("ID_DESCRIPTION_DEVIATION", Echotype.PROPERTY_ID, EchobaseCsvUtil.PRIMITIVE_INTEGER); + newMandatoryColumn("ID_DESCRIPTION_DEVIATION", Echotype.PROPERTY_ID, EchoBaseCsvUtil.PRIMITIVE_INTEGER); newMandatoryColumn("ECHOS", Echotype.PROPERTY_NAME); newMandatoryColumn("LIBELLE_DESCRIPTION_DEVIATION", Echotype.PROPERTY_MEANING); newForeignKeyColumn("CAMPAGNE", "voyage", Voyage.class, Voyage.PROPERTY_NAME, voyages); Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,7 +27,7 @@ import fr.ifremer.echobase.EchoBaseConfigurationOption; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseService; import fr.ifremer.echobase.services.EchoBaseServiceContext; @@ -102,7 +102,7 @@ Locale.getDefault(), topiaContext.beginTransaction(), configuration, - DbMeta.newDbMeta(), + EchoBaseMetadatas.newDbMeta(), new EchoBaseServiceFactory() ); } Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -27,12 +27,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.healthmarketscience.jackcess.Database; -import fr.ifremer.echobase.csv.CsvImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.DbMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.ImportService; import fr.ifremer.echobase.tools.AbstractToolTest; import fr.ifremer.echobase.tools.FileType; @@ -46,6 +41,11 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; import org.nuiton.util.FileUtil; import java.io.File; @@ -63,8 +63,7 @@ public abstract class AbstractLoaderIT<E extends TopiaEntity, L extends EntityLoader<E>> extends AbstractToolTest { /** Logger. */ - private static final Log log = - LogFactory.getLog(AbstractLoaderIT.class); + private static final Log log = LogFactory.getLog(AbstractLoaderIT.class); protected static File msAccessFile; @@ -179,11 +178,11 @@ } protected void loadDependencies() throws IOException, TopiaException { - Set<MetaFilenameAware> dones = Sets.newHashSet(); + Set<MetaFilenameAware<EchoBaseEntityEnum>> dones = Sets.newHashSet(); loadDependencies(dones); } - protected void loadDependencies(Set<MetaFilenameAware> dones) throws IOException, TopiaException { + protected void loadDependencies(Set<MetaFilenameAware<EchoBaseEntityEnum>> dones) throws IOException, TopiaException { for (EchoBaseEntityEnum dependency : loader.getDependencies()) { loadDependencies(dependency, dones); @@ -191,7 +190,7 @@ for (EchoBaseEntityEnum dependency : loader.getExtraDependencies()) { loadDependencies(dependency, dones); } - AssociationMeta parentAssociationMeta = + AssociationMeta<EchoBaseEntityEnum> parentAssociationMeta = loader.getParentAssociationMeta(); if (parentAssociationMeta != null) { loadDependencies(parentAssociationMeta.getSource(), dones); @@ -199,14 +198,14 @@ } protected void loadDependencies(EchoBaseEntityEnum dependency, - Set<MetaFilenameAware> dones) throws IOException, TopiaException { - DbMeta dbMeta = serviceContext.getDbMeta(); - TableMeta meta = dbMeta.getTable(dependency); + Set<MetaFilenameAware<EchoBaseEntityEnum>> dones) throws IOException, TopiaException { + DbMeta<EchoBaseEntityEnum> dbMeta = serviceContext.getDbMeta(); + TableMeta<EchoBaseEntityEnum> meta = dbMeta.getTable(dependency); loadDependencies(meta, dones); } - protected void loadDependencies(MetaFilenameAware meta, - Set<MetaFilenameAware> dones) throws IOException, TopiaException { + protected void loadDependencies(MetaFilenameAware<EchoBaseEntityEnum> meta, + Set<MetaFilenameAware<EchoBaseEntityEnum>> dones) throws IOException, TopiaException { // mark it as load (to prevent reloading of it twice) @@ -227,7 +226,7 @@ // import association loadDependencies(meta.getSource(), dones); - loadDependencies(((AssociationMeta) meta).getTarget(), dones); + loadDependencies(((AssociationMeta<EchoBaseEntityEnum>) meta).getTarget(), dones); entityLoader.copyAndLoadEntities(exportdir, meta, true, FileType.ASSOCIATION); } else { @@ -258,7 +257,7 @@ } // load associations - AssociationMeta parentAssociationMeta = + AssociationMeta<EchoBaseEntityEnum> parentAssociationMeta = entityLoader.getParentAssociationMeta(); if (parentAssociationMeta != null) { loadDependencies(parentAssociationMeta, dones); @@ -293,7 +292,7 @@ if (log.isInfoEnabled()) { log.info("Import " + inFile); } - CsvImportResult csvImportResult = newService(ImportService.class).importDatas( + CsvImportResult<EchoBaseEntityEnum> csvImportResult = newService(ImportService.class).importDatas( loader.getEntityType(), inFile.getAbsolutePath(), inFile, Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderIT.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -32,9 +32,6 @@ import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.tools.FileType; import fr.ifremer.echobase.tools.TestHelper; @@ -46,6 +43,9 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.TimeLog; import java.io.File; @@ -147,14 +147,14 @@ // let's merge all result File dir = TestHelper.getTestBasedir(CellLoaderIT.class); - TableMeta cellMeta = lastLoader.getMeta(); - TableMeta dataMeta = lastLoader.getTable(EchoBaseEntityEnum.Data); - TableMeta voyageMeta = lastLoader.getTable(EchoBaseEntityEnum.Voyage); - TableMeta dataProcessingMeta = lastLoader.getTable(EchoBaseEntityEnum.DataProcessing); - AssociationMeta dataProcessingToCellMetaAssociation = dataProcessingMeta.getAssociations(DataProcessing.PROPERTY_CELL); - AssociationMeta cellToCellMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_CHILDS); - AssociationMeta cellToDataMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_DATA); - AssociationMeta voyageToPostCellMetaAssociation = voyageMeta.getAssociations(Voyage.PROPERTY_POST_CELL); + TableMeta<EchoBaseEntityEnum> cellMeta = lastLoader.getMeta(); + TableMeta<EchoBaseEntityEnum> dataMeta = lastLoader.getTable(EchoBaseEntityEnum.Data); + TableMeta<EchoBaseEntityEnum> voyageMeta = lastLoader.getTable(EchoBaseEntityEnum.Voyage); + TableMeta<EchoBaseEntityEnum> dataProcessingMeta = lastLoader.getTable(EchoBaseEntityEnum.DataProcessing); + AssociationMeta<EchoBaseEntityEnum> dataProcessingToCellMetaAssociation = dataProcessingMeta.getAssociations(DataProcessing.PROPERTY_CELL); + AssociationMeta<EchoBaseEntityEnum> cellToCellMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_CHILDS); + AssociationMeta<EchoBaseEntityEnum> cellToDataMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_DATA); + AssociationMeta<EchoBaseEntityEnum> voyageToPostCellMetaAssociation = voyageMeta.getAssociations(Voyage.PROPERTY_POST_CELL); ToFileFromMeta toCellFile = new ToFileFromMeta(lastLoader, cellMeta); ToFileFromMeta toDataFile = new ToFileFromMeta(lastLoader, dataMeta); @@ -218,13 +218,13 @@ private static class ToFileFromMeta implements Function<File, File> { - private MetaFilenameAware meta; + private MetaFilenameAware<EchoBaseEntityEnum> meta; private FileType fileType; private CellLoader loader; - public ToFileFromMeta(CellLoader loader, MetaFilenameAware meta) { + public ToFileFromMeta(CellLoader loader, MetaFilenameAware<EchoBaseEntityEnum> meta) { this.meta = meta; this.loader = loader; fileType = meta instanceof AssociationMeta ? FileType.ASSOCIATION : FileType.BARACOUDA; Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderIT.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,12 +25,12 @@ import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.meta.AssociationMeta; -import fr.ifremer.echobase.entities.meta.MetaFilenameAware; import fr.ifremer.echobase.tools.FileType; import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.MetaFilenameAware; import java.io.File; import java.io.IOException; @@ -53,10 +53,10 @@ generateBaracoudaEntities(); } - Set<MetaFilenameAware> dones; + Set<MetaFilenameAware<EchoBaseEntityEnum>> dones; @Override - protected void loadDependencies(Set<MetaFilenameAware> dones) throws IOException, TopiaException { + protected void loadDependencies(Set<MetaFilenameAware<EchoBaseEntityEnum>> dones) throws IOException, TopiaException { super.loadDependencies(dones); this.dones = dones; } @@ -69,7 +69,7 @@ loadDependencies(EchoBaseEntityEnum.DepthStratum, dones); loadDependencies(EchoBaseEntityEnum.EchotypeCategory, dones); - AssociationMeta associationMeta = + AssociationMeta<EchoBaseEntityEnum> associationMeta = loader.getMeta().getAssociations(Voyage.PROPERTY_ECHOTYPE); File inFile = new File(testdir, "input-" + associationMeta.getFilename()); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,8 +24,9 @@ package fr.ifremer.echobase.ui; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.metadata.DbMeta; /** * @author tchemit <chemit@codelutin.com> @@ -35,7 +36,7 @@ protected EchoBaseConfiguration configuration; - protected DbMeta dbMeta; + protected DbMeta<EchoBaseEntityEnum> dbMeta; protected TopiaContext rootContext; @@ -55,11 +56,11 @@ this.rootContext = rootContext; } - public DbMeta getDbMeta() { + public DbMeta<EchoBaseEntityEnum> getDbMeta() { return dbMeta; } - public void setDbMeta(DbMeta dbMeta) { + public void setDbMeta(DbMeta<EchoBaseEntityEnum> dbMeta) { this.dbMeta = dbMeta; } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-08-16 16:21:10 UTC (rev 553) @@ -26,9 +26,10 @@ import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserImpl; -import fr.ifremer.echobase.entities.meta.DbMeta; +import fr.ifremer.echobase.entities.meta.EchoBaseMetadatas; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceFactory; @@ -45,6 +46,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaUtil; +import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.util.converter.ConverterUtil; import javax.servlet.ServletContextEvent; @@ -99,7 +101,7 @@ new EchoBaseTopiaRootContextFactory(); rootContext = factory.newDatabaseFromConfig(configuration); applicationContext.setRootContext(rootContext); - DbMeta dbMeta = DbMeta.newDbMeta(); + DbMeta<EchoBaseEntityEnum> dbMeta = EchoBaseMetadatas.newDbMeta(); applicationContext.setDbMeta(dbMeta); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,11 +25,11 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.DbMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; import java.util.Map; @@ -52,7 +52,7 @@ protected Map<String, String> entityTypes; /** Metas of the table. */ - protected TableMeta tableMeta; + protected TableMeta<EchoBaseEntityEnum> tableMeta; public Map<String, String> getEntityTypes() { return entityTypes; @@ -72,8 +72,8 @@ public void load() throws Exception { entityTypes = Maps.newTreeMap(); - DbMeta dbMeta = getEchoBaseApplicationContext().getDbMeta(); - for (TableMeta meta : dbMeta) { + DbMeta<EchoBaseEntityEnum> dbMeta = getEchoBaseApplicationContext().getDbMeta(); + for (TableMeta<EchoBaseEntityEnum> meta : dbMeta) { // keep only editable metas if (dbMeta.isEditable(meta)) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,11 +24,11 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.ExportService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -97,7 +97,7 @@ ExportService exportService = newService(ExportService.class); - TableMeta table = serviceContext.getDbMeta().getTable(entityType); + TableMeta<EchoBaseEntityEnum> table = serviceContext.getDbMeta().getTable(entityType); String content = exportService.exportDatas(table, exportAsSeen); if (log.isDebugEnabled()) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,10 +25,10 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.ColumnMeta; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; import java.util.Map; @@ -76,7 +76,7 @@ DbEditorService service = newService(DbEditorService.class); - TableMeta table = serviceContext.getDbMeta().getTable(entityType); + TableMeta<EchoBaseEntityEnum> table = serviceContext.getDbMeta().getTable(entityType); datas = service.getData(table, id); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-08-16 16:21:10 UTC (rev 553) @@ -24,7 +24,8 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import com.opensymphony.xwork2.interceptor.annotations.InputConfig; -import fr.ifremer.echobase.csv.CsvImportResult; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; import fr.ifremer.echobase.services.ImportService; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.logging.Log; @@ -61,11 +62,11 @@ protected String importFileFileName; /** CSV import result */ - private CsvImportResult result; + private CsvImportResult<EchoBaseEntityEnum> result; private Exception error; - public CsvImportResult getResult() { + public CsvImportResult<EchoBaseEntityEnum> getResult() { return result; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2012-08-16 15:23:09 UTC (rev 552) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2012-08-16 16:21:10 UTC (rev 553) @@ -25,11 +25,11 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.TableMeta; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.struts2.interceptor.ParameterAware; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.metadata.TableMeta; import java.util.List; import java.util.Map; @@ -51,7 +51,7 @@ protected String topiaId; // /** Metas of the table */ -// protected TableMeta tableMeta; +// protected TableMeta<EchoBaseEntityEnum> tableMeta; protected Map<String, String[]> params; @@ -71,7 +71,7 @@ public String execute() throws Exception { DbEditorService service = newService(DbEditorService.class); - TableMeta tableMeta = service.getTableMeta(entityType); + TableMeta<EchoBaseEntityEnum> tableMeta = service.getTableMeta(entityType); Map<String, String> properties = Maps.newHashMap(); List<String> columnNames = tableMeta.getColumnNames(); for (String columnName : columnNames) {
participants (1)
-
tchemit@users.forge.codelutin.com