1 package fr.ifremer.tutti.service.genericformat.csv;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import fr.ifremer.tutti.persistence.entities.data.Cruise;
26 import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
27 import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
28 import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel;
29 import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
30 import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory;
31
32
33
34
35
36
37
38 public class IndividualObservationModel extends AbstractTuttiImportExportModel<IndividualObservationRow> {
39
40 public static IndividualObservationModel forExport(char separator) {
41
42 IndividualObservationModel exportModel = new IndividualObservationModel(separator);
43 exportModel.forExport();
44 return exportModel;
45
46 }
47
48 public static IndividualObservationModel forImport(char separator, GenericFormatImportEntityParserFactory parserFactory) {
49
50 IndividualObservationModel importModel = new IndividualObservationModel(separator);
51 importModel.forImport(parserFactory);
52 return importModel;
53
54 }
55
56 @Override
57 public IndividualObservationRow newEmptyInstance() {
58
59 return IndividualObservationRow.newEmptyInstance();
60
61 }
62
63 protected IndividualObservationModel(char separator) {
64 super(separator);
65 }
66
67 protected void forExport() {
68
69 newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
70 newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER);
71 newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
72
73 newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER);
74 newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
75 newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
76
77 newColumnForExport("Id_Lot", IndividualObservationBatch.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
78 newColumnForExport("Code_Taxon", IndividualObservationBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_TECHNICAL_FORMATTER);
79 newColumnForExport("Nom_Scientifique", IndividualObservationBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_FORMATTER);
80
81 newColumnForExport("Id_Echantillon", IndividualObservationBatch.PROPERTY_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
82 newColumnForExport("Numero_Ordre", IndividualObservationBatch.PROPERTY_RANK_ORDER, TuttiCsvUtil.PRIMITIVE_INTEGER);
83 newColumnForExport("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
84 newColumnForExport("Code_PMFM", IndividualObservationRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_TECHNICAL_FORMATTER);
85 newColumnForExport("Libelle_PMFM", IndividualObservationRow.PROPERTY_CARACTERISTIC, TuttiCsvUtil.CARACTERISTIC_FORMATTER);
86 newColumnForExport("Valeur", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER);
87
88 newColumnForExport("Serie_Id", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_TECHNICAL_FORMATTER);
89 newColumnForExport("Valeur_Id", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_TECHNICAL_FORMATTER);
90
91
92 }
93
94 protected void forImport(GenericFormatImportEntityParserFactory parserFactory) {
95
96 newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
97 newIgnoredColumn("Serie");
98 newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
99
100 newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER);
101 newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
102 newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
103
104 newMandatoryColumn("Id_Lot", IndividualObservationBatch.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
105 newMandatoryColumn("Code_Taxon", IndividualObservationBatch.PROPERTY_SPECIES, parserFactory.getSpeciesParser());
106 newIgnoredColumn("Nom_Scientifique");
107
108 newMandatoryColumn("Id_Echantillon", IndividualObservationBatch.PROPERTY_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
109 newMandatoryColumn("Numero_Ordre", IndividualObservationBatch.PROPERTY_RANK_ORDER, TuttiCsvUtil.PRIMITIVE_INTEGER);
110 newMandatoryColumn("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
111 newMandatoryColumn("Code_PMFM", IndividualObservationRow.PROPERTY_CARACTERISTIC, parserFactory.getCaracteristicWithProtectedParser());
112 newIgnoredColumn("Libelle_PMFM");
113 newIgnoredColumn("Valeur");
114
115 newMandatoryColumn("Serie_Id", Cruise.PROPERTY_PROGRAM, parserFactory.getProgramParser());
116 newMandatoryColumn("Valeur_Id", IndividualObservationRow.PROPERTY_CARACTERISTIC_VALUE);
117
118 }
119
120 }