1 package de.tivsource.page.admin.backup;
2
3 import java.io.BufferedWriter;
4 import java.io.File;
5 import java.io.FileWriter;
6 import java.io.IOException;
7 import java.text.SimpleDateFormat;
8 import java.util.ArrayList;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import org.apache.logging.log4j.LogManager;
13 import org.apache.logging.log4j.Logger;
14
15 import de.tivsource.page.dao.message.MessageDaoLocal;
16 import de.tivsource.page.entity.message.Message;
17
18 public class BackupMessage {
19
20
21
22
23 private static final Logger LOGGER = LogManager.getLogger(BackupMessage.class);
24
25 private static MessageDaoLocal messageDaoLocal;
26
27 private static final int max = 2500;
28
29 private List<File> backupFiles = new ArrayList<File>();
30
31 public static void setMessageDaoLocal(MessageDaoLocal messageDaoLocal) {
32 BackupMessage.messageDaoLocal = messageDaoLocal;
33 }
34
35 public List<File> getBackupFiles() throws IOException {
36 LOGGER.info("getBackupFiles() aufgerufen.");
37
38
39 File file = new File("/tmp/message.csv");
40 FileWriter fileWriter = new FileWriter(file);
41 BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
42
43
44 bufferedWriter.write("[Format Definition] => uuid|gender|firstname|lastname|mail|telephone|fax|content|privacy|created|createdAddress|");
45
46 Iterator<Message> messageIterator = messageDaoLocal.findAll(0, max).iterator();
47 while(messageIterator.hasNext()) {
48 Message next = messageIterator.next();
49 bufferedWriter.write("\n");
50 bufferedWriter.write(convertToCsvLine(next));
51 generateContentFile(next);
52 }
53
54 bufferedWriter.close();
55 fileWriter.close();
56 backupFiles.add(file);
57
58 return backupFiles;
59 }
60
61 private String convertToCsvLine(Message next) {
62 LOGGER.info("convertToCsvLine(Page next) aufgerufen.");
63
64 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
65
66
67 StringBuffer nextString = new StringBuffer();
68
69 nextString.append(next.getUuid());
70 nextString.append("|");
71
72 nextString.append(next.getGender().toString());
73 nextString.append("|");
74
75 nextString.append(next.getFirstname());
76 nextString.append("|");
77
78 nextString.append(next.getLastname());
79 nextString.append("|");
80
81 nextString.append(next.getMail());
82 nextString.append("|");
83
84 nextString.append(next.getTelephone());
85 nextString.append("|");
86
87 nextString.append(next.getFax());
88 nextString.append("|");
89
90 nextString.append("message_" + next.getUuid() + ".txt");
91 nextString.append("|");
92
93 nextString.append(next.getPrivacy().toString());
94 nextString.append("|");
95
96 nextString.append(simpleDateFormat.format(next.getCreated()));
97 nextString.append("|");
98
99 nextString.append(next.getCreatedAddress());
100 nextString.append("|");
101
102 return nextString.toString();
103 }
104
105 private void generateContentFile(Message message) throws IOException {
106 File file = new File("/tmp/message_" + message.getUuid() + ".txt");
107 FileWriter fileWriter = new FileWriter(file);
108 BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
109 bufferedWriter.write(message.getContent());
110 bufferedWriter.close();
111 fileWriter.close();
112 backupFiles.add(file);
113 }
114
115 }