View Javadoc

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       * Statischer Logger der Klasse.
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  		// Datei Kram
39  		File file = new File("/tmp/message.csv");
40      	FileWriter fileWriter = new FileWriter(file);
41      	BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
42  
43      	// Format Definition 
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  		// uuid|gender|firstname|lastname|mail|telephone|fax|content|privacy|created|createdAddress|
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 }// Ende class