1 package fr.ifremer.tutti.service.protocol;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import fr.ifremer.tutti.persistence.entities.referential.Species;
28 import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel;
29 import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
30 import org.nuiton.csv.ValueFormatter;
31
32 import java.util.Map;
33
34
35
36
37
38 public class CalcifiedPiecesSamplingRowModel extends AbstractTuttiImportExportModel<CalcifiedPiecesSamplingRow> {
39
40 public CalcifiedPiecesSamplingRowModel(char separator) {
41 super(separator);
42 }
43
44 public static CalcifiedPiecesSamplingRowModel forExport(char separator) {
45
46 CalcifiedPiecesSamplingRowModel result = new CalcifiedPiecesSamplingRowModel(separator);
47
48 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_REFTAX,
49 CalcifiedPiecesSamplingRow.PROPERTY_SPECIES,
50 new ValueFormatter<Species>() {
51
52 @Override
53 public String format(Species species) {
54 return String.valueOf(species.getReferenceTaxonId());
55 }
56 });
57
58 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_SURVEY_CODE,
59 CalcifiedPiecesSamplingRow.PROPERTY_SPECIES,
60 new ValueFormatter<Species>() {
61
62 @Override
63 public String format(Species species) {
64 return String.valueOf(species.getSurveyCode());
65 }
66 });
67
68 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_SCIENTIFIC_NAME,
69 CalcifiedPiecesSamplingRow.PROPERTY_SPECIES,
70 new ValueFormatter<Species>() {
71
72 @Override
73 public String format(Species species) {
74 return String.valueOf(species.getName());
75 }
76 });
77
78 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_MATURITY, TuttiCsvUtil.BOOLEAN);
79 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_SEX, TuttiCsvUtil.PRIMITIVE_BOOLEAN);
80 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_MIN_SIZE, TuttiCsvUtil.PRIMITIVE_INTEGER);
81 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_MAX_SIZE, TuttiCsvUtil.INTEGER);
82 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_MAX_BY_LENGHT_STEP, TuttiCsvUtil.INTEGER);
83 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_SAMPLING_INTERVAL, TuttiCsvUtil.PRIMITIVE_INTEGER);
84 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_OPERATION_LIMITATION, TuttiCsvUtil.INTEGER);
85 result.newColumnForExport(CalcifiedPiecesSamplingRow.PROPERTY_ZONE_LIMITATION, TuttiCsvUtil.INTEGER);
86
87 return result;
88 }
89
90 public static CalcifiedPiecesSamplingRowModel forImport(char separator,
91 Map<String, Species> allSpecies) {
92
93 CalcifiedPiecesSamplingRowModel result = new CalcifiedPiecesSamplingRowModel(separator);
94
95 result.newForeignKeyColumn(CalcifiedPiecesSamplingRow.PROPERTY_REFTAX,
96 CalcifiedPiecesSamplingRow.PROPERTY_SPECIES,
97 Species.class,
98 Species.PROPERTY_REFERENCE_TAXON_ID,
99 allSpecies);
100 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_MATURITY, TuttiCsvUtil.BOOLEAN);
101 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_SEX, TuttiCsvUtil.PRIMITIVE_BOOLEAN);
102 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_MIN_SIZE, TuttiCsvUtil.PRIMITIVE_INTEGER);
103 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_MAX_SIZE, TuttiCsvUtil.INTEGER);
104 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_MAX_BY_LENGHT_STEP, TuttiCsvUtil.INTEGER);
105 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_SAMPLING_INTERVAL, TuttiCsvUtil.PRIMITIVE_INTEGER);
106 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_OPERATION_LIMITATION, TuttiCsvUtil.INTEGER);
107 result.newMandatoryColumn(CalcifiedPiecesSamplingRow.PROPERTY_ZONE_LIMITATION, TuttiCsvUtil.INTEGER);
108
109 result.newIgnoredColumn(CalcifiedPiecesSamplingRow.PROPERTY_SURVEY_CODE);
110 result.newIgnoredColumn(CalcifiedPiecesSamplingRow.PROPERTY_SCIENTIFIC_NAME);
111
112 return result;
113 }
114
115 @Override
116 public CalcifiedPiecesSamplingRow newEmptyInstance() {
117 return new CalcifiedPiecesSamplingRow();
118 }
119 }