1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package fr.ifremer.tutti.service.protocol;
23
24
25 import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType;
26 import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
27 import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel;
28 import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
29
30 import java.util.Map;
31
32
33
34
35
36
37
38 public class CaracteristicRowModel extends AbstractTuttiImportExportModel<CaracteristicRow> {
39
40 public static CaracteristicRowModel forImport(char separator, Map<String, Caracteristic> caracteristicMap) {
41
42 CaracteristicRowModel result = new CaracteristicRowModel(separator);
43
44 result.newForeignKeyColumn(CaracteristicRow.PROPERTY_PMFM_ID,
45 CaracteristicRow.PROPERTY_PMFM,
46 Caracteristic.class,
47 Caracteristic.PROPERTY_ID,
48 caracteristicMap);
49
50 result.newMandatoryColumn(CaracteristicRow.PROPERTY_PMFM_TYPE,
51 CaracteristicRow.PROPERTY_PMFM_TYPE,
52 TuttiCsvUtil.newEnumByNameParserFormatter(CaracteristicType.class, true));
53
54 result.newMandatoryColumn(CaracteristicRow.PROPERTY_MATURE_STATE_IDS, TuttiCsvUtil.STRING_SET_PARSER_FORMATTER);
55
56 result.newIgnoredColumn(CaracteristicRow.PROPERTY_PMFM_PARAMETER_NAME);
57 result.newIgnoredColumn(CaracteristicRow.PROPERTY_PMFM_MATRIX_NAME);
58 result.newIgnoredColumn(CaracteristicRow.PROPERTY_PMFM_FRACTION_NAME);
59 result.newIgnoredColumn(CaracteristicRow.PROPERTY_PMFM_METHOD_NAME);
60
61 return result;
62
63 }
64
65 public static CaracteristicRowModel forExport(char separator) {
66
67 CaracteristicRowModel result = new CaracteristicRowModel(separator);
68
69 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_ID);
70 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_TYPE, TuttiCsvUtil.newEnumByNameParserFormatter(CaracteristicType.class, true));
71 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_PARAMETER_NAME);
72 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_MATRIX_NAME);
73 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_FRACTION_NAME);
74 result.newColumnForExport(CaracteristicRow.PROPERTY_PMFM_METHOD_NAME);
75 result.newColumnForExport(CaracteristicRow.PROPERTY_MATURE_STATE_IDS, TuttiCsvUtil.STRING_SET_PARSER_FORMATTER);
76 return result;
77
78 }
79
80 @Override
81 public CaracteristicRow newEmptyInstance() {
82 return new CaracteristicRow();
83 }
84
85 private CaracteristicRowModel(char separator) {
86 super(separator);
87 }
88
89 }