1 package fr.ifremer.tutti.service.genericformat.consumer;
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.Caracteristic;
28 import fr.ifremer.tutti.service.csv.CaracteristicValueParseException;
29 import fr.ifremer.tutti.service.csv.CsvComsumer;
30 import fr.ifremer.tutti.service.genericformat.GenericFormatContextSupport;
31 import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory;
32 import fr.ifremer.tutti.service.genericformat.GenericFormatImportOperationContext;
33 import fr.ifremer.tutti.service.genericformat.csv.ParameterModel;
34 import fr.ifremer.tutti.service.genericformat.csv.ParameterRow;
35 import org.nuiton.csv.ImportRow;
36
37 import java.io.Serializable;
38 import java.nio.file.Path;
39
40
41
42
43
44
45
46 public class CsvConsumerForParameter extends CsvComsumer<ParameterRow, ParameterModel> {
47
48 public CsvConsumerForParameter(Path file, char separator, GenericFormatImportEntityParserFactory parserFactory, boolean reportError) {
49 super(file, ParameterModel.forImport(separator, parserFactory), reportError);
50 }
51
52 public GenericFormatImportOperationContext validateRow(ImportRow<ParameterRow> row, GenericFormatContextSupport importContext) {
53
54 GenericFormatImportOperationContext operationContext = importContext.getValidationHelper().getFishingOperationContext(this, row, importContext);
55
56 if (operationContext != null) {
57
58 ParameterRow bean = row.getBean();
59
60 bean.setFishingOperation(operationContext.getFishingOperation());
61
62
63 if (bean.getParameterType() == null) {
64
65 }
66
67
68 Caracteristic caracteristic = bean.getCaracteristic();
69 if (caracteristic == null) {
70
71 }
72
73
74 if (bean.getValue() == null) {
75
76 }
77
78
79 String value = (String) bean.getValue();
80 try {
81 Serializable serializable = importContext.parseCaracteristicValue(caracteristic, value);
82 bean.setValue(serializable);
83 } catch (CaracteristicValueParseException e) {
84 addCheckError(row, e);
85 }
86
87
88
89 }
90
91 reportError(row);
92
93 return operationContext;
94
95 }
96
97 public void prepareRowForPersist(GenericFormatImportOperationContext operationContext, ImportRow<ParameterRow> row) {
98
99 ParameterRow bean = row.getBean();
100
101 ParameterRow.ParameterType parameterType = bean.getParameterType();
102
103 switch (parameterType) {
104
105 case GEAR:
106
107 operationContext.addGearUseFeature(bean.getCaracteristic(), bean.getValue());
108 break;
109
110 case VESSEL:
111
112 operationContext.addVesselUseFeature(bean.getCaracteristic(), bean.getValue());
113 break;
114
115 }
116
117 }
118
119 }