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.Iterator;
9   import java.util.List;
10  
11  import org.apache.logging.log4j.LogManager;
12  import org.apache.logging.log4j.Logger;
13  
14  import de.tivsource.page.dao.administration.UserDaoLocal;
15  import de.tivsource.page.entity.administration.Role;
16  import de.tivsource.page.entity.administration.User;
17  
18  public class BackupUser {
19  
20      /**
21       * Statischer Logger der Klasse.
22       */
23      private static final Logger LOGGER = LogManager.getLogger(BackupUser.class);
24  
25  	private static final int MAX = 1500;
26  	
27  	private static UserDaoLocal userDaoLocal;
28  
29  	public static void setUserDaoLocal(UserDaoLocal userDaoLocal) {
30  		BackupUser.userDaoLocal = userDaoLocal;
31  	}
32  
33  	public static File getBackupFile() throws IOException {
34  	    LOGGER.info("getBackupFile() aufgerufen.");
35  
36  		// Datei Kram
37  		File backupFile = new File("/tmp/user.csv");
38      	FileWriter backupFileWriter = new FileWriter(backupFile);
39      	BufferedWriter backupFileWriterOut = new BufferedWriter(backupFileWriter);
40  
41      	// Format Definition 
42      	backupFileWriterOut.write("[Format Definition] => uuid|username|email|firstname|lastname|password|roles|created|modified|modifiedBy|modifiedAddress|");
43  
44      	Iterator<User> typeIterator = userDaoLocal.findAll(0, MAX).iterator();
45      	while(typeIterator.hasNext()) {
46      		User next = typeIterator.next();
47      		backupFileWriterOut.write("\n");
48      		backupFileWriterOut.write(convertToCsvLine(next));
49      	}
50      	backupFileWriterOut.close();
51      	backupFileWriter.close();
52  
53      	return backupFile;
54  	}// Ende getBackupFiles()
55  
56  	private static String convertToCsvLine(User next) {
57  
58  	    // uuid|username|email|firstname|lastname|password|roles|created|modified|modifiedBy|modifiedAddress|
59  
60  		StringBuffer nextString = new StringBuffer();
61  
62  		nextString.append(next.getUuid());
63  		nextString.append("|");
64  
65  		nextString.append(next.getUsername());
66  		nextString.append("|");
67  
68  		nextString.append(next.getEmail());
69  		nextString.append("|");
70  
71  		nextString.append(next.getFirstname());
72  		nextString.append("|");
73  
74  		nextString.append(next.getLastname());
75  		nextString.append("|");
76  
77  		nextString.append(next.getPassword());
78  		nextString.append("|");
79  
80  		nextString.append(generateRoles(next.getRoles()));
81  		nextString.append("|");
82  
83  		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
84  		nextString.append(simpleDateFormat.format(next.getCreated()));
85  		nextString.append("|");
86  
87  		nextString.append(simpleDateFormat.format(next.getModified()));
88  		nextString.append("|");
89  
90          nextString.append(next.getModifiedBy());
91          nextString.append("|");
92  
93          nextString.append(next.getModifiedAddress());
94          nextString.append("|");
95  
96  		return nextString.toString();
97  	}
98  
99  	private static String generateRoles(List<Role> roles) {
100 	    StringBuffer nextString = new StringBuffer();
101 		Iterator<Role> tagIterator = roles.iterator();
102 		while(tagIterator.hasNext()) {
103 			Role next = tagIterator.next();
104 		    nextString.append(next.getUuid());
105 		    nextString.append(";");
106 		}
107 	    return nextString.toString();
108 	}
109 	
110 }// Ende class