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 fr.ifremer.tutti.persistence.entities.referential.Vessel;
28 import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext;
29 import fr.ifremer.tutti.service.referential.ReferentialTemporaryVesselService;
30 import fr.ifremer.tutti.service.referential.csv.VesselRow;
31 import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryVessel;
32 import org.nuiton.jaxx.application.ApplicationTechnicalException;
33
34 import java.util.List;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41
42
43
44 public class ExportReferentialVesselAction extends ExportTechnicalActionSupport {
45
46 private final ReferentialTemporaryVesselService referentialTemporaryVesselService;
47
48 public ExportReferentialVesselAction(ReferentialTemporaryVesselService referentialTemporaryVesselService) {
49 this.referentialTemporaryVesselService = referentialTemporaryVesselService;
50 }
51
52 @Override
53 public void execute(GenericFormatExportContext exportContext) {
54
55 List<Vessel> temporaryVessels = referentialTemporaryVesselService.getTemporaryVessels();
56
57 exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryVessel", temporaryVessels.size()));
58
59 try {
60
61 CsvProducerForTemporaryVessel producerForTemporaryVessel = exportContext.getProducerForTemporaryVessel();
62
63 List<VesselRow> dataToExport = producerForTemporaryVessel.getDataToExport(temporaryVessels);
64 producerForTemporaryVessel.write(dataToExport);
65
66 } catch (Exception e) {
67 throw new ApplicationTechnicalException("Could not export temporary vessels", e);
68 }
69
70 }
71 }