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.adagio.core.dao.referential.ObjectTypeCode;
28 import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
29 import fr.ifremer.tutti.persistence.entities.data.Attachment;
30 import fr.ifremer.tutti.service.PersistenceService;
31 import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext;
32 import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext;
33 import fr.ifremer.tutti.service.genericformat.csv.AccidentalCatchRow;
34 import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow;
35 import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment;
36
37 import java.util.ArrayList;
38 import java.util.List;
39
40
41
42
43
44
45
46 public class CreateAccidentalCatchRowsAction extends ExportFishingOperationActionSupport {
47
48 private final PersistenceService persistenceService;
49
50 public CreateAccidentalCatchRowsAction(PersistenceService persistenceService) {
51 this.persistenceService = persistenceService;
52 }
53
54 @Override
55 public boolean doExecute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) {
56 return exportContext.isExportAccidentalCatch() && operationContext.isWithCatchBatch();
57 }
58
59 @Override
60 public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) {
61
62 List<AccidentalCatchRow> accidentalCatchRows = exportContext.getProducerForAccidentalCatch().getDataToExport(operationContext);
63 operationContext.setAccidentalCatchRows(accidentalCatchRows);
64 exportContext.getProducerForSpecies().prepareAccidentalRows(accidentalCatchRows);
65
66 if (exportContext.isExportAttachments()) {
67
68 List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operationContext.getAccidentalBatches());
69 operationContext.addAttachmentRows(attachmentRows);
70
71 }
72
73 }
74
75 protected List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, List<AccidentalBatch> accidentalBatches) {
76
77 CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment();
78
79 List<AttachmentRow> attachmentRows = new ArrayList<>();
80
81 for (AccidentalBatch accidentalBatch : accidentalBatches) {
82 List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.SAMPLE, accidentalBatch.getIdAsInt());
83 producerForAttachment.addAttachments(attachments, attachmentRows);
84 }
85
86 return attachmentRows;
87
88 }
89
90 }