annotate src/main/java/app/bbs/NetworkJungleBulletinBoard.java @ 177:6f104ab4eb81

fit jungle core but editMessage is not work
author tatsuki
date Mon, 01 Sep 2014 00:04:32 +0900
parents ac7d1070f449
children d6944d788121
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
112
8f9811a1e00c Moved app files
one
parents: 105
diff changeset
1 package app.bbs;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
2
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
3 import java.io.File;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
4 import java.io.IOException;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
5 import java.nio.ByteBuffer;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
6 import java.util.concurrent.atomic.AtomicInteger;
39
10359a815068 add alice.jungle.codesegment.remote
one
parents: 38
diff changeset
7
10359a815068 add alice.jungle.codesegment.remote
one
parents: 38
diff changeset
8 import alice.jungle.core.NetworkDefaultJungle;
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
9 import alice.jungle.persistent.AliceJournal;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
10 import alice.jungle.persistent.NetworkJournal;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
11 import alice.jungle.persistent.PersistentJournal;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
12 import alice.jungle.transaction.JungleUpdater;
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
13 import app.bbs.thinks.getAttributeImp;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
125
6104702a1880 Added dependency bulletinboard in pom.xml
one
parents: 124
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
31 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
32 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
33 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
34 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
35 import junit.framework.Assert;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
36
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
37 public class NetworkJungleBulletinBoard implements NetworkBulletinBoard {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
38 private final Jungle jungle;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
39 private final NetworkJournal journal;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
40 private final String LOG_DIR;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
41 private Boolean persistentFlag;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
42 private AtomicInteger requestCounter;
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
43 private long renewTime;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
44
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
45 private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
46 journal = _journal;
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
47 jungle = new NetworkDefaultJungle(journal, _uuid,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
48 new DefaultTreeEditor(new DefaultTraverser()));
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
49 BulletinBoardJungleManager.setJungle(jungle);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
50 persistentFlag = false;
147
202ea963ec20 Added requestCounter in BulletinBoardJungleManager
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 146
diff changeset
51 requestCounter = BulletinBoardJungleManager.getRequestCounter();
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
52 LOG_DIR = "./log";
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
53 renewTime = 0;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
54 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
55
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
56 public NetworkJungleBulletinBoard(String _uuid) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
57 this(_uuid, new AliceJournal());
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
58 jungle.createNewTree("boards");
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
59 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
60
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
61 public static NetworkBulletinBoard NewPersistentJungle(String _uuid) {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
62 NetworkJungleBulletinBoard board = new NetworkJungleBulletinBoard(
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
63 _uuid, new PersistentJournal());
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
64 board.persistentFlag = true;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
65 return board;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
66 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
67
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
68 public void init() {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
69 if (!persistentFlag) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
70 return;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
71 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
72 checkAndCreateLogDirectory();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
73 try {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
74 commitLogRecover();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
75 } catch (IOException e) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
76 e.printStackTrace();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
77 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
78 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
79
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
80 public void checkAndCreateLogDirectory() {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
81 File logFile = new File(LOG_DIR);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
82 if (!logFile.exists()) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
83 logFile.mkdir();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
84 return;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
85 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
86 if (logFile.isFile()) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
87 logFile.delete();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
88 logFile.mkdir();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
89 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
90 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
91
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
92 public void commitLogRecover() throws IOException {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
93 File[] logFiles = new File(LOG_DIR).listFiles();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
94 for (File logFile : logFiles) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
95 commitLogRecover(logFile);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
96 logFile.delete();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
97 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
98 if (jungle.getTreeByName("boards") == null) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
99 jungle.createNewTree("boards");
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
100 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
101 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
102
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
103 private void commitLogRecover(File logFile) throws IOException {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
104 journal.setInputFile(logFile);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
105 ChangeListReader reader = journal.getReader();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
106 if (reader == null)
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
107 return;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
108 for (ChangeList chList : reader) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
109 String treeName = chList.getTreeName();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
110 JungleTree tree = jungle.getTreeByName(treeName);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
111 if (tree == null) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
112 tree = jungle.createNewTree(treeName);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
113 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
114 JungleTreeEditor editor = tree.getLocalTreeEditor();
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
115 Either<Error, JungleTreeEditor> either = JungleUpdater.edit(editor,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
116 chList);
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
117 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
118 if (either.isA()) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
119 throw new IOException("Failed commit log recovery");
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
120 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
121 editor.success();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
122 }
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 112
diff changeset
123 }
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
124
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
125 public Iterable<String> getBoards() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
126 JungleTree tree = jungle.getTreeByName("boards");
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
127 TreeNode node = tree.getRootNode();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
128 Children<TreeNode> chs = node.getChildren();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
129
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
130 IterableConverter.Converter<String, TreeNode> converter = new IterableConverter.Converter<String, TreeNode>() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
131 public String conv(TreeNode _b) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
132 ByteBuffer e = _b.getAttributes().get("name");
174
e30880a72909 change servlet encode utf-8
tatsuki
parents: 172
diff changeset
133 System.out.println(new String(e.array()));
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
134 return new String(e.array());
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
135 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
136 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
137
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
138 return new IterableConverter<String, TreeNode>(chs, converter);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
139 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
140
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
141 public long getRenewTime(String _boardName) {
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
142 return renewTime;
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
143 }
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
144
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
145 public void createBoards(final String _name, final String _author, final String _initMessage, final String _editKey) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
146 requestCounter.incrementAndGet();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
147 if (null == jungle.createNewTree(_name)) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
148 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
149 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
150
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
151 JungleTree tree = jungle.getTreeByName("boards");
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
152 JungleTreeEditor editor = tree.getTreeEditor();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
153 DefaultNodePath root = new DefaultNodePath();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
154 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
155 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
156 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
157 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
158 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
159
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
160 either = editor.putAttribute(root.add(0), "name",
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
161 ByteBuffer.wrap(_name.getBytes()));
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
162 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
163 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
164 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
165 editor = either.b();
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
166 final long timestamp = System.currentTimeMillis();
129
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
167 ByteBuffer tBuffer = ByteBuffer.allocate(16);
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
168 tBuffer.putLong(timestamp);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
169 either = editor.putAttribute(root.add(0), "timestamp", tBuffer);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
170 if (either.isA()) {
129
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
171 throw new IllegalStateException();
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
172 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
173 either = either.b().success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
174 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
175 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
176 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
177
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
178 tree = jungle.getTreeByName(_name);
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
179 editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
180 either = editor.addNewChildAt(root, 0);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
181 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
182 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
183 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
184 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
185
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
186 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
187 ByteBuffer tBuffer2 = ByteBuffer.allocate(16);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
188
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
189 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
190 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
191 node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
192 node = node.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
193 node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
194 tBuffer2.putLong(timestamp);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
195 node = node.getAttributes().put("timestamp", tBuffer2).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
196 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
197 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
198
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
199 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
200 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
201 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
202 op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
203 op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_initMessage.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
204 op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
205 op = op.add(new PutAttributeOperation("timestamp", tBuffer2));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
206 return op;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
207 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
208 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
209
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
210 either = editor.edit(root.add(0), e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
211 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
212 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
213 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
214 either.b().success();
147
202ea963ec20 Added requestCounter in BulletinBoardJungleManager
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 146
diff changeset
215
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
216 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
217
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
218 public void createFolder(final String _board, final String _author, final String _message, final String _editKey, String _nodeNum) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
219 JungleTree tree = jungle.getTreeByName(_board);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
220 if (tree == null) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
221 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
222 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
223
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
224 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
225 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
226 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
227 if (!_nodeNum.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
228 path = path.add(Integer.parseInt(_nodeNum.substring(count,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
229 count + 1)));
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
230 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
231 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
232 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
233 requestCounter.incrementAndGet();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
234 Either<Error, JungleTreeEditor> either;
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
235 final long timestamp = System.currentTimeMillis();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
236 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
237 tBuffer.putLong(timestamp);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
238
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
239 do {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
240 TreeNode node = tree.getRootNode();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
241 DefaultTraverser traverser = new DefaultTraverser();
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
242 // TraversableNodeWrapper<Node> traversable = new
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
243 // TraversableNodeWrapper<Node>(node);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
244 DefaultEvaluator evaluator = new DefaultEvaluator(path);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
245 Either<Error, Traversal<TreeNode>> ret = traverser.traverse(node,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
246 evaluator);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
247 if (ret.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
248 Assert.fail();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
249 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
250
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
251 Traversal<TreeNode> traversal = ret.b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
252 TreeNode target = traversal.destination();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
253 int size = target.getChildren().size();
65
ebf42371454b remove warning
one
parents: 64
diff changeset
254 JungleTreeEditor editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
255 either = editor.addNewChildAt(path, size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
256 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
257 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
258 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
259 editor = either.b();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
260
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
261 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
262
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
263 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
264 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
265 node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
266 node = node.getAttributes().put("timestamp", tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
267 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
268 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
269
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
270 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
271 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
272 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
273 op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
274 op = op.add(new PutAttributeOperation("timestamp", tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
275 return op;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
276 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
277 };
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
278 path = path.add(size);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
279 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
280 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
281 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
282 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
283 editor = either.b();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
284 either = editor.success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
285 } while (either.isA());
93
75cf01a430a6 Added LocalTreeEditor
one
parents: 92
diff changeset
286
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
287 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
288
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
289 public void createBoardMessage(final String _board, final String _author, final String _message, final String _editKey) {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
290 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
291 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
292 if (tree == null) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
293 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
294 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
295
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
296 Either<Error, JungleTreeEditor> either;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
297 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
298 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
299 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
300 do {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
301
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
302 TreeNode node = tree.getRootNode();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
303 int size = node.getChildren().size();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
304 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
305
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
306 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
307 either = editor.addNewChildAt(path, size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
308 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
309 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
310 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
311 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
312
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
313 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
314 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
315 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
316 node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
317 node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
318 node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
319 node = node.getAttributes().put("timestamp", tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
320 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
321 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
322
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
323 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
324 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
325 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
326 op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
327 op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
328 op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
329 op = op.add(new PutAttributeOperation("timestamp", tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
330 return op;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
331 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
332 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
333 path = path.add(size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
334 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
335 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
336 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
337 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
338 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
339 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
340 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
341
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
342 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
343
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
344 public void editMessage(String _board, String _nodeNum,final String _author, final String _message, final String _editKey) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
345 requestCounter.incrementAndGet();
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
346 final long timestamp = System.currentTimeMillis();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
347 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
348 tBuffer.putLong(timestamp);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
349 JungleTree tree = jungle.getTreeByName(_board);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
350 Either<Error, JungleTreeEditor> either = null;
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
351
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
352 do {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
353 DefaultNodePath path = new DefaultNodePath();
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
354 try {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
355 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
356 if (!_nodeNum.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
357 path = path.add(Integer.parseInt(_nodeNum.substring(count, count + 1)));
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
358 }
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
359 } catch (Exception _e) {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
360 }
65
ebf42371454b remove warning
one
parents: 64
diff changeset
361 JungleTreeEditor editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
362 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
363 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
364 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
365 System.out.println(new String(node.getAttributes().get("mes").array()));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
366 node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
367 node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
368 node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
369 node = node.getAttributes().put("timestamp", tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
370 System.out.println(new String(node.getAttributes().get("mes").array()));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
371 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
372 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
373
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
374 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
375 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
376 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
377 op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
378 op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
379 op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
380 op = op.add(new PutAttributeOperation("timestamp", tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
381 return op;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
382 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
383 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
384 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
385 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
386 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
387 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
388 editor = either.b();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
389 either = editor.success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
390 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
391 renewTime = timestamp;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
392 }
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
393
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
394 public void createAttribute(String _board, String _uuid, final String _author, final String _message, final String _editKey) {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
395 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
396 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
397 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
398 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
399 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
400 Either<Error, JungleTreeEditor> either = null;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
401 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
402 do {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
403 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
404 for (int count = 0; _uuid.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
405 if (!_uuid.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
406 path = path.add(Integer.parseInt(_uuid.substring(count,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
407 count + 1)));
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
408 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
409 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
410 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
411
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
412 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
413 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
414 String str;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
415
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
416 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
417 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
418 str = "0";
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
419 int count = 0;
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
420 for (; _e.getAttributes().get("mes" + String.valueOf(count)) != null; count++) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
421 }
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
422 str = String.valueOf(count);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
423 node = node.getAttributes().put("mes" + str,ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
424 node = node.getAttributes().put("timestamp" + str, tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
425 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
426 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
427
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
428 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
429 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
430 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
431 op = op.add(new PutAttributeOperation("mes" + str,ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
432 op = op.add(new PutAttributeOperation("timestamp" + str,tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
433 return op;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
434 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
435 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
436 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
437 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
438 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
439 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
440 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
441 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
442 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
443 }
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
444
174
e30880a72909 change servlet encode utf-8
tatsuki
parents: 172
diff changeset
445 public void editAttribute(String boardName, String _path, final String id, final String _message) {
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
446 requestCounter.incrementAndGet();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
447 final long timestamp = System.currentTimeMillis();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
448 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
449 tBuffer.putLong(timestamp);
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
450 JungleTree tree = jungle.getTreeByName(boardName);
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
451 Either<Error, JungleTreeEditor> either = null;
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
452 DefaultNodePath path = new DefaultNodePath();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
453 do {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
454 try {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
455 for (int count = 0; _path.substring(count, count + 1) != null; count++) {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
456 if (!_path.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
457 path = path.add(Integer.parseInt(_path.substring(count,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
458 count + 1)));
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
459 }
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
460 } catch (Exception _e) {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
461 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
462
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
463 JungleTreeEditor editor = tree.getTreeEditor();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
464 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
465 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
466 TreeNode node = _e;
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
467 // EnableNodeWrapper<T> node = _e.getWrap();
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
468 node = node.getAttributes().put("mes" + id,ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
469 node = node.getAttributes().put("timestamp" + id, tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
470 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
471 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
472
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
473 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
474 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
475 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
476 op = op.add(new PutAttributeOperation("mes"+ id, ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
477 op = op.add(new PutAttributeOperation("timestamp"+ id, tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
478 return op;
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
479 }
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
480 };
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
481 either = editor.edit(path, e);
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
482 if (either.isA()) {
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
483 throw new IllegalStateException();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
484 }
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
485 editor = either.b();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
486 either = editor.success();
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
487 } while (either.isA());
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
488 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
489
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
490 public void deleteNode(String _board, String _path, String _id) {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
491 requestCounter.incrementAndGet();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
492 int id = Integer.parseInt(_id);
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
493 final long timestamp = System.currentTimeMillis();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
494 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
495 tBuffer.putLong(timestamp);
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
496 JungleTree tree = jungle.getTreeByName(_board);
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
497 Either<Error, JungleTreeEditor> either = null;
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
498 DefaultNodePath path = new DefaultNodePath();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
499 do {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
500 try {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
501 for (int count = 0; _path.substring(count, count + 1) != null; count++) {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
502 if (!_path.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
503 path = path.add(Integer.parseInt(_path.substring(count,count + 1)));
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
504 }
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
505 } catch (Exception _e) {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
506 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
507
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
508 JungleTreeEditor editor = tree.getTreeEditor();
169
54d68cda84c4 create edit Attribute & Folder Method
tatsuki
parents: 168
diff changeset
509
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
510 either = editor.deleteChildAt(path, id);
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
511 if (either.isA()) {
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
512 throw new IllegalStateException();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
513 }
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
514 editor = either.b();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
515 either = editor.success();
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
516 } while (either.isA());
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
517
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
518 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
519
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
520 public void deleteAttribute(String _board, String _path, final String id) {
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
521 requestCounter.incrementAndGet();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
522 final long timestamp = System.currentTimeMillis();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
523 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
524 tBuffer.putLong(timestamp);
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
525 JungleTree tree = jungle.getTreeByName(_board);
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
526 Either<Error, JungleTreeEditor> either = null;
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
527 DefaultNodePath path = new DefaultNodePath();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
528 do {
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
529 try {
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
530 for (int count = 0; _path.substring(count, count + 1) != null; count++) {
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
531 if (!_path.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
532 path = path.add(Integer.parseInt(_path.substring(count,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
533 count + 1)));
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
534 }
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
535 } catch (Exception _e) {
176
ac7d1070f449 sanitizing
tatsuki
parents: 174
diff changeset
536 System.out.println("屑");
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
537 }
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
538
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
539 JungleTreeEditor editor = tree.getTreeEditor();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
540 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
541 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
542 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
543 node = node.getAttributes().delete("mes" + id).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
544 node = node.getAttributes().delete("timestamp" + id).b();
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
545 int count = Integer.parseInt(id);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
546 for (; node.getAttributes().get("mes" + String.valueOf(count + 1)) != null;) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
547 node = node.getAttributes().put("mes" + count,_e.getAttributes().get("mes"+ String.valueOf(count + 1))).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
548 node = node.getAttributes().put("timestamp" + count, tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
549 count++;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
550 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
551 if (count != Integer.parseInt(id)) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
552 node = node.getAttributes().delete("timestamp" + count).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
553 node = node.getAttributes().delete("mes" + count).b();
172
00c3cca1903c delete nod method bug fix
tatsuki
parents: 171
diff changeset
554 }
00c3cca1903c delete nod method bug fix
tatsuki
parents: 171
diff changeset
555
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
556 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
557 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
558
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
559 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
560 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
561 return new DefaultOperationLog();
170
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
562 }
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
563 };
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
564 either = editor.edit(path, e);
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
565 if (either.isA()) {
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
566 throw new IllegalStateException();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
567 }
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
568 editor = either.b();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
569 either = editor.success();
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
570 } while (either.isA());
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
571 }
2403b9a4416f create Delete Attribute Method
tatsuki
parents: 169
diff changeset
572
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
573 public void editMatrixMessage(String _board, String _uuid,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
574 final String _author, final String _message, final String _editKey) {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
575 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
576 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
577 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
578 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
579 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
580 Either<Error, JungleTreeEditor> either = null;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
581 do {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
582 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
583 path = path.add(Integer.parseInt(_uuid));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
584
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
585 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
586 NodeEditor e = new NodeEditor() {
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
587 public <T extends TreeNode> Either<Error, TreeNode> edit(T _e) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
588 TreeNode node = _e;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
589 node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
590 node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
591 node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
592 node = node.getAttributes().put("timestamp", tBuffer).b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
593 return DefaultEither.newB(node);
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
594 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
595
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
596 @Override
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
597 public OperationLog getLog() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
598 OperationLog op = new DefaultOperationLog();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
599 op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
600 op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
601 op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
602 op = op.add(new PutAttributeOperation("timestamp", tBuffer));
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
603 return op;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
604 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
605 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
606 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
607 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
608 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
609 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
610 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
611 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
612 } while (either.isA());
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
613 renewTime = timestamp;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
614 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
615
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
616 public Iterable<BoardMessage> getMessages(String _boardName) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
617 requestCounter.incrementAndGet();
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
618 JungleTree tree = jungle.getTreeByName(_boardName);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
619 TreeNode node = tree.getRootNode();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
620 Children<TreeNode> chs = node.getChildren();
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
621 final AtomicInteger counter = new AtomicInteger(0);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
622 IterableConverter.Converter<BoardMessage, TreeNode> converter = new IterableConverter.Converter<BoardMessage, TreeNode>() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
623 public BoardMessage conv(TreeNode _b) {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
624 String uuid = Integer.toString(counter.get());
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
625 String author = new String(_b.getAttributes().get("author").array());
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
626 String message = new String(_b.getAttributes().get("mes").array());
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
627 counter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
628 return new BoardMessageImpl(author, message, uuid);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
629 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
630 };
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
631 return new IterableConverter<BoardMessage, TreeNode>(chs, converter);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
632 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
633
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
634 public Iterable<BoardMessage> getFolder(String _boardName, String _nodeNum) {
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
635
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
636 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
637 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
638 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
639 if (!_nodeNum.substring(count, count + 1).equals("/"))
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
640 path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1)));
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
641 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
642 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
643 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
644 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
645 JungleTree tree = jungle.getTreeByName(_boardName);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
646 TreeNode node = tree.getRootNode();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
647
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
648 DefaultTraverser traverser = new DefaultTraverser();
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
649 // TraversableNodeWrapper<Node> traversable = new
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
650 // TraversableNodeWrapper<Node>(node);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
651 DefaultEvaluator evaluator = new DefaultEvaluator(path);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
652 Either<Error, Traversal<TreeNode>> ret = traverser.traverse(node,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
653 evaluator);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
654 if (ret.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
655 Assert.fail();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
656 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
657
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
658 Traversal<TreeNode> traversal = ret.b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
659 TreeNode target = traversal.destination();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
660 Children<TreeNode> chs = target.getChildren();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
661
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
662 final AtomicInteger counter = new AtomicInteger(0);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
663 IterableConverter.Converter<BoardMessage, TreeNode> converter = new IterableConverter.Converter<BoardMessage, TreeNode>() {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
664 public BoardMessage conv(TreeNode _b) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
665 String uuid = Integer.toString(counter.get());
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
666 String message = new String(_b.getAttributes().get("mes")
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
667 .array());
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
668 counter.incrementAndGet();
168
91f6dd655a01 refactoring
tatsuki
parents: 167
diff changeset
669 return new BoardMessageImpl(null, message, uuid);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
670 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
671 };
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
672 return new IterableConverter<BoardMessage, TreeNode>(chs, converter);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
673 }
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
674
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
675 public getAttributeImp getAttribute(String _boardName, String _nodeNum) {
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
676
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
677 DefaultNodePath path = new DefaultNodePath();
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
678 try {
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
679 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
680 if (!_nodeNum.substring(count, count + 1).equals("/"))
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
681 path = path.add(Integer.parseInt(_nodeNum.substring(count,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
682 count + 1)));
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
683 }
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
684 } catch (Exception _e) {
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
685 }
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
686 requestCounter.incrementAndGet();
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
687 JungleTree tree = jungle.getTreeByName(_boardName);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
688 TreeNode node = tree.getRootNode();
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
689
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
690 DefaultTraverser traverser = new DefaultTraverser();
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
691 // TraversableNodeWrapper<Node> traversable = new
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
692 // TraversableNodeWrapper<Node>(node);
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
693 DefaultEvaluator evaluator = new DefaultEvaluator(path);
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
694 Either<Error, Traversal<TreeNode>> ret = traverser.traverse(node,
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
695 evaluator);
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
696 if (ret.isA()) {
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
697 Assert.fail();
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
698 }
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
699
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
700 Traversal<TreeNode> traversal = ret.b();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
701 TreeNode target = traversal.destination();
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
702 return new getAttributeImp(target);
167
564f683b7aef Matrix Date type insert ok
tatsuki
parents: 166
diff changeset
703 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
704
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
705 public int getRequestNum() {
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
706 return requestCounter.get();
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
707 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
708
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
709 private static class BoardMessageImpl implements BoardMessage {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
710 private final String author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
711 private final String message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
712 private final String uuid;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
713
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
714 public BoardMessageImpl(String _author, String _message, String _uuid) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
715 author = _author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
716 message = _message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
717 uuid = _uuid;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
718 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
719
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
720 public String getAuthor() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
721 return author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
722 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
723
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
724 public String getMessage() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
725 return message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
726 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
727
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
728 public String getUUID() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
729 return uuid;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
730 }
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
731
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
732 }
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
733
177
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
734 public String sanitize(String str) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
735 if (str == null) {
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
736 return str;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
737 }
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
738 str = str.replaceAll("&", "&amp;");
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
739 str = str.replaceAll("<", "&lt;");
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
740 str = str.replaceAll(">", "&gt;");
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
741 str = str.replaceAll("\"", "&quot;");
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
742 str = str.replaceAll("'", "&#39;");
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
743 return str;
6f104ab4eb81 fit jungle core but editMessage is not work
tatsuki
parents: 176
diff changeset
744 }
171
df063cf6f3b5 add Delete Node Method
tatsuki
parents: 170
diff changeset
745
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
746 }