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.Program;
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
33
34
35
36
37 public class SurveyModel extends AbstractTuttiImportExportModel<SurveyRow> {
38
39 public static SurveyModel forExport(char separator) {
40
41 SurveyModel exportModel = new SurveyModel(separator);
42 exportModel.forExport();
43 return exportModel;
44
45 }
46
47 public static SurveyModel forImport(char separator, GenericFormatImportEntityParserFactory parserFactory) {
48
49 SurveyModel importModel = new SurveyModel(separator);
50 importModel.forImport(parserFactory);
51 return importModel;
52
53 }
54
55 @Override
56 public SurveyRow newEmptyInstance() {
57
58 return SurveyRow.newEmptyInstance();
59
60 }
61
62 protected SurveyModel(char separator) {
63 super(separator);
64 }
65
66 protected void forExport() {
67
68 newColumnForExport("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
69 newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_FORMATTER);
70 newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
71 newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_FORMATTER);
72 newColumnForExport("Nombre_Poches", Cruise.PROPERTY_MULTIRIG_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
73 newColumnForExport("Pays", SurveyRow.PROPERTY_COUNTRY, TuttiCsvUtil.COUNTRY_FORMATTER);
74 newColumnForExport("Zone_Etude", Program.PROPERTY_ZONE, TuttiCsvUtil.PROGRAM_ZONE_FORMATTER);
75 newColumnForExport("Campagne", Cruise.PROPERTY_NAME);
76 newColumnForExport("Id_Sismer", SurveyRow.PROPERTY_ID_SISMER);
77 newColumnForExport("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
78 newColumnForExport("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiCsvUtil.HARBOUR_FORMATTER);
79 newColumnForExport("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
80 newColumnForExport("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, TuttiCsvUtil.HARBOUR_FORMATTER);
81 newColumnForExport("Chef_Mission", Cruise.PROPERTY_HEAD_OF_MISSION, TuttiCsvUtil.PERSON_LIST_FORMATTER);
82 newColumnForExport("Resp_Salle_Tri", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, TuttiCsvUtil.PERSON_LIST_FORMATTER);
83 newColumnForExport("Commentaire", Cruise.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
84
85 newColumnForExport("Serie_Id", Cruise.PROPERTY_PROGRAM, TuttiCsvUtil.PROGRAM_TECHNICAL_FORMATTER);
86 newColumnForExport("Campagne_Id", SurveyRow.PROPERTY_OBJECT_ID, TuttiCsvUtil.INTEGER);
87 newColumnForExport("Navire_Id", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_TECHNICAL_FORMATTER);
88 newColumnForExport("Engin_Id", Cruise.PROPERTY_GEAR, TuttiCsvUtil.GEAR_LIST_TECHNICAL_FORMATTER);
89 newColumnForExport("Port_Deb_Campagne_Id", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiCsvUtil.HARBOUR_TECHNICAL_FORMATTER);
90 newColumnForExport("Port_Fin_Campagne_Id", Cruise.PROPERTY_RETURN_LOCATION, TuttiCsvUtil.HARBOUR_TECHNICAL_FORMATTER);
91 newColumnForExport("Chef_Mission_Id", Cruise.PROPERTY_HEAD_OF_MISSION, TuttiCsvUtil.PERSON_LIST_TECHNICAL_FORMATTER);
92 newColumnForExport("Resp_Salle_Tri_Id", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, TuttiCsvUtil.PERSON_LIST_TECHNICAL_FORMATTER);
93
94 }
95
96 protected void forImport(GenericFormatImportEntityParserFactory parserFactory) {
97
98 newMandatoryColumn("Annee", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.YEAR);
99 newIgnoredColumn("Serie");
100 newMandatoryColumn("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART);
101 newIgnoredColumn("Navire");
102 newMandatoryColumn("Nombre_Poches", Cruise.PROPERTY_MULTIRIG_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
103 newIgnoredColumn("Pays");
104 newIgnoredColumn("Zone_Etude");
105 newMandatoryColumn("Campagne", Cruise.PROPERTY_NAME);
106 newIgnoredColumn("Id_Sismer");
107 newMandatoryColumn("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
108 newIgnoredColumn("Port_Deb_Campagne");
109 newMandatoryColumn("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
110 newIgnoredColumn("Port_Fin_Campagne");
111 newIgnoredColumn("Chef_Mission");
112 newIgnoredColumn("Resp_Salle_Tri");
113 newMandatoryColumn("Commentaire", Cruise.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_PARSER_FORMATTER);
114
115 newMandatoryColumn("Serie_Id", Cruise.PROPERTY_PROGRAM, parserFactory.getProgramParser());
116 newMandatoryColumn("Campagne_Id", SurveyRow.PROPERTY_OBJECT_ID, TuttiCsvUtil.INTEGER);
117 newMandatoryColumn("Navire_Id", Cruise.PROPERTY_VESSEL, parserFactory.getVesselParser());
118 newMandatoryColumn("Engin_Id", Cruise.PROPERTY_GEAR, parserFactory.getGearListParser());
119 newMandatoryColumn("Port_Deb_Campagne_Id", Cruise.PROPERTY_DEPARTURE_LOCATION, parserFactory.getHarbourParser());
120 newMandatoryColumn("Port_Fin_Campagne_Id", Cruise.PROPERTY_RETURN_LOCATION, parserFactory.getHarbourParser());
121 newMandatoryColumn("Chef_Mission_Id", Cruise.PROPERTY_HEAD_OF_MISSION, parserFactory.getPersonListParser());
122 newMandatoryColumn("Resp_Salle_Tri_Id", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, parserFactory.getPersonListParser());
123
124 }
125
126 }