0
|
1 package nabble.model.export;
|
|
2
|
|
3 import fschmidt.db.DbDatabase;
|
|
4 import nabble.model.ModelException;
|
|
5 import nabble.model.ModelHome;
|
|
6 import nabble.model.Node;
|
|
7 import nabble.model.Site;
|
|
8 import nabble.model.User;
|
|
9 import nabble.view.lib.Jtp;
|
|
10
|
|
11 import javax.imageio.ImageIO;
|
|
12 import java.awt.image.BufferedImage;
|
|
13 import java.io.IOException;
|
|
14 import java.net.URL;
|
|
15 import java.util.Date;
|
|
16
|
|
17
|
|
18 final class ImportImpl extends AbstractImportImpl {
|
|
19
|
|
20 ImportImpl(Site site) {
|
|
21 super(site);
|
|
22 }
|
|
23
|
|
24 protected void start() {
|
|
25 ModelHome.beginImport();
|
|
26 }
|
|
27
|
|
28 protected void end() {
|
|
29 ModelHome.endImport();
|
|
30 }
|
|
31
|
|
32 protected String createNode(NodeData data) throws ModelException {
|
|
33 Node node;
|
|
34 DbDatabase db = site.getDb();
|
|
35 db.beginTransaction();
|
|
36 try {
|
|
37 node = site.getGoodCopy().newNode(data);
|
|
38 db.commitTransaction();
|
|
39 } finally {
|
|
40 db.endTransaction();
|
|
41 }
|
|
42 return Jtp.url(node.getGoodCopy());
|
|
43 }
|
|
44
|
|
45 public void addUser(String name, String email, String passwordDigest, Date registrationDate, String smallAvatarUrl, String bigAvatarUrl) {
|
|
46 final DbDatabase db = site.getDb();
|
|
47 db.beginTransaction();
|
|
48 try {
|
|
49 User user = site.getOrCreateUser(email, name);
|
|
50 if (!user.isRegistered()) {
|
|
51 user.setPasswordDigest(passwordDigest);
|
|
52 user.register(registrationDate);
|
|
53 user.update();
|
|
54 user = user.getGoodCopy();
|
|
55 if (!user.hasAvatar() && smallAvatarUrl != null && bigAvatarUrl != null) {
|
|
56 BufferedImage small = ImageIO.read(new URL(smallAvatarUrl));
|
|
57 BufferedImage big = ImageIO.read(new URL(bigAvatarUrl));
|
|
58 user.saveAvatar(small, big);
|
|
59 }
|
|
60 }
|
|
61 db.commitTransaction();
|
|
62 } catch (IOException e) {
|
|
63 throw new RuntimeException(e);
|
|
64 } catch (ModelException e) {
|
|
65 throw new RuntimeException(e);
|
|
66 } finally {
|
|
67 db.endTransaction();
|
|
68 }
|
|
69 }
|
|
70
|
|
71 /** FOR OLD NABBLE ONLY -- TO BE REMOVED SOON */
|
|
72 public void addUser0(String name, String email, String password, long registrationDate) {
|
|
73 final DbDatabase db = site.getDb();
|
|
74 db.beginTransaction();
|
|
75 try {
|
|
76 User user = site.getOrCreateUser(email, name);
|
|
77 if (!user.isRegistered()) {
|
|
78 user.setPassword(password);
|
|
79 user.register(new Date(registrationDate));
|
|
80 user.update();
|
|
81 }
|
|
82 db.commitTransaction();
|
|
83 } catch (ModelException e) {
|
|
84 // do nothing -- skip this user
|
|
85 } finally {
|
|
86 db.endTransaction();
|
|
87 }
|
|
88 }
|
|
89 }
|