1 package de.tivsource.page.install;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.io.UnsupportedEncodingException;
8 import java.security.NoSuchAlgorithmException;
9 import java.text.ParseException;
10 import java.text.SimpleDateFormat;
11 import java.util.ArrayList;
12 import java.util.Date;
13 import java.util.List;
14
15 import de.tivsource.page.dao.administration.RoleDaoLocal;
16 import de.tivsource.page.dao.administration.UserDaoLocal;
17 import de.tivsource.page.entity.administration.Role;
18 import de.tivsource.page.entity.administration.User;
19
20 public class CreateUser {
21
22 private UserDaoLocal userDaoLocal;
23
24 private RoleDaoLocal roleDaoLocal;
25
26 public void setUserDaoLocal(UserDaoLocal userDaoLocal) {
27 this.userDaoLocal = userDaoLocal;
28 }
29
30 public void setRoleDaoLocal(RoleDaoLocal roleDaoLocal) {
31 this.roleDaoLocal = roleDaoLocal;
32 }
33
34 public void generate() {
35 InputStream inputStream = CreateUser.class.getClassLoader().getResourceAsStream("csv/user.csv");
36 generate(inputStream);
37 }
38
39 public void generate(InputStream inputStream) {
40 BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
41 try {
42 String line = null;
43 while ((line = in.readLine()) != null) {
44 if (!line.startsWith("[Format Definition]")) {
45 User user = convert(line);
46 userDaoLocal.merge(user);
47 }
48 }
49 } catch (IOException e) {
50 e.printStackTrace();
51 } catch (NoSuchAlgorithmException e) {
52 e.printStackTrace();
53 }
54 }
55
56 private User convert(String line) throws NoSuchAlgorithmException, UnsupportedEncodingException {
57
58
59
60 String[] items = line.split("\\|");
61
62
63 User user = new User();
64
65 user.setUuid(items[0]);
66 user.setUsername(items[1]);
67 user.setEmail(items[2]);
68 user.setFirstname(items[3]);
69 user.setLastname(items[4]);
70 user.setPassword(items[5]);
71
72
73 List<Role> roles = new ArrayList<Role>();
74
75
76 String[] csvTags = items[6].split(";");
77
78
79 for (int i = 0; i < csvTags.length; i++) {
80 roles.add(roleDaoLocal.findByTechnical(csvTags[i]));
81 }
82 user.setRoles(roles);
83
84
85 user.setCreated(convertDateString(items[7]));
86 user.setModified(convertDateString(items[8]));
87
88
89 user.setModifiedAddress(items[9]);
90
91 user.setModifiedBy(items[10]);
92
93 return user;
94 }
95
96
97
98
99
100
101 private Date convertDateString(String dateString) {
102 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
103 try {
104 return simpleDateFormat.parse(dateString);
105 } catch (ParseException e) {
106 return new Date();
107 }
108 }
109
110 }