View Javadoc
1   package fr.ifremer.tutti.service.genericformat.csv;
2   
3   /*
4    * #%L
5    * Tutti :: Service
6    * %%
7    * Copyright (C) 2012 - 2014 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the 
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public 
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
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.service.csv.AbstractTuttiImportExportModel;
28  import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
29  import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory;
30  
31  /**
32   * Model of a operation export.
33   *
34   * @author Tony Chemit - chemit@codelutin.com
35   * @since 1.3
36   */
37  public class OperationModel extends AbstractTuttiImportExportModel<OperationRow> {
38  
39      public static OperationModel forExport(char separator) {
40  
41          OperationModel exportModel = new OperationModel(separator);
42          exportModel.forExport();
43          return exportModel;
44  
45      }
46  
47      public static OperationModel forImport(char separator, GenericFormatImportEntityParserFactory parserFactory) {
48  
49          OperationModel importModel = new OperationModel(separator);
50          importModel.forImport(parserFactory);
51          return importModel;
52  
53      }
54  
55      @Override
56      public OperationRow newEmptyInstance() {
57          return OperationRow.newEmptyInstance();
58      }
59  
60      protected OperationModel(char separator) {
61          super(separator);
62  
63      }
64  
65      protected void forExport() {
66  
67          newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
68          newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER);
69          newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
70  
71          newColumnForExport("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER);
72          newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
73          newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
74          newNullableColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_FORMATTER);
75          newNullableColumnForExport("Rang_Engin", OperationRow.PROPERTY_GEAR_RANK_ORDER, TuttiCsvUtil.SHORT);
76  
77          newColumnForExport("Navire", FishingOperation.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_FORMATTER);
78          newColumnForExport("DateDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
79          newColumnForExport("LatDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT);
80          newColumnForExport("LongDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT);
81          newColumnForExport("DateFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
82          newColumnForExport("LatFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT);
83          newColumnForExport("LongFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT);
84          newColumnForExport("Duree", OperationRow.PROPERTY_DURATION);
85          newColumnForExport("Strate", FishingOperation.PROPERTY_STRATA, TuttiCsvUtil.FISHING_OPERATION_STRATA_FORMATTER);
86          newColumnForExport("Sous_Strate", FishingOperation.PROPERTY_SUB_STRATA, TuttiCsvUtil.FISHING_OPERATION_SUB_STRATA_FORMATTER);
87          newColumnForExport("Localite", FishingOperation.PROPERTY_LOCATION, TuttiCsvUtil.FISHING_OPERATION_LOCATION_FORMATTER);
88  
89          newColumnForExport("Validite_OP", FishingOperation.PROPERTY_FISHING_OPERATION_VALID, TuttiCsvUtil.BOOLEAN);
90          newColumnForExport("Rectiligne", FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE, TuttiCsvUtil.BOOLEAN);
91          newColumnForExport("Distance", FishingOperation.PROPERTY_TRAWL_DISTANCE, TuttiCsvUtil.INTEGER_NULL_TO_9);
92          newColumnForExport("Saisisseur", FishingOperation.PROPERTY_RECORDER_PERSON, TuttiCsvUtil.PERSON_LIST_FORMATTER);
93          newColumnForExport("Navire_Associe", FishingOperation.PROPERTY_SECONDARY_VESSEL, TuttiCsvUtil.VESSEL_LIST_FORMATTER);
94          newColumnForExport("Commentaire", FishingOperation.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
95  
96          newNullableColumnForExport("Poids_Total", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
97          newNullableColumnForExport("Poids_Total_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
98  
99          newNullableColumnForExport("Poids_Total_Vrac", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
100         newNullableColumnForExport("Poids_Total_Vrac_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
101 
102         newNullableColumnForExport("Poids_Total_HorsVrac", OperationRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
103         newNullableColumnForExport("Poids_Total_HorsVrac_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
104 
105         newNullableColumnForExport("Poids_Total_Non_Trie", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
106         newNullableColumnForExport("Poids_Total_Non_Trie_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
107 
108         newNullableColumnForExport("Poids_Total_Tremis", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
109         newNullableColumnForExport("Poids_Total_Tremis_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
110 
111         newNullableColumnForExport("Poids_Total_Carroussel", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
112         newNullableColumnForExport("Poids_Total_Carroussel_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
113 
114         newNullableColumnForExport("Poids_Total_Espece", OperationRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
115         newNullableColumnForExport("Poids_Total_Espece_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
116 
117         newNullableColumnForExport("Poids_Total_Espece_Vrac", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
118         newNullableColumnForExport("Poids_Total_Espece_Vrac_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
119 
120         newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie", OperationRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
121         newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
122 
123         newNullableColumnForExport("Poids_Total_Espece_HorsVrac", OperationRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
124         newNullableColumnForExport("Poids_Total_Espece_HorsVrac_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
125 
126         newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
127         newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
128 
129         newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
130         newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
131 
132         newNullableColumnForExport("Poids_Total_Benthos", OperationRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
133         newNullableColumnForExport("Poids_Total_Benthos_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
134 
135         newNullableColumnForExport("Poids_Total_Benthos_Vrac", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
136         newNullableColumnForExport("Poids_Total_Benthos_Vrac_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
137 
138         newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie", OperationRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
139         newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
140 
141         newNullableColumnForExport("Poids_Total_Benthos_HorsVrac", OperationRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
142         newNullableColumnForExport("Poids_Total_Benthos_HorsVrac_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
143 
144         newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
145         newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
146 
147         newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
148         newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
149 
150         newNullableColumnForExport("Poids_Total_Macro_Dechet", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
151         newNullableColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
152 
153         newColumnForExport("Serie_Id", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_TECHNICAL_FORMATTER);
154         newColumnForExport("Engin_Id", FishingOperation.PROPERTY_GEAR, TuttiCsvUtil.GEAR_TECHNICAL_FORMATTER);
155         newColumnForExport("Fishing_Operation_Id", OperationRow.PROPERTY_FISHING_OPERATION_OBJECT_ID, TuttiCsvUtil.INTEGER);
156         newColumnForExport("Catch_Lot_Id", OperationRow.PROPERTY_CATCH_OBJECT_ID, TuttiCsvUtil.INTEGER);
157         newColumnForExport("Navire_Id", FishingOperation.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_TECHNICAL_FORMATTER);
158         newColumnForExport("Strate_Id", FishingOperation.PROPERTY_STRATA, TuttiCsvUtil.FISHING_OPERATION_STRATA_TECHNICAL_FORMATTER);
159         newColumnForExport("Sous_Strate_Id", FishingOperation.PROPERTY_SUB_STRATA, TuttiCsvUtil.FISHING_OPERATION_SUB_STRATA_TECHNICAL_FORMATTER);
160         newColumnForExport("Localite_Id", FishingOperation.PROPERTY_LOCATION, TuttiCsvUtil.FISHING_OPERATION_LOCATION_TECHNICAL_FORMATTER);
161         newColumnForExport("Saisisseur_Id", FishingOperation.PROPERTY_RECORDER_PERSON, TuttiCsvUtil.PERSON_LIST_TECHNICAL_FORMATTER);
162         newColumnForExport("Navire_Associe_Id", FishingOperation.PROPERTY_SECONDARY_VESSEL, TuttiCsvUtil.VESSEL_LIST_TECHNICAL_FORMATTER);
163 
164     }
165 
166     protected void forImport(GenericFormatImportEntityParserFactory parserFactory) {
167 
168         newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
169         newIgnoredColumn("Serie");
170         newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
171 
172         newMandatoryColumn("Code_Station", FishingOperation.PROPERTY_STATION_NUMBER);
173         newMandatoryColumn("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
174         newMandatoryColumn("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
175         newIgnoredColumn("Engin");
176         newMandatoryColumn("Rang_Engin", OperationRow.PROPERTY_GEAR_RANK_ORDER, TuttiCsvUtil.SHORT);
177 
178         newIgnoredColumn("Navire");
179         newMandatoryColumn("DateDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
180         newMandatoryColumn("LatDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT);
181         newMandatoryColumn("LongDeb", FishingOperation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT);
182         newMandatoryColumn("DateFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
183         newMandatoryColumn("LatFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT);
184         newMandatoryColumn("LongFin", FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT);
185         newIgnoredColumn("Duree");
186         newIgnoredColumn("Strate");
187         newIgnoredColumn("Sous_Strate");
188         newIgnoredColumn("Localite");
189         newMandatoryColumn("Validite_OP", FishingOperation.PROPERTY_FISHING_OPERATION_VALID, TuttiCsvUtil.BOOLEAN);
190         newMandatoryColumn("Rectiligne", FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE, TuttiCsvUtil.BOOLEAN);
191         newMandatoryColumn("Distance", FishingOperation.PROPERTY_TRAWL_DISTANCE, TuttiCsvUtil.INTEGER_NULL_TO_9);
192         newIgnoredColumn("Saisisseur");
193         newIgnoredColumn("Navire_Associe");
194         newMandatoryColumn("Commentaire", FishingOperation.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
195 
196         newMandatoryColumn("Poids_Total", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
197         newMandatoryColumn("Poids_Total_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
198 
199         newIgnoredColumn("Poids_Total_Vrac");
200         newIgnoredColumn("Poids_Total_Vrac_Calcule");
201 
202         newIgnoredColumn("Poids_Total_HorsVrac");
203         newIgnoredColumn("Poids_Total_HorsVrac_Calcule");
204 
205         newMandatoryColumn("Poids_Total_Non_Trie", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
206         newMandatoryColumn("Poids_Total_Non_Trie_Calcule", OperationRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
207 
208         newMandatoryColumn("Poids_Total_Tremis", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
209         newIgnoredColumn("Poids_Total_Tremis_Calcule");
210 
211         newMandatoryColumn("Poids_Total_Carroussel", OperationRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
212         newIgnoredColumn("Poids_Total_Carroussel_Calcule");
213 
214         newIgnoredColumn("Poids_Total_Espece");
215         newIgnoredColumn("Poids_Total_Espece_Calcule");
216 
217         newMandatoryColumn("Poids_Total_Espece_Vrac", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
218         newMandatoryColumn("Poids_Total_Espece_Vrac_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
219 
220         newIgnoredColumn("Poids_Total_Espece_Vrac_Trie");
221         newIgnoredColumn("Poids_Total_Espece_Vrac_Trie_Calcule");
222 
223         newIgnoredColumn("Poids_Total_Espece_HorsVrac");
224         newIgnoredColumn("Poids_Total_Espece_HorsVrac_Calcule");
225 
226         newMandatoryColumn("Poids_Total_Espece_Inerte_Trie", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
227         newMandatoryColumn("Poids_Total_Espece_Inerte_Trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
228 
229         newMandatoryColumn("Poids_Total_Espece_Vivant_non_detaille_trie", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
230         newMandatoryColumn("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
231 
232         newIgnoredColumn("Poids_Total_Benthos");
233         newIgnoredColumn("Poids_Total_Benthos_Calcule");
234 
235         newMandatoryColumn("Poids_Total_Benthos_Vrac", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
236         newMandatoryColumn("Poids_Total_Benthos_Vrac_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
237 
238         newIgnoredColumn("Poids_Total_Benthos_Vrac_Trie");
239         newIgnoredColumn("Poids_Total_Benthos_Vrac_Trie_Calcule");
240 
241         newIgnoredColumn("Poids_Total_Benthos_HorsVrac");
242         newIgnoredColumn("Poids_Total_Benthos_HorsVrac_Calcule");
243 
244         newMandatoryColumn("Poids_Total_Benthos_Inerte_Trie", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
245         newMandatoryColumn("Poids_Total_Benthos_Inerte_Trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
246 
247         newMandatoryColumn("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
248         newMandatoryColumn("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule", OperationRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
249 
250         newMandatoryColumn("Poids_Total_Macro_Dechet", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9);
251         newMandatoryColumn("Poids_Total_Macro_Dechet_Calcule", OperationRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
252 
253         newMandatoryColumn("Serie_Id", Cruise.PROPERTY_PROGRAM, parserFactory.getProgramParser());
254         newMandatoryColumn("Engin_Id", FishingOperation.PROPERTY_GEAR, parserFactory.getGearParser());
255         newMandatoryColumn("Fishing_Operation_Id", OperationRow.PROPERTY_FISHING_OPERATION_OBJECT_ID, TuttiCsvUtil.INTEGER);
256         newMandatoryColumn("Catch_Lot_Id", OperationRow.PROPERTY_CATCH_OBJECT_ID, TuttiCsvUtil.INTEGER);
257         newMandatoryColumn("Navire_Id", FishingOperation.PROPERTY_VESSEL, parserFactory.getVesselParser());
258         newMandatoryColumn("Strate_Id", FishingOperation.PROPERTY_STRATA, parserFactory.getFishingOperationStrataParser());
259         newMandatoryColumn("Sous_Strate_Id", FishingOperation.PROPERTY_SUB_STRATA, parserFactory.getFishingOperationSubStrataParser());
260         newMandatoryColumn("Localite_Id", FishingOperation.PROPERTY_LOCATION, parserFactory.getFishingOperationLocationParser());
261         newMandatoryColumn("Saisisseur_Id", FishingOperation.PROPERTY_RECORDER_PERSON, parserFactory.getPersonListParser());
262         newMandatoryColumn("Navire_Associe_Id", FishingOperation.PROPERTY_SECONDARY_VESSEL, parserFactory.getVesselListParser());
263 
264     }
265 
266 }