1 package fr.ifremer.tutti.service.genericformat.exportactions;
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 com.google.common.collect.Lists;
28 import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
29 import fr.ifremer.tutti.persistence.entities.data.Cruise;
30 import fr.ifremer.tutti.persistence.entities.referential.Gear;
31 import fr.ifremer.tutti.persistence.entities.referential.Gears;
32 import fr.ifremer.tutti.service.PersistenceService;
33 import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext;
34 import fr.ifremer.tutti.service.genericformat.csv.GearCaracteristicRow;
35 import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForGearCaracteristics;
36 import org.nuiton.jaxx.application.ApplicationTechnicalException;
37
38 import java.util.List;
39
40 import static org.nuiton.i18n.I18n.t;
41
42
43
44
45
46
47
48 public class ExportGearCaracteristicAction extends ExportCruiseActionSupport {
49
50 public ExportGearCaracteristicAction(PersistenceService persistenceService) {
51 super(persistenceService);
52 }
53
54 @Override
55 public void execute(GenericFormatExportContext exportContext, Cruise cruise) {
56
57 exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportGearCaracteristics", cruise.getName()));
58
59 try {
60
61 CsvProducerForGearCaracteristics producerForGearCaracteristics = exportContext.getProducerForGearCaracteristics();
62
63 List<GearCaracteristicRow> rows = Lists.newArrayList();
64
65 for (Gear gear : cruise.getGear()) {
66
67 CaracteristicMap caracteristics = persistenceService.getGearCaracteristics(cruise.getIdAsInt(), gear.getIdAsInt(), gear.getRankOrder());
68 Gear gearWithCaracteristics = Gears.newGear(gear);
69 gearWithCaracteristics.setCaracteristics(caracteristics);
70
71 List<GearCaracteristicRow> dataToExport = producerForGearCaracteristics.getDataToExport(cruise, gearWithCaracteristics);
72 rows.addAll(dataToExport);
73
74 }
75
76 producerForGearCaracteristics.write(rows);
77
78 } catch (Exception e) {
79 throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.gearCaracteristics.error"), e);
80 }
81
82 }
83
84 }