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 80507ac0d36bdbba8459d21b5104bd4805b086f6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Feb 8 14:44:45 2015 +0100 use same parser formatter + clean multipost code --- .../catches/multipost/AccidentalCatchRowModel.java | 48 ++++------- .../catches/multipost/AttachmentRowModel.java | 1 - .../catches/multipost/CaracteristicRowModel.java | 18 ++-- .../catches/multipost/CatchFrequencyRowModel.java | 20 ++--- .../service/catches/multipost/CatchRowModel.java | 30 ++----- .../catches/multipost/CatchWeightsRowModel.java | 10 +-- .../multipost/IndividualObservationRowModel.java | 29 ++----- .../catches/multipost/MarineLitterRowModel.java | 32 ++----- .../multipost/MarineLitterWeightRowModel.java | 3 +- .../catches/multipost/MultiPostImportService.java | 97 +++++++++++++--------- .../csv/AbstractTuttiImportExportModel.java | 19 ++--- .../service/csv/AbstractTuttiImportModel.java | 8 +- .../csv/CaracteristicValueTechnicalFormatter.java | 43 ++++++++++ .../csv/CaracteristicValueTechnicalParser.java | 56 +++++++++++++ ...lue.java => ForeignKeyListParserFormatter.java} | 10 +-- ...eyValue.java => ForeignKeyParserFormatter.java} | 6 +- .../fr/ifremer/tutti/service/csv/TuttiCsvUtil.java | 73 ++-------------- .../operationimport/ImportFromColumnFileModel.java | 14 ++-- .../tutti/service/protocol/SpeciesRowModel.java | 4 +- 19 files changed, 244 insertions(+), 277 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java index c15f738..d488299 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java @@ -23,10 +23,10 @@ package fr.ifremer.tutti.service.catches.multipost; */ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; 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.CaracteristicValueTechnicalParser; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import java.util.List; @@ -44,48 +44,28 @@ public class AccidentalCatchRowModel extends AbstractTuttiImportExportModel<Acci public AccidentalCatchRowModel(char separator, List<Species> species, - List<CaracteristicQualitativeValue> genderValues, - List<Caracteristic> lengthStepCaracteristics, - List<CaracteristicQualitativeValue> deadOrAliveValues) { + Caracteristic sexCaracteristic, + Caracteristic dedOrAliveCaracteristic, + List<Caracteristic> lengthStepCaracteristics) { super(separator); newColumnForImportExport(AccidentalCatchRow.BATCH_ID); - newColumnForExport(AccidentalCatchRow.SPECIES, - TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER); - - newSpeciesForeignKeyColumn(AccidentalCatchRow.SPECIES, - Species.PROPERTY_REFERENCE_TAXON_ID, - species); + newColumnForExport(AccidentalCatchRow.SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newSpeciesForeignKeyColumn(AccidentalCatchRow.SPECIES, species); - newColumnForExport(AccidentalCatchRow.GENDER, - TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER); + newColumnForExport(AccidentalCatchRow.GENDER, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newMandatoryColumn(AccidentalCatchRow.GENDER, new CaracteristicValueTechnicalParser(sexCaracteristic)); - newForeignKeyColumn(AccidentalCatchRow.GENDER, - CaracteristicQualitativeValue.class, - CaracteristicQualitativeValue.PROPERTY_ID, - genderValues); - - newColumnForImportExport(AccidentalCatchRow.WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(AccidentalCatchRow.WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); newColumnForImportExport(AccidentalCatchRow.SIZE, TuttiCsvUtil.FLOAT); - newColumnForExport(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC, - TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER); - - newForeignKeyColumn(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC, - Caracteristic.class, - Caracteristic.PROPERTY_ID, - lengthStepCaracteristics); - - newColumnForExport(AccidentalCatchRow.DEAD_OR_ALIVE, - TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER); + newColumnForExport(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); + newForeignKeyColumn(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC, Caracteristic.class, lengthStepCaracteristics); - newForeignKeyColumn(AccidentalCatchRow.DEAD_OR_ALIVE, - CaracteristicQualitativeValue.class, - CaracteristicQualitativeValue.PROPERTY_ID, - deadOrAliveValues); + newColumnForExport(AccidentalCatchRow.DEAD_OR_ALIVE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newMandatoryColumn(AccidentalCatchRow.DEAD_OR_ALIVE, new CaracteristicValueTechnicalParser(dedOrAliveCaracteristic)); newColumnForImportExport(AccidentalCatchRow.COMMENT); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AttachmentRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AttachmentRowModel.java index 0014bb2..566e08d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AttachmentRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AttachmentRowModel.java @@ -56,7 +56,6 @@ public class AttachmentRowModel extends AbstractTuttiImportExportModel<Attachmen return value != null ? value.getName() : null; } }); - newMandatoryColumn(AttachmentRow.ATTACHMENT_FILE, new ValueParser<File>() { @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java index 4b90e05..fc85175 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java @@ -23,8 +23,8 @@ package fr.ifremer.tutti.service.catches.multipost; */ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import java.util.List; @@ -38,23 +38,15 @@ public class CaracteristicRowModel extends AbstractTuttiImportExportModel<Caract this(separator, null); } - public CaracteristicRowModel(char separator, - List<Caracteristic> caracteristics) { + public CaracteristicRowModel(char separator, List<Caracteristic> caracteristics) { super(separator); newColumnForImportExport(CaracteristicRow.BATCH_ID); - newColumnForExport(CaracteristicRow.CARACTERISTIC, - TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER); - - newForeignKeyColumn(CaracteristicRow.CARACTERISTIC, - Caracteristic.class, - Caracteristic.PROPERTY_ID, - caracteristics); - - newColumnForExport(CaracteristicRow.VALUE, - TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER2); + newColumnForExport(CaracteristicRow.CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); + newForeignKeyColumn(CaracteristicRow.CARACTERISTIC, Caracteristic.class, caracteristics); + newColumnForExport(CaracteristicRow.VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); newMandatoryColumn(CaracteristicRow.VALUE, TuttiCsvUtil.STRING); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java index 3331f48..73f5a08 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java @@ -23,8 +23,8 @@ package fr.ifremer.tutti.service.catches.multipost; */ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import java.util.List; @@ -45,22 +45,14 @@ public class CatchFrequencyRowModel extends AbstractTuttiImportExportModel<Catch newColumnForImportExport(CatchFrequencyRow.BATCH_ID); - newColumnForExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, - TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER); - - newForeignKeyColumn(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, - Caracteristic.class, - Caracteristic.PROPERTY_ID, - caracteristics); + newColumnForExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); + newForeignKeyColumn(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC, Caracteristic.class, caracteristics); - newColumnForImportExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP, - TuttiCsvUtil.FLOAT); + newColumnForImportExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP, TuttiCsvUtil.FLOAT); - newColumnForImportExport(CatchFrequencyRow.FREQUENCY_NUMBER, - TuttiCsvUtil.INTEGER); + newColumnForImportExport(CatchFrequencyRow.FREQUENCY_NUMBER, TuttiCsvUtil.INTEGER); - newColumnForImportExport(CatchFrequencyRow.FREQUENCY_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(CatchFrequencyRow.FREQUENCY_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java index 9014d90..9852f33 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java @@ -47,35 +47,23 @@ public class CatchRowModel extends AbstractTuttiImportExportModel<CatchRow> { newColumnForImportExport(CatchRow.PARENT_ID); - newColumnForExport(CatchRow.SPECIES, - TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER); + newColumnForExport(CatchRow.SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newSpeciesForeignKeyColumn(CatchRow.SPECIES, species); - newSpeciesForeignKeyColumn(CatchRow.SPECIES, - Species.PROPERTY_REFERENCE_TAXON_ID, - species); + newColumnForImportExport(CatchRow.CATEGORY_ID, TuttiCsvUtil.INTEGER); - newColumnForImportExport(CatchRow.CATEGORY_ID, - TuttiCsvUtil.INTEGER); + newColumnForExport(CatchRow.CATEGORY_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newMandatoryColumn(CatchRow.CATEGORY_VALUE, TuttiCsvUtil.STRING); - newColumnForExport(CatchRow.CATEGORY_VALUE, - TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER2); + newColumnForImportExport(CatchRow.CATEGORY_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - newMandatoryColumn(CatchRow.CATEGORY_VALUE, - TuttiCsvUtil.STRING); + newColumnForImportExport(CatchRow.WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - newColumnForImportExport(CatchRow.CATEGORY_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - - newColumnForImportExport(CatchRow.WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - - newColumnForImportExport(CatchRow.NUMBER, - TuttiCsvUtil.INTEGER); + newColumnForImportExport(CatchRow.NUMBER, TuttiCsvUtil.INTEGER); newColumnForImportExport(CatchRow.COMMENT); - newColumnForImportExport(CatchRow.TO_CONFIRM, - TuttiCsvUtil.PRIMITIVE_BOOLEAN); + newColumnForImportExport(CatchRow.TO_CONFIRM, TuttiCsvUtil.PRIMITIVE_BOOLEAN); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java index 569739a..58421b8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java @@ -33,12 +33,10 @@ public class CatchWeightsRowModel extends AbstractFishingOperationRowModel<Catch public CatchWeightsRowModel(char separator) { super(separator); - newColumnForImportExport(CatchWeightsRow.TOTAL_SORTED_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - newColumnForImportExport(CatchWeightsRow.INERT_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - newColumnForImportExport(CatchWeightsRow.LIVING_NOT_ITEMIZED_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(CatchWeightsRow.TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(CatchWeightsRow.INERT_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(CatchWeightsRow.LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + } @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java index ff35722..f7209aa 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java @@ -24,8 +24,8 @@ package fr.ifremer.tutti.service.catches.multipost; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; 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 java.util.List; @@ -41,33 +41,20 @@ public class IndividualObservationRowModel extends AbstractTuttiImportExportMode this(separator, null, null); } - public IndividualObservationRowModel(char separator, - List<Species> species, - List<Caracteristic> lengthStepCaracteristics) { + public IndividualObservationRowModel(char separator, List<Species> species, List<Caracteristic> lengthStepCaracteristics) { super(separator); newColumnForImportExport(IndividualObservationRow.BATCH_ID); - newColumnForExport(IndividualObservationRow.SPECIES, - TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER); - - newSpeciesForeignKeyColumn(IndividualObservationRow.SPECIES, - Species.PROPERTY_REFERENCE_TAXON_ID, - species); - - newColumnForImportExport(IndividualObservationRow.WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForExport(IndividualObservationRow.SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER); + newSpeciesForeignKeyColumn(IndividualObservationRow.SPECIES, species); - newColumnForImportExport(IndividualObservationRow.SIZE, - TuttiCsvUtil.FLOAT); + newColumnForImportExport(IndividualObservationRow.WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); - newColumnForExport(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC, - TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER); + newColumnForImportExport(IndividualObservationRow.SIZE, TuttiCsvUtil.FLOAT); - newForeignKeyColumn(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC, - Caracteristic.class, - Caracteristic.PROPERTY_ID, - lengthStepCaracteristics); + newColumnForExport(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER); + newForeignKeyColumn(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC, Caracteristic.class, lengthStepCaracteristics); newColumnForImportExport(IndividualObservationRow.COMMENT); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java index 628230d..53ad530 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java @@ -22,11 +22,10 @@ package fr.ifremer.tutti.service.catches.multipost; * #L% */ -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; -import fr.ifremer.tutti.service.csv.TuttiCsvUtil; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; - -import java.util.List; +import fr.ifremer.tutti.service.csv.CaracteristicValueTechnicalParser; +import fr.ifremer.tutti.service.csv.TuttiCsvUtil; /** * @author kmorin <morin@codelutin.com> @@ -38,33 +37,20 @@ public class MarineLitterRowModel extends AbstractTuttiImportExportModel<MarineL this(separator, null, null); } - public MarineLitterRowModel(char separator, - List<CaracteristicQualitativeValue> categoryValues, - List<CaracteristicQualitativeValue> sizeCategoryValues) { + public MarineLitterRowModel(char separator, Caracteristic categoryCaracteristic, Caracteristic sizeCategoryCaracteristic) { super(separator); newColumnForImportExport(MarineLitterRow.BATCH_ID); - newColumnForExport(MarineLitterRow.CATEGORY, - TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER); - - newForeignKeyColumn(MarineLitterRow.CATEGORY, - CaracteristicQualitativeValue.class, - CaracteristicQualitativeValue.PROPERTY_ID, - categoryValues); - - newColumnForExport(MarineLitterRow.SIZE_CATEGORY, - TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER); + newColumnForExport(MarineLitterRow.CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newMandatoryColumn(MarineLitterRow.CATEGORY, new CaracteristicValueTechnicalParser(categoryCaracteristic)); - newForeignKeyColumn(MarineLitterRow.SIZE_CATEGORY, - CaracteristicQualitativeValue.class, - CaracteristicQualitativeValue.PROPERTY_ID, - sizeCategoryValues); + newColumnForExport(MarineLitterRow.SIZE_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER); + newMandatoryColumn(MarineLitterRow.SIZE_CATEGORY, new CaracteristicValueTechnicalParser(sizeCategoryCaracteristic)); newColumnForImportExport(MarineLitterRow.NUMBER, TuttiCsvUtil.INTEGER); - newColumnForImportExport(MarineLitterRow.WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(MarineLitterRow.WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); newColumnForImportExport(MarineLitterRow.COMMENT); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java index 64ff121..dbe1306 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java @@ -33,8 +33,7 @@ public class MarineLitterWeightRowModel extends AbstractFishingOperationRowModel public MarineLitterWeightRowModel(char separator) { super(separator); - newColumnForImportExport(MarineLitterWeightRow.TOTAL_WEIGHT, - TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); + newColumnForImportExport(MarineLitterWeightRow.TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_PARSER_FORMATTER); } @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java index 856ec9d..61b3c11 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java @@ -53,7 +53,6 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.AbstractTuttiService; @@ -61,6 +60,7 @@ import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiDataContext; import fr.ifremer.tutti.service.TuttiServiceContext; +import fr.ifremer.tutti.service.csv.CaracteristicValueTechnicalParser; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -68,10 +68,12 @@ import org.apache.commons.lang3.tuple.Pair; import org.nuiton.csv.Import; import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.ApplicationIOUtil; +import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.Reader; import java.io.Serializable; +import java.text.ParseException; import java.util.Calendar; import java.util.Date; import java.util.Iterator; @@ -845,18 +847,20 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult BatchContainer<MarineLitterBatch> marineLitterBatches = persistenceService.getRootMarineLitterBatch(operationId); - List<CaracteristicQualitativeValue> categoryValues = - persistenceService.getMarineLitterCategoryCaracteristic().getQualitativeValue(); - List<CaracteristicQualitativeValue> sizeCategoryValues = - persistenceService.getMarineLitterSizeCategoryCaracteristic().getQualitativeValue(); + + Caracteristic marineLitterCategoryCaracteristic = + persistenceService.getMarineLitterCategoryCaracteristic(); + Caracteristic marineLitterSizeCategoryCaracteristic = + persistenceService.getMarineLitterSizeCategoryCaracteristic(); // Import batches // map containing the batches by their persistence id + final Map<String, MarineLitterBatch> batches = importMarineLitterBatches( tempDir, operation, - categoryValues, - sizeCategoryValues, + marineLitterCategoryCaracteristic, + marineLitterSizeCategoryCaracteristic, marineLitterBatches, notImportedBatches); @@ -884,8 +888,8 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult } protected Map<String, MarineLitterBatch> importMarineLitterBatches(File file, FishingOperation operation, - List<CaracteristicQualitativeValue> categoryValues, - List<CaracteristicQualitativeValue> sizeCategoryValues, + Caracteristic categoryCaracteristic, + Caracteristic sizeCategoryCaracteristic, BatchContainer<MarineLitterBatch> marineLitterBatches, Map<String, MarineLitterBatch> notImportedBatches) { @@ -898,8 +902,8 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult try { MarineLitterRowModel csvModel = new MarineLitterRowModel(MultiPostExportService.CSV_SEPARATOR, - categoryValues, - sizeCategoryValues); + categoryCaracteristic, + sizeCategoryCaracteristic); Import<MarineLitterRow> importer = Import.newImport(csvModel, reader); @@ -1105,17 +1109,22 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult IndividualObservationBatch batch = batches.get(caracteristicRow.getBatchId()); if (batch != null) { Caracteristic caracteristic = caracteristicRow.getCaracteristic(); + CaracteristicValueTechnicalParser parser = new CaracteristicValueTechnicalParser(caracteristic); Serializable value = caracteristicRow.getValue(); - - switch (caracteristic.getCaracteristicType()) { - case QUALITATIVE: - value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); - break; - - case NUMBER: - value = Float.parseFloat(value.toString()); - break; + try { + parser.parse(String.valueOf(value)); + } catch (ParseException e) { + throw new ApplicationTechnicalException("Could not parse caracteristic value: " + value, e); } +// switch (caracteristic.getCaracteristicType()) { +// case QUALITATIVE: +// value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); +// break; +// +// case NUMBER: +// value = Float.parseFloat(value.toString()); +// break; +// } CaracteristicMap map = batch.getCaracteristics(); map.put(caracteristic, value); } @@ -1161,19 +1170,20 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult TuttiDataContext dataContext = context.getDataContext(); List<Species> speciesList = dataContext.getReferentSpecies(); - List<CaracteristicQualitativeValue> genderValues = dataContext.getGenderValues(); List<Caracteristic> caracteristics = dataContext.getCaracteristicWithProtected(); - List<CaracteristicQualitativeValue> dedOrAliveValues = dataContext.getDeadOrAliveValues(); + + Caracteristic sexCaracteristic = persistenceService.getSexCaracteristic(); + Caracteristic deadOrAliveCaracteristic = persistenceService.getDeadOrAliveCaracteristic(); // Import batches // map containing the batches by their persistence id - final Map<String, AccidentalBatch> batches = importAccidentalCatchesBatches( + Map<String, AccidentalBatch> batches = importAccidentalCatchesBatches( tempDir, operation, + sexCaracteristic, + deadOrAliveCaracteristic, speciesList, - genderValues, - caracteristics, - dedOrAliveValues + caracteristics ); // Import caracteristics @@ -1199,10 +1209,10 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult protected Map<String, AccidentalBatch> importAccidentalCatchesBatches(File file, FishingOperation operation, + Caracteristic sexCaracteristic, + Caracteristic dedOrAliveCaracteristic, List<Species> speciesList, - List<CaracteristicQualitativeValue> genderValues, - List<Caracteristic> caracteristics, - List<CaracteristicQualitativeValue> dedOrAliveValues) { + List<Caracteristic> caracteristics) { Map<String, AccidentalBatch> batches = Maps.newLinkedHashMap(); @@ -1214,9 +1224,9 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult AccidentalCatchRowModel csvModel = new AccidentalCatchRowModel(MultiPostExportService.CSV_SEPARATOR, speciesList, - genderValues, - caracteristics, - dedOrAliveValues); + sexCaracteristic, + dedOrAliveCaracteristic, caracteristics + ); Import<AccidentalCatchRow> importer = Import.newImport(csvModel, reader); @@ -1270,17 +1280,22 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult AccidentalBatch batch = batches.get(caracteristicRow.getBatchId()); if (batch != null) { Caracteristic caracteristic = caracteristicRow.getCaracteristic(); + CaracteristicValueTechnicalParser parser = new CaracteristicValueTechnicalParser(caracteristic); Serializable value = caracteristicRow.getValue(); - - switch (caracteristic.getCaracteristicType()) { - case QUALITATIVE: - value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); - break; - - case NUMBER: - value = Float.parseFloat(value.toString()); - break; + try { + parser.parse(String.valueOf(value)); + } catch (ParseException e) { + throw new ApplicationTechnicalException("Could not parse caracteristic value: " + value, e); } +// switch (caracteristic.getCaracteristicType()) { +// case QUALITATIVE: +// value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, value.toString()); +// break; +// +// case NUMBER: +// value = Float.parseFloat(value.toString()); +// break; +// } CaracteristicMap map = batch.getCaracteristics(); map.put(caracteristic, value); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportExportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportExportModel.java index 09148ef..6601161 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportExportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportExportModel.java @@ -44,32 +44,23 @@ public abstract class AbstractTuttiImportExportModel<M> extends AbstractImportEx } public <E extends TuttiEntity> void newForeignKeyColumn(String headerName, String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(headerName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe)); + newMandatoryColumn(headerName, propertyName, new ForeignKeyParserFormatter<>(entityType, foreignKeyName, universe)); } - public <E extends TuttiEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) { - newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe)); - } - - public void newSpeciesForeignKeyColumn(String propertyName, String foreignKeyName, List<Species> species) { + public void newSpeciesForeignKeyColumn(String propertyName, List<Species> species) { if (species == null) { species = Lists.newArrayList(); } Map<String, Species> universe = Speciess.splitByReferenceTaxonId(species); - newForeignKeyColumn(propertyName, Species.class, foreignKeyName, universe); + newMandatoryColumn(propertyName, propertyName, new ForeignKeyParserFormatter<>(Species.class, Species.PROPERTY_REFERENCE_TAXON_ID, universe)); } - public <E extends TuttiEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, List<E> list) { + public <E extends TuttiEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, List<E> list) { if (list == null) { list = Lists.newArrayList(); } -// Map<String, E> universe = Maps.uniqueIndex(list, TuttiEntities.GET_ID); Map<String, E> universe = TuttiEntities.splitById(list); - newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe)); - } - - public <E extends TuttiEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyValue<E>(type, propertyName, universe); + newMandatoryColumn(propertyName, propertyName, new ForeignKeyParserFormatter<>(entityType, TuttiEntity.PROPERTY_ID, universe)); } public <T> ExportableColumn<M, T> newNullableColumnForExport(String headerName, String propertyName, ValueFormatter<T> valueFormatter) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportModel.java index 9a6f4ff..18e9c1b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/AbstractTuttiImportModel.java @@ -17,12 +17,12 @@ public abstract class AbstractTuttiImportModel<M> extends AbstractImportModel<M> super(separator); } - public <E extends TuttiEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyValue<E>(type, propertyName, universe); + public <E extends TuttiEntity> ForeignKeyParserFormatter<E> newForeignKeyParserFormatter(Class<E> type, String propertyName, Map<String, E> universe) { + return new ForeignKeyParserFormatter<E>(type, propertyName, universe); } - public <E extends TuttiEntity> ForeignKeyListValue<E> newForeignKeyListValue(Class<E> type, String propertyName, Map<String, E> universe) { - return new ForeignKeyListValue<E>(type, propertyName, universe); + public <E extends TuttiEntity> ForeignKeyListParserFormatter<E> newForeignKeyListParserFormatter(Class<E> type, String propertyName, Map<String, E> universe) { + return new ForeignKeyListParserFormatter<E>(type, propertyName, universe); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalFormatter.java new file mode 100644 index 0000000..69d71bf --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalFormatter.java @@ -0,0 +1,43 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import org.nuiton.csv.Common; +import org.nuiton.csv.ValueFormatter; +import org.nuiton.csv.ValueParserFormatter; + +import java.io.Serializable; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class CaracteristicValueTechnicalFormatter implements ValueFormatter<Serializable> { + + ValueParserFormatter<Integer> integerDelegate = Common.INTEGER; + + ValueParserFormatter<Float> floatDelegate = Common.FLOAT; + + ValueParserFormatter<String> textDelegate = Common.STRING; + + @Override + public String format(Serializable value) { + if (value == null) { + return "NA"; + } + if (value instanceof Float) { + return floatDelegate.format((Float) value); + } + if (value instanceof Integer) { + return integerDelegate.format((Integer) value); + } + if (value instanceof String) { + return textDelegate.format((String) value); + } + // qualitive value + CaracteristicQualitativeValue qv = (CaracteristicQualitativeValue) value; + String result = qv.getId(); + return result; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalParser.java new file mode 100644 index 0000000..bfcdd3c --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicValueTechnicalParser.java @@ -0,0 +1,56 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristics; +import org.nuiton.csv.Common; +import org.nuiton.csv.ValueParser; +import org.nuiton.csv.ValueParserFormatter; + +import java.io.Serializable; +import java.text.ParseException; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class CaracteristicValueTechnicalParser implements ValueParser<Serializable> { + + private final Caracteristic caracteristic; + + ValueParserFormatter<Float> floatDelegate = Common.FLOAT; + + ValueParserFormatter<String> textDelegate = Common.STRING; + + public CaracteristicValueTechnicalParser(Caracteristic caracteristic) { + this.caracteristic = caracteristic; + } + + @Override + public Serializable parse(String value) throws ParseException { + + Serializable result; + + if ("NA".equals(value)) { + + result = null; + + } else if (Caracteristics.isNumberCaracteristic(caracteristic)) { + + result = floatDelegate.parse(value); + + } else if (Caracteristics.isTextCaracteristic(caracteristic)) { + + result = value; + + } else { + + // qualitative value + result = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, value); + + } + return result; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListValue.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListParserFormatter.java similarity index 82% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListValue.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListParserFormatter.java index 7242e35..0b151ff 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListValue.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyListParserFormatter.java @@ -17,7 +17,7 @@ import static org.nuiton.i18n.I18n.t; * @author kmorin <morin@codelutin.com> * @since 3.10 */ -public class ForeignKeyListValue<E extends TuttiEntity> implements ValueParserFormatter<List<E>> { +public class ForeignKeyListParserFormatter<E extends TuttiEntity> implements ValueParserFormatter<List<E>> { public static final String LIST_SEPARATOR = ","; @@ -27,9 +27,7 @@ public class ForeignKeyListValue<E extends TuttiEntity> implements ValueParserFo protected final Map<String, E> universe; - public ForeignKeyListValue(Class<E> entityType, - String propertyName, - Map<String, E> universe) { + public ForeignKeyListParserFormatter(Class<E> entityType, String propertyName, Map<String, E> universe) { this.entityType = entityType; this.propertyName = propertyName; this.universe = universe; @@ -37,7 +35,7 @@ public class ForeignKeyListValue<E extends TuttiEntity> implements ValueParserFo @Override public List<E> parse(String value) throws ParseException { - List<E> result = new ArrayList<E>(); + List<E> result = new ArrayList<>(); if (StringUtils.isNotBlank(value)) { String[] ids = value.split(LIST_SEPARATOR); @@ -59,7 +57,7 @@ public class ForeignKeyListValue<E extends TuttiEntity> implements ValueParserFo @Override public String format(List<E> e) { - List<String> ids = new ArrayList<String>(); + List<String> ids = new ArrayList<>(); for (E entity : e) { if (entity != null) { ids.add(entity.getId()); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyValue.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyParserFormatter.java similarity index 85% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyValue.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyParserFormatter.java index 9bc5bb8..95bacf9 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyValue.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ForeignKeyParserFormatter.java @@ -15,7 +15,7 @@ import static org.nuiton.i18n.I18n.t; * @author tchemit <chemit@codelutin.com> * @since 1.0 */ -public class ForeignKeyValue<E extends TuttiEntity> implements ValueParserFormatter<E> { +public class ForeignKeyParserFormatter<E extends TuttiEntity> implements ValueParserFormatter<E> { protected final String propertyName; @@ -23,9 +23,7 @@ public class ForeignKeyValue<E extends TuttiEntity> implements ValueParserFormat protected final Map<String, E> universe; - public ForeignKeyValue(Class<E> entityType, - String propertyName, - Map<String, E> universe) { + public ForeignKeyParserFormatter(Class<E> entityType, String propertyName, Map<String, E> universe) { this.entityType = entityType; this.propertyName = propertyName; this.universe = universe; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java index e8db3f1..d3c219a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java @@ -25,7 +25,6 @@ package fr.ifremer.tutti.service.csv; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -80,28 +79,6 @@ public class TuttiCsvUtil extends Common { } }; - public static final ValueParserFormatter<Float> FLOAT_NULL_TO_9 = - new FloatParserFormatter(-9f, true) { - @Override - public String format(Float value) { - if (value == null) { - // if value is null then use the default value - value = defaultValue; - } - return super.format(value); - } - - @Override - protected Float parseNoneEmptyValue(String value) { - Float aFloat = super.parseNoneEmptyValue(value); - if (defaultValue.equals(aFloat)) { - // if having -9, then value is null - aFloat = null; - } - return aFloat; - } - }; - public static final ValueParserFormatter<Integer> INTEGER_NULL_TO_9 = new IntegerParserFormatter(-9, true) { @Override @@ -166,20 +143,6 @@ public class TuttiCsvUtil extends Common { } }; - public static final ValueFormatter<Caracteristic> CARACTERISTIC_ID_FORMATTER = new ValueFormatter<Caracteristic>() { - @Override - public String format(Caracteristic value) { - return value != null ? value.getId() : ""; - } - }; - - public static final ValueFormatter<Species> SPECIES_REFERENCE_TAXON_ID_FORMATTER = new ValueFormatter<Species>() { - @Override - public String format(Species value) { - return value != null ? String.valueOf(value.getReferenceTaxonId()) : null; - } - }; - public static final ValueFormatter<Species> SPECIES_NAME_FORMATTER = new ValueFormatter<Species>() { @Override public String format(Species s) { @@ -197,37 +160,15 @@ public class TuttiCsvUtil extends Common { } }; - public static final ValueFormatter<Serializable> CARACTERISTIC_VALUE_FORMATTER2 = new ValueFormatter<Serializable>() { + public static final ValueFormatter<Species> SPECIES_REF_TAX_CODE_FORMATTER = new ValueFormatter<Species>() { @Override - public String format(Serializable value) { - String result = ""; - if (value != null) { - if (CaracteristicQualitativeValue.class.isAssignableFrom(value.getClass())) { - CaracteristicQualitativeValue cqv = (CaracteristicQualitativeValue) value; - result = cqv.getId(); - - } else { - result = String.valueOf(value); - } - } - return result; + public String format(Species s) { + Preconditions.checkNotNull(s, t("tutti.service.error.species.null")); + String surveyCode = s.getRefTaxCode(); + return surveyCode == null ? "" : surveyCode; } }; - public static ValueFormatter<CaracteristicQualitativeValue> CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER = - new ValueFormatter<CaracteristicQualitativeValue>() { - @Override - public String format(CaracteristicQualitativeValue value) { - String result = ""; - if (value != null) { - result = value.getId(); - } - return result; - } - }; - - public static final ValueParserFormatter<Date> TIME = new DateValue("HH:mm"); - public static ValueParserFormatter<Float> WEIGHT_PARSER_FORMATTER = new FloatParserFormatter(null, true) { @Override @@ -248,10 +189,14 @@ public class TuttiCsvUtil extends Common { public static final ValueParserFormatter<Date> YEAR = new DateValue("yyyy"); + public static final ValueParserFormatter<Date> TIME = new DateValue("HH:mm"); + public static final ValueFormatter<Caracteristic> CARACTERISTIC_TECHNICAL_FORMATTER = new CaracteristicTechnicalFormatter(); public static final ValueFormatter<Serializable> CARACTERISTIC_VALUE_FORMATTER = new CaracteristicValueFormatter(); + public static ValueFormatter<Serializable> CARACTERISTIC_VALUE_TECHNICAL_FORMATTER = new CaracteristicValueTechnicalFormatter(); + public static final ValueFormatter<Program> PROGRAM_FORMATTER = new ProgramFormatter(); public static final ValueFormatter<Program> PROGRAM_TECHNICAL_FORMATTER = new ProgramTechnicalFormatter(); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java index 0afb699..42a46e4 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java @@ -176,44 +176,44 @@ public class ImportFromColumnFileModel extends AbstractTuttiImportModel<FishingO List<Gear> gears = new ArrayList<>(dataContext.getFishingGears()); gears.addAll(dataContext.getScientificGears()); Map<String, Gear> gearUniverse = TuttiEntities.splitById(gears); - valueParser = newForeignKeyValue(Gear.class, field, gearUniverse); + valueParser = newForeignKeyParserFormatter(Gear.class, field, gearUniverse); break; case FishingOperation.PROPERTY_VESSEL: List<Vessel> vessels = new ArrayList<>(dataContext.getFishingVessels()); vessels.addAll(dataContext.getScientificVessels()); Map<String, Vessel> vesselUniverse = TuttiEntities.splitById(vessels); - valueParser = newForeignKeyValue(Vessel.class, field, vesselUniverse); + valueParser = newForeignKeyParserFormatter(Vessel.class, field, vesselUniverse); break; case FishingOperation.PROPERTY_SECONDARY_VESSEL: vessels = new ArrayList<>(dataContext.getFishingVessels()); vessels.addAll(dataContext.getScientificVessels()); vesselUniverse = TuttiEntities.splitById(vessels); - valueParser = newForeignKeyListValue(Vessel.class, field, vesselUniverse); + valueParser = newForeignKeyListParserFormatter(Vessel.class, field, vesselUniverse); break; case FishingOperation.PROPERTY_STRATA: Map<String, TuttiLocation> strataUniverse = TuttiEntities.splitById( persistenceService.getAllFishingOperationStrata(zoneId)); - valueParser = newForeignKeyValue(TuttiLocation.class, field, strataUniverse); + valueParser = newForeignKeyParserFormatter(TuttiLocation.class, field, strataUniverse); break; case FishingOperation.PROPERTY_SUB_STRATA: Map<String, TuttiLocation> subStrataUniverse = TuttiEntities.splitById( persistenceService.getAllFishingOperationSubStrata(zoneId, null)); - valueParser = newForeignKeyValue(TuttiLocation.class, field, subStrataUniverse); + valueParser = newForeignKeyParserFormatter(TuttiLocation.class, field, subStrataUniverse); break; case FishingOperation.PROPERTY_LOCATION: Map<String, TuttiLocation> locationUniverse = TuttiEntities.splitById( persistenceService.getAllFishingOperationLocation(zoneId, null, null)); - valueParser = newForeignKeyValue(TuttiLocation.class, field, locationUniverse); + valueParser = newForeignKeyParserFormatter(TuttiLocation.class, field, locationUniverse); break; case FishingOperation.PROPERTY_RECORDER_PERSON: Map<String, Person> personUniverse = TuttiEntities.splitById(dataContext.getPersons()); - valueParser = newForeignKeyListValue(Person.class, field, personUniverse); + valueParser = newForeignKeyListParserFormatter(Person.class, field, personUniverse); break; default: diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java index e294367..f520823 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java @@ -27,7 +27,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; 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.ForeignKeyValue; +import fr.ifremer.tutti.service.csv.ForeignKeyParserFormatter; import fr.ifremer.tutti.service.csv.StringParserFormatter; import org.nuiton.csv.Common; import org.nuiton.csv.ImportRuntimeException; @@ -56,7 +56,7 @@ public class SpeciesRowModel extends AbstractTuttiImportExportModel<SpeciesRow> newMandatoryColumn( SpeciesRow.PROPERTY_SPECIES_REFERENCE_TAXON_ID, SpeciesRow.PROPERTY_SPECIES, - new ForeignKeyValue<Species>(Species.class, Species.PROPERTY_REFERENCE_TAXON_ID, speciesMap) { + new ForeignKeyParserFormatter<Species>(Species.class, Species.PROPERTY_REFERENCE_TAXON_ID, speciesMap) { Set<Integer> taxonIds = Sets.newHashSet(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.