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.data.Attachment;
28 import fr.ifremer.tutti.service.csv.CsvProducer;
29 import fr.ifremer.tutti.service.genericformat.csv.AttachmentModel;
30 import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow;
31
32 import java.nio.file.Files;
33 import java.nio.file.Path;
34 import java.util.List;
35
36
37
38
39
40
41
42 public class CsvProducerForAttachment extends CsvProducer<AttachmentRow, AttachmentModel> {
43
44 private final Path sourcePath;
45
46 private final Path targetPath;
47
48 public CsvProducerForAttachment(Path file, AttachmentModel model,
49 Path sourcePath,
50 Path targetPath) {
51 super(file, model);
52 this.sourcePath = sourcePath;
53 this.targetPath = targetPath;
54 }
55
56 @Override
57 public void write(List<AttachmentRow> rows) throws Exception {
58 super.write(rows);
59 for (AttachmentRow row : rows) {
60
61 String path = row.getPath();
62
63 Path source = sourcePath.resolve(path);
64 Path target = targetPath.resolve(path);
65 Files.createDirectories(target.getParent());
66 Files.copy(source, target);
67
68 }
69 }
70
71 public void addAttachments(List<Attachment> attachments, List<AttachmentRow> rows) {
72
73 for (Attachment attachment : attachments) {
74
75 AttachmentRow row = new AttachmentRow();
76 row.setAttachment(attachment);
77 rows.add(row);
78
79 }
80
81 }
82
83 }
84