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.Species;
28 import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext;
29 import fr.ifremer.tutti.service.referential.ReferentialTemporarySpeciesService;
30 import fr.ifremer.tutti.service.referential.csv.SpeciesRow;
31 import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporarySpecies;
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 ExportReferentialSpeciesAction extends ExportTechnicalActionSupport {
45
46 private final ReferentialTemporarySpeciesService referentialTemporarySpeciesService;
47
48 public ExportReferentialSpeciesAction(ReferentialTemporarySpeciesService referentialTemporarySpeciesService) {
49 this.referentialTemporarySpeciesService = referentialTemporarySpeciesService;
50 }
51
52 @Override
53 public void execute(GenericFormatExportContext exportContext) {
54
55 List<Species> temporarySpeciess = referentialTemporarySpeciesService.getTemporarySpeciess();
56 exportContext.increments(t("tutti.service.genericFormat.export.exportTemporarySpecies", temporarySpeciess.size()));
57
58 try {
59
60 CsvProducerForTemporarySpecies producerForTemporarySpecies = exportContext.getProducerForTemporarySpecies();
61
62 List<SpeciesRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporarySpeciess);
63 producerForTemporarySpecies.write(dataToExport);
64
65 } catch (Exception e) {
66 throw new ApplicationTechnicalException("Could not export temporary species", e);
67 }
68
69 }
70 }