1 package fr.ifremer.tutti.service.genericformat.producer;
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.CaracteristicMap;
28 import fr.ifremer.tutti.persistence.entities.data.Cruise;
29 import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
30 import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
31 import fr.ifremer.tutti.service.csv.CsvProducer;
32 import fr.ifremer.tutti.service.genericformat.csv.ParameterModel;
33 import fr.ifremer.tutti.service.genericformat.csv.ParameterRow;
34
35 import java.io.Serializable;
36 import java.nio.file.Path;
37 import java.util.ArrayList;
38 import java.util.List;
39 import java.util.Map;
40
41
42
43
44
45
46
47 public class CsvProducerForParameter extends CsvProducer<ParameterRow, ParameterModel> {
48
49 public CsvProducerForParameter(Path file, ParameterModel model) {
50 super(file, model);
51 }
52
53 public List<ParameterRow> getDataToExport(Cruise cruise, FishingOperation operation) {
54
55 List<ParameterRow> rows = new ArrayList<>();
56
57 CaracteristicMap gearUseFeatures = operation.getGearUseFeatures();
58 if (gearUseFeatures != null) {
59 addCaracteristicMap(rows, cruise, operation, ParameterRow.ParameterType.GEAR, gearUseFeatures);
60 }
61
62 CaracteristicMap vesselUseFeatures = operation.getVesselUseFeatures();
63 if (vesselUseFeatures != null) {
64 addCaracteristicMap(rows, cruise, operation, ParameterRow.ParameterType.VESSEL, vesselUseFeatures);
65 }
66
67 return rows;
68
69 }
70
71 protected void addCaracteristicMap(List<ParameterRow> rows,
72 Cruise cruise,
73 FishingOperation operation,
74 ParameterRow.ParameterType parameterType,
75 CaracteristicMap caracteristicMap) {
76
77 for (Map.Entry<Caracteristic, Serializable> entry : caracteristicMap.entrySet()) {
78
79 ParameterRow row = new ParameterRow();
80 row.setParameterType(parameterType);
81 row.setCruise(cruise);
82 row.setFishingOperation(operation);
83 row.setCaracteristic(entry.getKey());
84 row.setValue(entry.getValue());
85 rows.add(row);
86
87 }
88
89 }
90
91 }