This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 8debd31b3416d061c1be75f7f5e3d66af3ff1104 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Feb 8 15:48:10 2015 +0100 add technical column + finish import model definition --- t | 75 +++++++++++++ .../service/genericformat/GlobalImportContext.java | 107 +++++++++--------- .../genericformat/csv/AccidentalCatchModel.java | 33 +++--- .../service/genericformat/csv/CatchModel.java | 123 ++++++++++++++------- .../tutti/service/genericformat/csv/CatchRow.java | 10 ++ .../genericformat/csv/GearCaracteristicModel.java | 47 ++++---- .../csv/IndividualObservationModel.java | 31 +++--- .../genericformat/csv/MarineLitterModel.java | 25 +++-- .../service/genericformat/csv/OperationModel.java | 86 ++++++++------ .../service/genericformat/csv/ParameterModel.java | 19 ++-- .../genericformat/csv/SpeciesExportModel.java | 23 ++-- .../service/genericformat/csv/SurveyModel.java | 56 ++++++---- 12 files changed, 409 insertions(+), 226 deletions(-) diff --git a/t b/t new file mode 100644 index 0000000..f495ebc --- /dev/null +++ b/t @@ -0,0 +1,75 @@ +[1mdiff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java[m +[1mindex 6d08564..fbbca75 100644[m +[1m--- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java[m +[1m+++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java[m +[36m@@ -3,6 +3,7 @@[m [mpackage fr.ifremer.tutti.service.genericformat;[m + import fr.ifremer.tutti.persistence.entities.data.Program;[m + import fr.ifremer.tutti.service.PersistenceService;[m + import fr.ifremer.tutti.service.csv.CaracteristicTechnicalParser;[m +[32m+[m[32mimport fr.ifremer.tutti.service.csv.CaracteristicValueTechnicalParser;[m + import fr.ifremer.tutti.service.csv.FishingOperationLocationTechnicalParser;[m + import fr.ifremer.tutti.service.csv.FishingOperationStrataTechnicalParser;[m + import fr.ifremer.tutti.service.csv.FishingOperationSubStrataTechnicalParser;[m +[36m@@ -10,7 +11,6 @@[m [mimport fr.ifremer.tutti.service.csv.GearTechnicalParser;[m + import fr.ifremer.tutti.service.csv.HarbourTechnicalParser;[m + import fr.ifremer.tutti.service.csv.ListPersonTechnicalParser;[m + import fr.ifremer.tutti.service.csv.ListVesselTechnicalParser;[m +[31m-import fr.ifremer.tutti.service.csv.ProgramTechnicalParser;[m + import fr.ifremer.tutti.service.csv.SpeciesTechnicalParser;[m + import fr.ifremer.tutti.service.csv.VesselTechnicalParser;[m + [m +[36m@@ -24,8 +24,6 @@[m [mpublic class GlobalImportContext {[m + [m + private final VesselTechnicalParser vesselParser;[m + [m +[31m- private final ProgramTechnicalParser programParser;[m +[31m-[m + private final HarbourTechnicalParser harbourParser;[m + [m + private final GearTechnicalParser mandatoryGearParser;[m +[36m@@ -46,9 +44,12 @@[m [mpublic class GlobalImportContext {[m + [m + private final SpeciesTechnicalParser speciesParser;[m + [m +[32m+[m[32m private final CaracteristicValueTechnicalParser marineLitterCategoryValueParser;[m +[32m+[m +[32m+[m[32m private final CaracteristicValueTechnicalParser marineLitterSizeCategoryValueParser;[m +[32m+[m + public GlobalImportContext(PersistenceService persistenceService, Program program) {[m + this.vesselParser = new VesselTechnicalParser(persistenceService);[m +[31m- this.programParser = new ProgramTechnicalParser(persistenceService);[m + this.harbourParser = new HarbourTechnicalParser(persistenceService);[m + this.listPersonParser = new ListPersonTechnicalParser(persistenceService);[m + this.mandatoryGearParser = new GearTechnicalParser(persistenceService, true);[m +[36m@@ -59,16 +60,14 @@[m [mpublic class GlobalImportContext {[m + this.fishingOperationLocationParser = new FishingOperationLocationTechnicalParser(persistenceService, program.getZone().getId());[m + this.listVesselParser = new ListVesselTechnicalParser(persistenceService);[m + this.speciesParser = new SpeciesTechnicalParser(persistenceService);[m +[32m+[m[32m this.marineLitterCategoryValueParser = new CaracteristicValueTechnicalParser(persistenceService.getMarineLitterCategoryCaracteristic());[m +[32m+[m[32m this.marineLitterSizeCategoryValueParser = new CaracteristicValueTechnicalParser(persistenceService.getMarineLitterSizeCategoryCaracteristic());[m + }[m + [m + public VesselTechnicalParser getVesselParser() {[m + return vesselParser;[m + }[m + [m +[31m- public ProgramTechnicalParser getProgramParser() {[m +[31m- return programParser;[m +[31m- }[m +[31m-[m + public HarbourTechnicalParser getHarbourParser() {[m + return harbourParser;[m + }[m +[36m@@ -108,4 +107,12 @@[m [mpublic class GlobalImportContext {[m + public SpeciesTechnicalParser getSpeciesParser() {[m + return speciesParser;[m + }[m +[32m+[m +[32m+[m[32m public CaracteristicValueTechnicalParser getMarineLitterCategoryValueParser() {[m +[32m+[m[32m return marineLitterCategoryValueParser;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m public CaracteristicValueTechnicalParser getMarineLitterSizeCategoryValueParser() {[m +[32m+[m[32m return marineLitterSizeCategoryValueParser;[m +[32m+[m[32m }[m + }[m diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java index a6e31bc..fbbca75 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GlobalImportContext.java @@ -2,17 +2,17 @@ package fr.ifremer.tutti.service.genericformat; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.service.PersistenceService; -import fr.ifremer.tutti.service.csv.CaracteristicParser; -import fr.ifremer.tutti.service.csv.FishingOperationLocationParser; -import fr.ifremer.tutti.service.csv.FishingOperationStrataParser; -import fr.ifremer.tutti.service.csv.FishingOperationSubStrataParser; -import fr.ifremer.tutti.service.csv.GearParser; -import fr.ifremer.tutti.service.csv.HarbourParser; -import fr.ifremer.tutti.service.csv.ListPersonParser; -import fr.ifremer.tutti.service.csv.ListVesselParser; -import fr.ifremer.tutti.service.csv.ProgramParser; -import fr.ifremer.tutti.service.csv.SpeciesParser; -import fr.ifremer.tutti.service.csv.VesselParser; +import fr.ifremer.tutti.service.csv.CaracteristicTechnicalParser; +import fr.ifremer.tutti.service.csv.CaracteristicValueTechnicalParser; +import fr.ifremer.tutti.service.csv.FishingOperationLocationTechnicalParser; +import fr.ifremer.tutti.service.csv.FishingOperationStrataTechnicalParser; +import fr.ifremer.tutti.service.csv.FishingOperationSubStrataTechnicalParser; +import fr.ifremer.tutti.service.csv.GearTechnicalParser; +import fr.ifremer.tutti.service.csv.HarbourTechnicalParser; +import fr.ifremer.tutti.service.csv.ListPersonTechnicalParser; +import fr.ifremer.tutti.service.csv.ListVesselTechnicalParser; +import fr.ifremer.tutti.service.csv.SpeciesTechnicalParser; +import fr.ifremer.tutti.service.csv.VesselTechnicalParser; /** * Created on 2/5/15. @@ -22,90 +22,97 @@ import fr.ifremer.tutti.service.csv.VesselParser; */ public class GlobalImportContext { - private final VesselParser vesselParser; + private final VesselTechnicalParser vesselParser; - private final ProgramParser programParser; + private final HarbourTechnicalParser harbourParser; - private final HarbourParser harbourParser; + private final GearTechnicalParser mandatoryGearParser; - private final GearParser mandatoryGearParser; + private final GearTechnicalParser optionalGearParser; - private final GearParser optionalGearParser; + private final ListPersonTechnicalParser listPersonParser; - private final ListPersonParser listPersonParser; + private final CaracteristicTechnicalParser caracteristicParser; - private final CaracteristicParser caracteristicParser; + private final FishingOperationStrataTechnicalParser fishingOperationStrataParser; - private final FishingOperationStrataParser fishingOperationStrataParser; + private final FishingOperationSubStrataTechnicalParser fishingOperationSubStrataParser; - private final FishingOperationSubStrataParser fishingOperationSubStrataParser; + private final FishingOperationLocationTechnicalParser fishingOperationLocationParser; - private final FishingOperationLocationParser fishingOperationLocationParser; + private final ListVesselTechnicalParser listVesselParser; - private final ListVesselParser listVesselParser; + private final SpeciesTechnicalParser speciesParser; - private final SpeciesParser speciesParser; + private final CaracteristicValueTechnicalParser marineLitterCategoryValueParser; + + private final CaracteristicValueTechnicalParser marineLitterSizeCategoryValueParser; public GlobalImportContext(PersistenceService persistenceService, Program program) { - this.vesselParser = new VesselParser(persistenceService); - this.programParser = new ProgramParser(persistenceService); - this.harbourParser = new HarbourParser(persistenceService); - this.listPersonParser = new ListPersonParser(persistenceService); - this.mandatoryGearParser = new GearParser(persistenceService, true); - this.optionalGearParser = new GearParser(persistenceService, false); - this.caracteristicParser = new CaracteristicParser(persistenceService); - this.fishingOperationStrataParser = new FishingOperationStrataParser(persistenceService, program.getZone().getId()); - this.fishingOperationSubStrataParser = new FishingOperationSubStrataParser(persistenceService, program.getZone().getId()); - this.fishingOperationLocationParser = new FishingOperationLocationParser(persistenceService, program.getZone().getId()); - this.listVesselParser = new ListVesselParser(persistenceService); - this.speciesParser = new SpeciesParser(persistenceService); + this.vesselParser = new VesselTechnicalParser(persistenceService); + this.harbourParser = new HarbourTechnicalParser(persistenceService); + this.listPersonParser = new ListPersonTechnicalParser(persistenceService); + this.mandatoryGearParser = new GearTechnicalParser(persistenceService, true); + this.optionalGearParser = new GearTechnicalParser(persistenceService, false); + this.caracteristicParser = new CaracteristicTechnicalParser(persistenceService); + this.fishingOperationStrataParser = new FishingOperationStrataTechnicalParser(persistenceService, program.getZone().getId()); + this.fishingOperationSubStrataParser = new FishingOperationSubStrataTechnicalParser(persistenceService, program.getZone().getId()); + this.fishingOperationLocationParser = new FishingOperationLocationTechnicalParser(persistenceService, program.getZone().getId()); + this.listVesselParser = new ListVesselTechnicalParser(persistenceService); + this.speciesParser = new SpeciesTechnicalParser(persistenceService); + this.marineLitterCategoryValueParser = new CaracteristicValueTechnicalParser(persistenceService.getMarineLitterCategoryCaracteristic()); + this.marineLitterSizeCategoryValueParser = new CaracteristicValueTechnicalParser(persistenceService.getMarineLitterSizeCategoryCaracteristic()); } - public VesselParser getVesselParser() { + public VesselTechnicalParser getVesselParser() { return vesselParser; } - public ProgramParser getProgramParser() { - return programParser; - } - - public HarbourParser getHarbourParser() { + public HarbourTechnicalParser getHarbourParser() { return harbourParser; } - public ListPersonParser getListPersonParser() { + public ListPersonTechnicalParser getListPersonParser() { return listPersonParser; } - public GearParser getMandatoryGearParser() { + public GearTechnicalParser getMandatoryGearParser() { return mandatoryGearParser; } - public GearParser getOptionalGearParser() { + public GearTechnicalParser getOptionalGearParser() { return optionalGearParser; } - public CaracteristicParser getCaracteristicParser() { + public CaracteristicTechnicalParser getCaracteristicParser() { return caracteristicParser; } - public FishingOperationStrataParser getFishingOperationStrataParser() { + public FishingOperationStrataTechnicalParser getFishingOperationStrataParser() { return fishingOperationStrataParser; } - public FishingOperationSubStrataParser getFishingOperationSubStrataParser() { + public FishingOperationSubStrataTechnicalParser getFishingOperationSubStrataParser() { return fishingOperationSubStrataParser; } - public FishingOperationLocationParser getFishingOperationLocationParser() { + public FishingOperationLocationTechnicalParser getFishingOperationLocationParser() { return fishingOperationLocationParser; } - public ListVesselParser getListVesselParser() { + public ListVesselTechnicalParser getListVesselParser() { return listVesselParser; } - public SpeciesParser getSpeciesParser() { + public SpeciesTechnicalParser getSpeciesParser() { return speciesParser; } + + public CaracteristicValueTechnicalParser getMarineLitterCategoryValueParser() { + return marineLitterCategoryValueParser; + } + + public CaracteristicValueTechnicalParser getMarineLitterSizeCategoryValueParser() { + return marineLitterSizeCategoryValueParser; + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/AccidentalCatchModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/AccidentalCatchModel.java index 5668570..a796968 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/AccidentalCatchModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/AccidentalCatchModel.java @@ -26,12 +26,10 @@ import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; /** @@ -69,49 +67,52 @@ public class AccidentalCatchModel extends AbstractTuttiImportExportModel<Acciden protected AccidentalCatchModel(char separator) { super(separator); - } protected void forExport() { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); + newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_NAME); + newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); newNullableColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); newColumnForExport("BatchId", AccidentalCatchRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); - newColumnForExport("ReferenceTaxonId", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); + newColumnForExport("ReferenceTaxonId", AccidentalBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); newColumnForExport("ReferenceTaxonName", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); newColumnForExport("Commentaire", AccidentalBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); - newColumnForExport("CaracteristicId", AccidentalCatchRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); + newColumnForExport("CaracteristicId", AccidentalCatchRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); newColumnForExport("CaracteristicValue", AccidentalCatchRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newColumnForExport("CaracteristicValue_Id", AccidentalCatchRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); - - //FIXME What can we do with that ? - newMandatoryColumn("BatchId", AccidentalCatchRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); + newIgnoredColumn("Engin"); + newIgnoredColumn("EnginRankOrder"); + newIgnoredColumn("BatchId"); newMandatoryColumn("ReferenceTaxonId", AccidentalBatch.PROPERTY_SPECIES, globalImportContext.getSpeciesParser()); -// newMandatoryColumn("ReferenceTaxonName", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); + newIgnoredColumn("ReferenceTaxonName"); newMandatoryColumn("Commentaire", AccidentalBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); newMandatoryColumn("CaracteristicId", AccidentalCatchRow.PROPERTY_CARACTERISTIC, globalImportContext.getCaracteristicParser()); - newMandatoryColumn("CaracteristicValue", AccidentalCatchRow.PROPERTY_CARACTERISTIC_VALUE); + newIgnoredColumn("CaracteristicValue"); + + newMandatoryColumn("CaracteristicValue_Id", AccidentalCatchRow.PROPERTY_CARACTERISTIC_VALUE); } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java index d5343cc..d910b5e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java @@ -25,17 +25,20 @@ package fr.ifremer.tutti.service.genericformat.csv; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.CaracteristicValueTechnicalParser; import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; +import org.apache.commons.beanutils.PropertyUtils; +import org.nuiton.csv.ValueSetter; + +import java.io.Serializable; /** * Model of a catch export. @@ -79,18 +82,18 @@ public class CatchModel extends AbstractTuttiImportExportModel<CatchRow> { protected void forExport(SampleCategoryModel sampleCategoryModel, DecoratorService decoratorService) { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); + newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_NAME); + newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); newNullableColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); - newColumnForExport("ReferenceTaxonId", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER); - newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_SURVEY_CODE); - newColumnForExport("Nom_scientifique", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); + newColumnForExport("ReferenceTaxonId", SpeciesBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER); + newColumnForExport("Nom_scientifique", SpeciesBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_NAME_FORMATTER); newColumnForExport("Benthos", CatchRow.PROPOERTY_BENTHOS, TuttiCsvUtil.BOOLEAN); newColumnForExport("Commentaire", SpeciesBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); @@ -98,18 +101,19 @@ public class CatchModel extends AbstractTuttiImportExportModel<CatchRow> { String headerPrefix = entry.getCode(); int categoryOrder = entry.getOrder(); - String categoryName = CatchRow.SAMPLE_CATEGORY; - newIndexNullableColumnForExport(headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); - newIndexNullableColumnForExport("Num_Ordre_" + headerPrefix + "_H2", categoryName, categoryOrder, ExportSampleCategory.PROPERTY_RANK_ORDER, TuttiCsvUtil.INTEGER); - newIndexNullableColumnForExport("Tot_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_WEIGHT, TuttiCsvUtil.FLOAT); - newIndexNullableColumnForExport("Ech_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_SAMPLE_WEIGHT, TuttiCsvUtil.FLOAT); - newIndexNullableColumnForExport("Type_Volume_Poids_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_WEIGHT_OR_VOL_TYPE); + String collectionName = CatchRow.SAMPLE_CATEGORY; + newIndexNullableColumnForExport(headerPrefix, collectionName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newIndexNullableColumnForExport("Num_Ordre_" + headerPrefix + "_H2", collectionName, categoryOrder, ExportSampleCategory.PROPERTY_RANK_ORDER, TuttiCsvUtil.INTEGER); + newIndexNullableColumnForExport("Tot_" + headerPrefix, collectionName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_WEIGHT, TuttiCsvUtil.FLOAT); + newIndexNullableColumnForExport("Ech_" + headerPrefix, collectionName, categoryOrder, ExportSampleCategory.PROPERTY_SAMPLE_WEIGHT, TuttiCsvUtil.FLOAT); + newIndexNullableColumnForExport("Type_Volume_Poids_" + headerPrefix, collectionName, categoryOrder, ExportSampleCategory.PROPERTY_WEIGHT_OR_VOL_TYPE); newNullableColumnForExport("Unite_Volume_Poids_" + headerPrefix, CatchRow.BATCH_WEIGHT_UNIT); + } // mensuration - newNullableColumnForExport("Code_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_ID); + newNullableColumnForExport("Code_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); newNullableColumnForExportByDecorator("Libelle_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); newNullableColumnForExport("Taille", CatchRow.FREQUENCY_LENGTH_STEP, TuttiCsvUtil.FLOAT); newNullableColumnForExport("NumOrdre_Taille_H2", CatchRow.FREQUENCY_RANK_ORDER, TuttiCsvUtil.INTEGER); @@ -122,53 +126,92 @@ public class CatchModel extends AbstractTuttiImportExportModel<CatchRow> { newColumnForExport("Coef_Elev_Espece_Capture", CatchRow.RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT); newColumnForExport("Coef_Final_Elevation", CatchRow.FINAL_RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT); + for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { + + String headerPrefix = entry.getCode(); + int categoryOrder = entry.getOrder(); + String collectionName = CatchRow.SAMPLE_CATEGORY; + + newIndexNullableColumnForExport(headerPrefix + "_Id", collectionName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + + } + } protected void forImport(SampleCategoryModel sampleCategoryModel, GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); + newIgnoredColumn("Engin"); + newIgnoredColumn("EnginRankOrder"); newMandatoryColumn("ReferenceTaxonId", SpeciesBatch.PROPERTY_SPECIES, globalImportContext.getSpeciesParser()); - newColumnForExport("Benthos", CatchRow.PROPOERTY_BENTHOS, TuttiCsvUtil.BOOLEAN); -// newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_SURVEY_CODE); -// newColumnForExport("Nom_scientifique", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); + newMandatoryColumn("Benthos", CatchRow.PROPOERTY_BENTHOS, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Code_Espece_Campagne"); + newIgnoredColumn("Nom_scientifique"); newMandatoryColumn("Commentaire", SpeciesBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); - //TODO for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { String headerPrefix = entry.getCode(); - int categoryOrder = entry.getOrder(); - String categoryName = CatchRow.SAMPLE_CATEGORY; - newIndexNullableColumnForExport(headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); - newIndexNullableColumnForExport("Num_Ordre_" + headerPrefix + "_H2", categoryName, categoryOrder, ExportSampleCategory.PROPERTY_RANK_ORDER, TuttiCsvUtil.INTEGER); - newIndexNullableColumnForExport("Tot_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_CATEGORY_WEIGHT, TuttiCsvUtil.FLOAT); - newIndexNullableColumnForExport("Ech_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_SAMPLE_WEIGHT, TuttiCsvUtil.FLOAT); -// newIndexNullableColumnForExport("Type_Volume_Poids_" + headerPrefix, categoryName, categoryOrder, ExportSampleCategory.PROPERTY_WEIGHT_OR_VOL_TYPE); -// newNullableColumnForExport("Unite_Volume_Poids_" + headerPrefix, CatchRow.BATCH_WEIGHT_UNIT); + + newIgnoredColumn(headerPrefix); + newMandatoryColumn("Num_Ordre_" + headerPrefix + "_H2", TuttiCsvUtil.INTEGER, new SampleCategoryValueSetter<Integer>(entry, ExportSampleCategory.PROPERTY_RANK_ORDER)); + newMandatoryColumn("Tot_" + headerPrefix, TuttiCsvUtil.FLOAT, new SampleCategoryValueSetter<Float>(entry, ExportSampleCategory.PROPERTY_CATEGORY_WEIGHT)); + newMandatoryColumn("Ech_" + headerPrefix, TuttiCsvUtil.FLOAT, new SampleCategoryValueSetter<Float>(entry, ExportSampleCategory.PROPERTY_SAMPLE_WEIGHT)); + + newIgnoredColumn("Type_Volume_Poids_" + headerPrefix); + newIgnoredColumn("Unite_Volume_Poids_" + headerPrefix); + } // mensuration - newNullableColumnForExport("Code_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_ID); -// newNullableColumnForExportByDecorator("Libelle_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); - newNullableColumnForExport("Taille", CatchRow.FREQUENCY_LENGTH_STEP, TuttiCsvUtil.FLOAT); - newNullableColumnForExport("NumOrdre_Taille_H2", CatchRow.FREQUENCY_RANK_ORDER, TuttiCsvUtil.INTEGER); - newNullableColumnForExport("Poids_Classe_Taille", CatchRow.FREQUENCY_WEIGHT, TuttiCsvUtil.FLOAT); -// newNullableColumnForExport("Unite_Taille", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_UNIT); -// newNullableColumnForExport("Precision_Mesure", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_PRECISION, TuttiCsvUtil.FLOAT); - newNullableColumnForExport("Nbr", CatchRow.BATCH_NUMBER, TuttiCsvUtil.INTEGER); + newMandatoryColumn("Code_Longueur", CatchRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, globalImportContext.getCaracteristicParser()); + newIgnoredColumn("Libelle_Longueur"); + newMandatoryColumn("Taille", CatchRow.FREQUENCY_LENGTH_STEP, TuttiCsvUtil.FLOAT); + newMandatoryColumn("NumOrdre_Taille_H2", CatchRow.FREQUENCY_RANK_ORDER, TuttiCsvUtil.INTEGER); + newMandatoryColumn("Poids_Classe_Taille", CatchRow.FREQUENCY_WEIGHT, TuttiCsvUtil.FLOAT); + newIgnoredColumn("Unite_Taille"); + newIgnoredColumn("Precision_Mesure"); + newMandatoryColumn("Nbr", CatchRow.BATCH_NUMBER, TuttiCsvUtil.INTEGER); + + newIgnoredColumn("Poids_Reference"); + newIgnoredColumn("Coef_Elev_Espece_Capture"); + newIgnoredColumn("Coef_Final_Elevation"); + + for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { + + String headerPrefix = entry.getCode(); + + newMandatoryColumn(headerPrefix + "_Id", new CaracteristicValueTechnicalParser(entry.getCaracteristic()), new SampleCategoryValueSetter<Serializable>(entry, ExportSampleCategory.PROPERTY_CATEGORY_VALUE)); + + } + } + + private static class SampleCategoryValueSetter<O> implements ValueSetter<CatchRow, O> { + + private final SampleCategoryModelEntry sampleCategoryModelEntry; -// newColumnForExport("Poids_Reference", CatchRow.REFERENCE_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT); -// newColumnForExport("Coef_Elev_Espece_Capture", CatchRow.RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT); -// newColumnForExport("Coef_Final_Elevation", CatchRow.FINAL_RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT); + private final String propertyName; + + public SampleCategoryValueSetter(SampleCategoryModelEntry sampleCategoryModelEntry, String propertyName) { + this.sampleCategoryModelEntry = sampleCategoryModelEntry; + this.propertyName = propertyName; + } + @Override + public void set(CatchRow row, O value) throws Exception { + + ExportSampleCategory sampleCategory = row.getSampleCategory(sampleCategoryModelEntry); + PropertyUtils.setProperty(sampleCategory, propertyName, value); + + } } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchRow.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchRow.java index 7fbc73d..d9ac96a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchRow.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchRow.java @@ -28,6 +28,7 @@ import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -278,4 +279,13 @@ public class CatchRow implements Serializable { } return result; } + + public ExportSampleCategory getSampleCategory(SampleCategoryModelEntry sampleCategoryModelEntry) { + int categoryOrder = sampleCategoryModelEntry.getOrder(); + if (sampleCategory.size()< categoryOrder) { + sampleCategory.add(categoryOrder , new ExportSampleCategory()); + } + return sampleCategory.get(categoryOrder); + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/GearCaracteristicModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/GearCaracteristicModel.java index 0c20959..48019e8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/GearCaracteristicModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/GearCaracteristicModel.java @@ -24,13 +24,11 @@ package fr.ifremer.tutti.service.genericformat.csv; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; -import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.service.DecoratorService; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; /** @@ -57,6 +55,16 @@ public class GearCaracteristicModel extends AbstractTuttiImportExportModel<GearC } + @Override + public GearCaracteristicRow newEmptyInstance() { + + GearCaracteristicRow row = new GearCaracteristicRow(); + Cruise cruise = Cruises.newCruise(); + row.setCruise(cruise); + return row; + + } + protected GearCaracteristicModel(char separator) { super(separator); } @@ -64,37 +72,38 @@ public class GearCaracteristicModel extends AbstractTuttiImportExportModel<GearC protected void forExport(DecoratorService decoratorService) { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newColumnForExport("Engin", GearCaracteristicRow.PROPERTY_GEAR, Gear.PROPERTY_NAME); - newColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); + newColumnForExport("Engin", GearCaracteristicRow.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); + newColumnForExport("EnginRankOrder", GearCaracteristicRow.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); - newColumnForExport("Code_PMFM", GearCaracteristicRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); + newColumnForExport("Code_PMFM", GearCaracteristicRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); newColumnForExportByDecorator("Libelle_PMFM", GearCaracteristicRow.PROPERTY_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); newColumnForExport("Valeur", GearCaracteristicRow.PROPERTY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newColumnForExport("Engin_Id", GearCaracteristicRow.PROPERTY_GEAR, TuttiCsvUtil.GEAR_TECHNICAL_FORMATTER); + newColumnForExport("Valeur_Id", GearCaracteristicRow.PROPERTY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newMandatoryColumn("Engin", GearCaracteristicRow.PROPERTY_GEAR, globalImportContext.getMandatoryGearParser()); - newMandatoryColumn("Code_PMFM", GearCaracteristicRow.PROPERTY_CARACTERISTIC, globalImportContext.getCaracteristicParser()); - newMandatoryColumn("Valeur", GearCaracteristicRow.PROPERTY_VALUE); - - } + newIgnoredColumn("Engin"); + //FIXME + newMandatoryColumn("EnginRankOrder", GearCaracteristicRow.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); - @Override - public GearCaracteristicRow newEmptyInstance() { + newMandatoryColumn("Code_PMFM", GearCaracteristicRow.PROPERTY_CARACTERISTIC, globalImportContext.getCaracteristicParser()); + newIgnoredColumn("Libelle_PMFM"); + newIgnoredColumn("Valeur"); - GearCaracteristicRow row = new GearCaracteristicRow(); - Cruise cruise = Cruises.newCruise(); - row.setCruise(cruise); - return row; + newMandatoryColumn("Engin_Id", GearCaracteristicRow.PROPERTY_GEAR, globalImportContext.getMandatoryGearParser()); + newMandatoryColumn("Valeur_Id", GearCaracteristicRow.PROPERTY_VALUE); } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/IndividualObservationModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/IndividualObservationModel.java index ee3f059..2f4bc65 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/IndividualObservationModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/IndividualObservationModel.java @@ -26,10 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; -import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; @@ -75,42 +72,46 @@ public class IndividualObservationModel extends AbstractTuttiImportExportModel<I protected void forExport() { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); + newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_NAME); + newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); newNullableColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); newColumnForExport("BatchId", IndividualObservationRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); - newColumnForExport("ReferenceTaxonId", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); - newColumnForExport("ReferenceTaxonName", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); + newColumnForExport("ReferenceTaxonId", IndividualObservationBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newColumnForExport("ReferenceTaxonName", IndividualObservationBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_NAME_FORMATTER); newColumnForExport("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); - newColumnForExport("CaracteristicId", IndividualObservationRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); + newColumnForExport("CaracteristicId", IndividualObservationRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); newColumnForExport("CaracteristicValue", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newColumnForExport("CaracteristicValue_Id", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); - -// newMandatoryColumn("BatchId", IndividualObservationRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); + newIgnoredColumn("Engin"); + newIgnoredColumn("EnginRankOrder"); + newIgnoredColumn("BatchId"); newMandatoryColumn("ReferenceTaxonId", IndividualObservationBatch.PROPERTY_SPECIES, globalImportContext.getSpeciesParser()); -// newMandatoryColumn("ReferenceTaxonName", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); + newIgnoredColumn("ReferenceTaxonName"); newMandatoryColumn("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); newMandatoryColumn("CaracteristicId", IndividualObservationRow.PROPERTY_CARACTERISTIC, globalImportContext.getCaracteristicParser()); - newMandatoryColumn("CaracteristicValue", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE); + newIgnoredColumn("CaracteristicValue"); + + newMandatoryColumn("CaracteristicValue_Id", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/MarineLitterModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/MarineLitterModel.java index e38a774..9c2ccbe 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/MarineLitterModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/MarineLitterModel.java @@ -26,10 +26,9 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; -import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; /** @@ -72,13 +71,13 @@ public class MarineLitterModel extends AbstractTuttiImportExportModel<MarineLitt protected void forExport() { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); + newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_NAME); + newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); newNullableColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); newColumnForExport("MarineLitterCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); @@ -87,24 +86,32 @@ public class MarineLitterModel extends AbstractTuttiImportExportModel<MarineLitt newColumnForExport("Weight", MarineLitterBatch.PROPERTY_WEIGHT, TuttiCsvUtil.FLOAT); newColumnForExport("Commentaire", MarineLitterBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); + newColumnForExport("MarineLitterCategory_Id", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newColumnForExport("MarineLitterSizeCategory_Id", MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); + newIgnoredColumn("Engin"); + newIgnoredColumn("EnginRankOrder"); - newMandatoryColumn("MarineLitterCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, globalImportContext.getCaracteristicParser()); - newMandatoryColumn("MarineLitterSizeCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, globalImportContext.getCaracteristicParser()); + newIgnoredColumn("MarineLitterCategory"); + newIgnoredColumn("MarineLitterSizeCategory"); newMandatoryColumn("Number", MarineLitterBatch.PROPERTY_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Weight", MarineLitterBatch.PROPERTY_WEIGHT, TuttiCsvUtil.FLOAT); newMandatoryColumn("Commentaire", MarineLitterBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); + newMandatoryColumn("MarineLitterCategory_Id", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, globalImportContext.getMarineLitterCategoryValueParser()); + newMandatoryColumn("MarineLitterSizeCategory_Id", MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, globalImportContext.getMarineLitterSizeCategoryValueParser()); + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationModel.java index 39f12c4..733f4e1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationModel.java @@ -27,9 +27,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.FishingOperations; -import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; @@ -77,14 +75,13 @@ public class OperationModel extends AbstractTuttiImportExportModel<OperationRow> protected void forExport() { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - - newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_NAME); + newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER); newNullableColumnForExport("EnginRankOrder", FishingOperation.PROPERTY_GEAR + "." + Gear.PROPERTY_RANK_ORDER, TuttiCsvUtil.SHORT); newColumnForExport("Navire", FishingOperation.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_FORMATTER); @@ -95,9 +92,10 @@ public class OperationModel extends AbstractTuttiImportExportModel<OperationRow> newColumnForExport("LatFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT); newColumnForExport("LongFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT); newColumnForExport("Duree", OperationRow.PROPERTY_DURATION); - newColumnForExport("Strate", FishingOperation.PROPERTY_STRATA, TuttiLocation.PROPERTY_NAME, "NA"); - newColumnForExport("Sous_Strate", FishingOperation.PROPERTY_SUB_STRATA, TuttiLocation.PROPERTY_NAME, "NA"); - newColumnForExport("Localite", FishingOperation.PROPERTY_LOCATION, TuttiLocation.PROPERTY_NAME, "NA"); + newColumnForExport("Strate", FishingOperation.PROPERTY_STRATA, TuttiCsvUtil.FISHING_OPERATION_STRATA_FORMATTER); + newColumnForExport("Sous_Strate", FishingOperation.PROPERTY_SUB_STRATA, TuttiCsvUtil.FISHING_OPERATION_SUB_STRATA_FORMATTER); + newColumnForExport("Localite", FishingOperation.PROPERTY_LOCATION, TuttiCsvUtil.FISHING_OPERATION_LOCATION_FORMATTER); + newColumnForExport("Validite_OP", FishingOperation.PROPERTY_FISHING_OPERATION_VALID, TuttiCsvUtil.BOOLEAN); newColumnForExport("Rectiligne", FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE, TuttiCsvUtil.BOOLEAN); newColumnForExport("Distance", FishingOperation.PROPERTY_TRAWL_DISTANCE, TuttiCsvUtil.INTEGER_NULL_TO_9); @@ -162,93 +160,109 @@ public class OperationModel extends AbstractTuttiImportExportModel<OperationRow> newNullableColumnForExport("Poids_Total_Macro_Dechet", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newColumnForExport("Navire_Id", FishingOperation.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_TECHNICAL_FORMATTER); + newColumnForExport("Strate_Id", FishingOperation.PROPERTY_STRATA, TuttiCsvUtil.FISHING_OPERATION_STRATA_TECHNICAL_FORMATTER); + newColumnForExport("Sous_Strate_Id", FishingOperation.PROPERTY_SUB_STRATA, TuttiCsvUtil.FISHING_OPERATION_SUB_STRATA_TECHNICAL_FORMATTER); + newColumnForExport("Localite_Id", FishingOperation.PROPERTY_LOCATION, TuttiCsvUtil.FISHING_OPERATION_LOCATION_TECHNICAL_FORMATTER); + newColumnForExport("Saisisseur_Id", FishingOperation.PROPERTY_RECORDER_PERSON, TuttiCsvUtil.LIST_PERSON_TECHNICAL_FORMATTER); + newColumnForExport("Navire_Associe_Id", FishingOperation.PROPERTY_SECONDARY_VESSEL, TuttiCsvUtil.LIST_VESSEL_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); + newIgnoredColumn("Engin"); + newIgnoredColumn("EnginRankOrder"); - newMandatoryColumn("Navire", FishingOperation.PROPERTY_VESSEL, globalImportContext.getVesselParser()); + newIgnoredColumn("Navire"); newMandatoryColumn("DateDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newMandatoryColumn("LatDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT); newMandatoryColumn("LongDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT); newMandatoryColumn("DateFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newMandatoryColumn("LatFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT); newMandatoryColumn("LongFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT); -// newColumnForExport("Duree", OperationRow.PROPERTY_DURATION); - newMandatoryColumn("Strate", FishingOperation.PROPERTY_STRATA, globalImportContext.getFishingOperationStrataParser()); - newMandatoryColumn("Sous_Strate", FishingOperation.PROPERTY_SUB_STRATA, globalImportContext.getFishingOperationSubStrataParser()); - newMandatoryColumn("Localite", FishingOperation.PROPERTY_LOCATION, globalImportContext.getFishingOperationLocationParser()); + newIgnoredColumn("Duree"); + newIgnoredColumn("Strate"); + newIgnoredColumn("Sous_Strate"); + newIgnoredColumn("Localite"); newMandatoryColumn("Validite_OP", FishingOperation.PROPERTY_FISHING_OPERATION_VALID, TuttiCsvUtil.BOOLEAN); newMandatoryColumn("Rectiligne", FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE, TuttiCsvUtil.BOOLEAN); newMandatoryColumn("Distance", FishingOperation.PROPERTY_TRAWL_DISTANCE, TuttiCsvUtil.INTEGER_NULL_TO_9); - newMandatoryColumn("Saisisseur", FishingOperation.PROPERTY_RECORDER_PERSON, globalImportContext.getListPersonParser()); - newMandatoryColumn("Navire_Associe", FishingOperation.PROPERTY_SECONDARY_VESSEL, globalImportContext.getListVesselParser()); + newIgnoredColumn("Saisisseur"); + newIgnoredColumn("Navire_Associe"); newMandatoryColumn("Commentaire", FishingOperation.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); newMandatoryColumn("Poids_Total", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newNullableColumnForExport("Poids_Total_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Calcule"); newMandatoryColumn("Poids_Total_Vrac", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Vrac_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Vrac_Calcule"); newMandatoryColumn("Poids_Total_HorsVrac", OperationRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_HorsVrac_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_HorsVrac_Calcule"); newMandatoryColumn("Poids_Total_Non_Trie", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Non_Trie_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Non_Trie_Calcule"); newMandatoryColumn("Poids_Total_Tremis", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Tremis_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Tremis_Calcule"); newMandatoryColumn("Poids_Total_Carroussel", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Carroussel_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Carroussel_Calcule"); newMandatoryColumn("Poids_Total_Espece", OperationRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_Calcule"); newMandatoryColumn("Poids_Total_Espece_Vrac", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_Vrac_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_Vrac_Calcule"); newMandatoryColumn("Poids_Total_Espece_Vrac_Trie", OperationRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_Vrac_Trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_Vrac_Trie_Calcule"); newMandatoryColumn("Poids_Total_Espece_HorsVrac", OperationRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_HorsVrac_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_HorsVrac_Calcule"); newMandatoryColumn("Poids_Total_Espece_Inerte_Trie", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_Inerte_Trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_Inerte_Trie_Calcule"); newMandatoryColumn("Poids_Total_Espece_Vivant_non_detaille_trie", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule"); newMandatoryColumn("Poids_Total_Benthos", OperationRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_Calcule"); newMandatoryColumn("Poids_Total_Benthos_Vrac", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_Vrac_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_Vrac_Calcule"); newMandatoryColumn("Poids_Total_Benthos_Vrac_Trie", OperationRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_Vrac_Trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_Vrac_Trie_Calcule"); newMandatoryColumn("Poids_Total_Benthos_HorsVrac", OperationRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_HorsVrac_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_HorsVrac_Calcule"); newMandatoryColumn("Poids_Total_Benthos_Inerte_Trie", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_Inerte_Trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_Inerte_Trie_Calcule"); newMandatoryColumn("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newMandatoryColumn("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule"); newMandatoryColumn("Poids_Total_Macro_Dechet", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); -// newNullableColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + newIgnoredColumn("Poids_Total_Macro_Dechet_Calcule"); + + newMandatoryColumn("Navire_Id", FishingOperation.PROPERTY_VESSEL, globalImportContext.getVesselParser()); + newMandatoryColumn("Strate_Id", FishingOperation.PROPERTY_STRATA, globalImportContext.getFishingOperationStrataParser()); + newMandatoryColumn("Sous_Strate_Id", FishingOperation.PROPERTY_SUB_STRATA, globalImportContext.getFishingOperationSubStrataParser()); + newMandatoryColumn("Localite_Id", FishingOperation.PROPERTY_LOCATION, globalImportContext.getFishingOperationLocationParser()); + newMandatoryColumn("Saisisseur_Id", FishingOperation.PROPERTY_RECORDER_PERSON, globalImportContext.getListPersonParser()); + newMandatoryColumn("Navire_Associe_Id", FishingOperation.PROPERTY_SECONDARY_VESSEL, globalImportContext.getListVesselParser()); } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/ParameterModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/ParameterModel.java index 4128b72..4743096 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/ParameterModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/ParameterModel.java @@ -25,11 +25,10 @@ package fr.ifremer.tutti.service.genericformat.csv; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.service.DecoratorService; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; /** @@ -72,32 +71,36 @@ public class ParameterModel extends AbstractTuttiImportExportModel<ParameterRow> protected void forExport(DecoratorService decoratorService) { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); + newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newColumnForExport("Code_PMFM", ParameterRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); + newColumnForExport("Code_PMFM", ParameterRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); newColumnForExportByDecorator("Libelle_PMFM", ParameterRow.PROPERTY_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); newColumnForExport("Valeur", ParameterRow.PROPERTY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newColumnForExport("Valeur_Id", ParameterRow.PROPERTY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER); newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); - newMandatoryColumn("Engin", FishingOperation.PROPERTY_GEAR, globalImportContext.getOptionalGearParser()); newMandatoryColumn("Code_PMFM", ParameterRow.PROPERTY_CARACTERISTIC, globalImportContext.getCaracteristicParser()); -// newMandatoryColumn("Libelle_PMFM", ParameterRow.PROPERTY_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); - newMandatoryColumn("Valeur", ParameterRow.PROPERTY_VALUE); + newIgnoredColumn("Libelle_PMFM"); + newIgnoredColumn("Valeur"); + + newMandatoryColumn("Valeur_Id", ParameterRow.PROPERTY_VALUE); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SpeciesExportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SpeciesExportModel.java index 2f10039..b7d0ae8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SpeciesExportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SpeciesExportModel.java @@ -22,9 +22,8 @@ package fr.ifremer.tutti.service.genericformat.csv; * #L% */ -import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; /** * To export a species used in data to export. @@ -42,21 +41,25 @@ public class SpeciesExportModel extends AbstractTuttiImportExportModel<SpeciesEx } + @Override + public SpeciesExportRow newEmptyInstance() { + + SpeciesExportRow row = new SpeciesExportRow(); + return row; + + } + protected SpeciesExportModel(char separator) { super(separator); } protected void forExport() { - newColumnForExport("ReferenceTaxonId", SpeciesExportRow.SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); - newColumnForExport("Code_Rubin", SpeciesExportRow.SPECIES + "." + Species.PROPERTY_REF_TAX_CODE); - newColumnForExport("Nom_Scientifique", SpeciesExportRow.SPECIES + "." + Species.PROPERTY_NAME); - newColumnForExport("Code_campagne", SpeciesExportRow.SPECIES + "." + Species.PROPERTY_SURVEY_CODE); + newColumnForExport("ReferenceTaxonId", SpeciesExportRow.SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newColumnForExport("Code_Rubin", SpeciesExportRow.SPECIES, TuttiCsvUtil.SPECIES_REF_TAX_CODE_FORMATTER); + newColumnForExport("Nom_Scientifique", SpeciesExportRow.SPECIES, TuttiCsvUtil.SPECIES_NAME_FORMATTER); + newColumnForExport("Code_campagne", SpeciesExportRow.SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER); } - @Override - public SpeciesExportRow newEmptyInstance() { - return new SpeciesExportRow(); - } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SurveyModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SurveyModel.java index a4f038d..c46da8a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SurveyModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/SurveyModel.java @@ -25,9 +25,8 @@ package fr.ifremer.tutti.service.genericformat.csv; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.genericformat.GlobalImportContext; /** @@ -54,6 +53,16 @@ public class SurveyModel extends AbstractTuttiImportExportModel<SurveyRow> { } + @Override + public SurveyRow newEmptyInstance() { + + Cruise cruise = Cruises.newCruise(); + SurveyRow row = new SurveyRow(); + row.setCruise(cruise); + return row; + + } + protected SurveyModel(char separator) { super(separator); } @@ -61,49 +70,50 @@ public class SurveyModel extends AbstractTuttiImportExportModel<SurveyRow> { protected void forExport() { newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); + newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_FORMATTER); - newColumnForExport("Pays", SurveyRow.PROPERTY_COUNTRY, TuttiLocation.PROPERTY_LABEL); - newColumnForExport("Zone_Etude", Program.PROPERTY_ZONE, TuttiLocation.PROPERTY_NAME); + newColumnForExport("Pays", SurveyRow.PROPERTY_COUNTRY, TuttiCsvUtil.COUNTRY_FORMATTER); + newColumnForExport("Zone_Etude", Program.PROPERTY_ZONE, TuttiCsvUtil.PROGRAM_ZONE_FORMATTER); newColumnForExport("Campagne", Cruise.PROPERTY_NAME); newColumnForExport("Id_Sismer", SurveyRow.PROPERTY_ID_SISMER); newColumnForExport("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND); - newColumnForExport("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiLocation.PROPERTY_NAME); + newColumnForExport("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiCsvUtil.HARBOUR_FORMATTER); newColumnForExport("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND); - newColumnForExport("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, TuttiLocation.PROPERTY_NAME); + newColumnForExport("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, TuttiCsvUtil.HARBOUR_FORMATTER); newColumnForExport("Chef_Mission", Cruise.PROPERTY_HEAD_OF_MISSION, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Resp_Salle_Tri", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Commentaire", Cruise.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); + newColumnForExport("Navire_Id", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_TECHNICAL_FORMATTER); + newColumnForExport("Port_Deb_Campagne_Id", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiCsvUtil.HARBOUR_TECHNICAL_FORMATTER); + newColumnForExport("Port_Fin_Campagne_Id", Cruise.PROPERTY_RETURN_LOCATION, TuttiCsvUtil.HARBOUR_TECHNICAL_FORMATTER); + newColumnForExport("Chef_Mission_Id", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.LIST_PERSON_TECHNICAL_FORMATTER); + newColumnForExport("Resp_Salle_Tri_Id", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.LIST_PERSON_TECHNICAL_FORMATTER); + } protected void forImport(GlobalImportContext globalImportContext) { newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR); - newMandatoryColumn("Serie", Cruise.PROPERTY_PROGRAM, globalImportContext.getProgramParser()); + newIgnoredColumn("Serie"); newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); - - newMandatoryColumn("Navire", Cruise.PROPERTY_VESSEL, globalImportContext.getVesselParser()); + newIgnoredColumn("Navire"); newMandatoryColumn("Campagne", Cruise.PROPERTY_NAME); newMandatoryColumn("Id_Sismer", SurveyRow.PROPERTY_ID_SISMER); newMandatoryColumn("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND); - newMandatoryColumn("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, globalImportContext.getHarbourParser()); + newIgnoredColumn("Port_Deb_Campagne"); newMandatoryColumn("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND); - newMandatoryColumn("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, globalImportContext.getHarbourParser()); - newMandatoryColumn("Chef_Mission", Cruise.PROPERTY_HEAD_OF_MISSION, globalImportContext.getListPersonParser()); - newMandatoryColumn("Resp_Salle_Tri", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, globalImportContext.getListPersonParser()); + newIgnoredColumn("Port_Fin_Campagne"); + newIgnoredColumn("Chef_Mission"); + newIgnoredColumn("Resp_Salle_Tri"); newMandatoryColumn("Commentaire", Cruise.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER); - } - - @Override - public SurveyRow newEmptyInstance() { - - Cruise cruise = Cruises.newCruise(); - SurveyRow surveyRow = new SurveyRow(); - surveyRow.setCruise(cruise); - return surveyRow; + newMandatoryColumn("Navire_Id", Cruise.PROPERTY_VESSEL, globalImportContext.getVesselParser()); + newMandatoryColumn("Port_Deb_Campagne_Id", Cruise.PROPERTY_DEPARTURE_LOCATION, globalImportContext.getHarbourParser()); + newMandatoryColumn("Port_Fin_Campagne_Id", Cruise.PROPERTY_RETURN_LOCATION, globalImportContext.getHarbourParser()); + newMandatoryColumn("Chef_Mission_Id", Cruise.PROPERTY_PROGRAM, globalImportContext.getListPersonParser()); + newMandatoryColumn("Resp_Salle_Tri_Id", Cruise.PROPERTY_PROGRAM, globalImportContext.getListPersonParser()); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.