annotate src/main/java/app/bbs/NetworkJungleBulletinBoard.java @ 166:b3d5fbe95b9a

Create Folder Method
author tatsuki
date Mon, 28 Jul 2014 14:09:54 +0900
parents eef85b5faa15
children 564f683b7aef
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;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
125
6104702a1880 Added dependency bulletinboard in pom.xml
one
parents: 124
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
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;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
31 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
32 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
33 import junit.framework.Assert;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
34
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
35 public class NetworkJungleBulletinBoard implements NetworkBulletinBoard {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
36 private final Jungle jungle;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
37 private final NetworkJournal journal;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
38 private final String LOG_DIR;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
39 private Boolean persistentFlag;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
40 private AtomicInteger requestCounter;
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
41 private long renewTime;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
42
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
43 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
44 journal = _journal;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
45 jungle = new NetworkDefaultJungle(journal, _uuid,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
46 new DefaultTreeEditor(new DefaultTraverser()));
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
47 BulletinBoardJungleManager.setJungle(jungle);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
48 persistentFlag = false;
147
202ea963ec20 Added requestCounter in BulletinBoardJungleManager
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 146
diff changeset
49 requestCounter = BulletinBoardJungleManager.getRequestCounter();
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
50 LOG_DIR = "./log";
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
51 renewTime = 0;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
52 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
53
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
54 public NetworkJungleBulletinBoard(String _uuid) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
55 this(_uuid, new AliceJournal());
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
56 jungle.createNewTree("boards");
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
57 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
58
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
59 public static NetworkBulletinBoard NewPersistentJungle(String _uuid) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
60 NetworkJungleBulletinBoard board = new NetworkJungleBulletinBoard(
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
61 _uuid, new PersistentJournal());
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
62 board.persistentFlag = true;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
63 return board;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
64 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
65
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
66 public void init() {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
67 if (!persistentFlag) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
68 return;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
69 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
70 checkAndCreateLogDirectory();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
71 try {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
72 commitLogRecover();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
73 } catch (IOException e) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
74 e.printStackTrace();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
75 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
76 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
77
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
78 public void checkAndCreateLogDirectory() {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
79 File logFile = new File(LOG_DIR);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
80 if (!logFile.exists()) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
81 logFile.mkdir();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
82 return;
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
83 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
84 if (logFile.isFile()) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
85 logFile.delete();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
86 logFile.mkdir();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
87 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
88 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
89
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
90 public void commitLogRecover() throws IOException {
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
91 File[] logFiles = new File(LOG_DIR).listFiles();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
92 for (File logFile : logFiles) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
93 commitLogRecover(logFile);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
94 logFile.delete();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
95 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
96 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
97 jungle.createNewTree("boards");
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
98 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
99 }
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 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
102 journal.setInputFile(logFile);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
103 ChangeListReader reader = journal.getReader();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
104 if (reader == null)
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
105 return;
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
106 for (ChangeList chList : reader) {
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
107 String treeName = chList.getTreeName();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
108 JungleTree tree = jungle.getTreeByName(treeName);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
109 if (tree == null) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
110 tree = jungle.createNewTree(treeName);
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
111 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
112 JungleTreeEditor editor = tree.getLocalTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
113 Either<Error, JungleTreeEditor> either = JungleUpdater.edit(editor,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
114 chList);
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
115 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
116 if (either.isA()) {
135
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
117 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
118 }
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
119 editor.success();
2e8034524259 Added NetworkJournal and SingletonMessageFromAlice class
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 133
diff changeset
120 }
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 112
diff changeset
121 }
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
122
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
123 public Iterable<String> getBoards() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
124 JungleTree tree = jungle.getTreeByName("boards");
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
125 Node node = tree.getRootNode();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
126 Children<Node> chs = node.getChildren();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
127
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
128 IterableConverter.Converter<String, Node> converter = new IterableConverter.Converter<String, Node>() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
129 public String conv(Node _b) {
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
130 ByteBuffer e = _b.getAttributes().get("name");
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
131 return new String(e.array());
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
132 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
133 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
134
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
135 return new IterableConverter<String, Node>(chs, converter);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
136 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
137
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
138 public long getRenewTime(String _boardName) {
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
139 return renewTime;
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
140 }
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
141
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
142 public void createBoards(final String _name, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
143 final String _initMessage, final String _editKey) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
144 requestCounter.incrementAndGet();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
145 if (null == jungle.createNewTree(_name)) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
146 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
147 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
148
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
149 JungleTree tree = jungle.getTreeByName("boards");
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
150 JungleTreeEditor editor = tree.getTreeEditor();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
151 DefaultNodePath root = new DefaultNodePath();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
152 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
153 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
154 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
155 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
156 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
157
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
158 either = editor.putAttribute(root.add(0), "name",
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
159 ByteBuffer.wrap(_name.getBytes()));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
160 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
161 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
162 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
163 editor = either.b();
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
164 final long timestamp = System.currentTimeMillis();
129
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
165 ByteBuffer tBuffer = ByteBuffer.allocate(16);
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
166 tBuffer.putLong(timestamp);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
167 either = editor.putAttribute(root.add(0), "timestamp", tBuffer);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
168 if (either.isA()) {
129
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
169 throw new IllegalStateException();
1a3edba05f50 Fixed bug NetworkJungleBulletinBoard
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 126
diff changeset
170 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
171 either = either.b().success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
172 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
173 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
174 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
175
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
176 tree = jungle.getTreeByName(_name);
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
177 editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
178 either = editor.addNewChildAt(root, 0);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
179 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
180 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
181 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
182 editor = either.b();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
183
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
184 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
185 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
186 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
187 .put("author", ByteBuffer.wrap(_author.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
188 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
189 .put("mes", ByteBuffer.wrap(_initMessage.getBytes()))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
190 .b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
191 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
192 .put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
130
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 129
diff changeset
193 ByteBuffer tBuffer2 = ByteBuffer.allocate(16);
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
194 tBuffer2.putLong(timestamp);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
195 _e = _e.getAttributes().put("timestamp", tBuffer2).b();
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
196 return DefaultEither.newB(_e);
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
197 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
198 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
199
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
200 either = editor.edit(root.add(0), e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
201 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
202 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
203 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
204 either.b().success();
147
202ea963ec20 Added requestCounter in BulletinBoardJungleManager
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 146
diff changeset
205
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
206 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
207
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
208 public void createFolder(final String _board, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
209 final String _message, final String _editKey, String _nodeNum) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
210 JungleTree tree = jungle.getTreeByName(_board);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
211 if (tree == null) {
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 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
214 // //---------------------------------------------------------------------------------
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
215 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
216 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
217 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
218 if (!_nodeNum.substring(count, count + 1).equals("/"))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
219 path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1)));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
220 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
221 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
222 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
223 requestCounter.incrementAndGet();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
224 Either<Error, JungleTreeEditor> either;
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
225 final long timestamp = System.currentTimeMillis();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
226 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
227 tBuffer.putLong(timestamp);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
228 do {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
229 Node node = tree.getRootNode();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
230
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
231
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
232 DefaultTraverser traverser = new DefaultTraverser();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
233 TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>(node);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
234 DefaultEvaluator evaluator = new DefaultEvaluator(path);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
235 Either<Error, Traversal<TraversableNodeWrapper<Node>>> ret = traverser.traverse(traversable, evaluator);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
236 if (ret.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
237 Assert.fail();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
238 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
239
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
240 Traversal<TraversableNodeWrapper<Node>> traversal = ret.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
241 TraversableNodeWrapper<Node> target = traversal.destination();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
242 int size = target.getWrapped().getChildren().size() ;
65
ebf42371454b remove warning
one
parents: 64
diff changeset
243 JungleTreeEditor editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
244 either = editor.addNewChildAt(path, size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
245 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
246 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
247 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
248 editor = either.b();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
249
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
250 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
251 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
252 _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
253 _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
254 _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
255 _e = _e.getAttributes().put("timestamp", tBuffer).b();
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
256 return DefaultEither.newB(_e);
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
257 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
258 };
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
259 path = path.add(size);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
260 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
261 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
262 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
263 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
264 editor = either.b();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
265 either = editor.success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
266 } while (either.isA());
93
75cf01a430a6 Added LocalTreeEditor
one
parents: 92
diff changeset
267
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
268 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
269
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
270 public void createBoardMessage(final String _board, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
271 final String _message, final String _editKey) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
272 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
273 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
274 if (tree == null) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
275 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
276 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
277
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
278 Either<Error, JungleTreeEditor> either;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
279 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
280 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
281 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
282 do {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
283 Node node = tree.getRootNode();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
284 int size = node.getChildren().size();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
285 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
286
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
287 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
288 either = editor.addNewChildAt(path, size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
289 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
290 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
291 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
292 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
293
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
294 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
295 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
296 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
297 .put("author", ByteBuffer.wrap(_author.getBytes()))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
298 .b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
299 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
300 .put("mes", ByteBuffer.wrap(_message.getBytes()))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
301 .b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
302 _e = _e.getAttributes()
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
303 .put("key", ByteBuffer.wrap(_editKey.getBytes()))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
304 .b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
305 _e = _e.getAttributes().put("timestamp", tBuffer).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
306 return DefaultEither.newB(_e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
307 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
308 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
309 path = path.add(size);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
310 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
311 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
312 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
313 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
314 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
315 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
316 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
317
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
318 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
319
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
320 public void editMessage(String _board, String _uuid, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
321 final String _message, final String _editKey) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
322 requestCounter.incrementAndGet();
149
06cddf529325 Modified lates renew time
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 147
diff changeset
323 final long timestamp = System.currentTimeMillis();
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
324 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
325 tBuffer.putLong(timestamp);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
326 JungleTree tree = jungle.getTreeByName(_board);
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
327 Either<Error, JungleTreeEditor> either = null;
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
328 do {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
329 DefaultNodePath path = new DefaultNodePath();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
330 path = path.add(Integer.parseInt(_uuid));
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
331
65
ebf42371454b remove warning
one
parents: 64
diff changeset
332 JungleTreeEditor editor = tree.getTreeEditor();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
333 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
334 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
335 _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
336 _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
337 _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
338 _e = _e.getAttributes().put("timestamp", tBuffer).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
339 return DefaultEither.newB(_e);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
340 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
341 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
342 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
343 if (either.isA()) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
344 throw new IllegalStateException();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
345 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
346 editor = either.b();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 45
diff changeset
347 either = editor.success();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
348 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
349 renewTime = timestamp;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
350 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
351
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
352 public void createAttribute(String _board, String _uuid, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
353 final String _message, final String _editKey) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
354 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
355 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
356 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
357 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
358 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
359 Either<Error, JungleTreeEditor> either = null;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
360 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
361 do {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
362 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
363 for (int count = 0; _uuid.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
364 if (!_uuid.substring(count, count + 1).equals("/"))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
365 path = path.add(Integer.parseInt(_uuid.substring(count,count + 1)));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
366 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
367 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
368 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
369 Node node = tree.getRootNode();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
370
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
371
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
372 DefaultTraverser traverser = new DefaultTraverser();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
373 TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>(node);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
374 DefaultEvaluator evaluator = new DefaultEvaluator(path);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
375 Either<Error, Traversal<TraversableNodeWrapper<Node>>> ret = traverser.traverse(traversable, evaluator);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
376 if (ret.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
377 Assert.fail();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
378 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
379
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
380 Traversal<TraversableNodeWrapper<Node>> traversal = ret.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
381 TraversableNodeWrapper<Node> target = traversal.destination();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
382 final Node cheakNode = target.getWrapped();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
383 System.out.println(cheakNode.getAttributes().get("attribute"));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
384
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
385
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
386 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
387 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
388 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
389 // EnableNodeWrapper<T> node = _e.getWrap();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
390 _e = _e.getAttributes().put("author" , ByteBuffer.wrap(_author.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
391 _e = _e.getAttributes().put("mes" , ByteBuffer.wrap(_message.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
392 _e = _e.getAttributes().put("key" , ByteBuffer.wrap(_editKey.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
393 _e = _e.getAttributes().put("timestamp", tBuffer).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
394
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
395 return DefaultEither.newB(_e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
396 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
397 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
398 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
399 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
400 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
401 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
402 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
403 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
404 } while (either.isA());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
405 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
406
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
407 public void editMatrixMessage(String _board, String _uuid, final String _author,
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
408 final String _message, final String _editKey) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
409 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
410 final long timestamp = System.currentTimeMillis();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
411 final ByteBuffer tBuffer = ByteBuffer.allocate(16);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
412 tBuffer.putLong(timestamp);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
413 JungleTree tree = jungle.getTreeByName(_board);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
414 Either<Error, JungleTreeEditor> either = null;
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
415 do {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
416 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
417 path = path.add(Integer.parseInt(_uuid));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
418
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
419 JungleTreeEditor editor = tree.getTreeEditor();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
420 NodeEditor e = new NodeEditor() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
421 public <T extends EditableNode<T>> Either<Error, T> edit(T _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
422 _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
423 _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
424 _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
425 _e = _e.getAttributes().put("timestamp", tBuffer).b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
426 return DefaultEither.newB(_e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
427 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
428 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
429 either = editor.edit(path, e);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
430 if (either.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
431 throw new IllegalStateException();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
432 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
433 editor = either.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
434 either = editor.success();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
435 } while (either.isA());
150
eef85b5faa15 Removed renew atribute
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
436 renewTime = timestamp;
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
437 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
438
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
439 public Iterable<BoardMessage> getMessages(String _boardName) {
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
440 requestCounter.incrementAndGet();
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
441 JungleTree tree = jungle.getTreeByName(_boardName);
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
442 Node node = tree.getRootNode();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
443 Children<Node> chs = node.getChildren();
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
444 final AtomicInteger counter = new AtomicInteger(0);
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
445 IterableConverter.Converter<BoardMessage, Node> converter = new IterableConverter.Converter<BoardMessage, Node>() {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
446 public BoardMessage conv(Node _b) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
447 String uuid = Integer.toString(counter.get());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
448 String author = new String(_b.getAttributes().get("author")
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
449 .array());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
450 String message = new String(_b.getAttributes().get("mes")
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
451 .array());
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
452 counter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
453 return new BoardMessageImpl(author, message, uuid);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
454 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
455 };
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
456 return new IterableConverter<BoardMessage, Node>(chs, converter);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
457 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
458
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
459 public Iterable<BoardMessage> getFolder(String _boardName, String _nodeNum) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
460
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
461 DefaultNodePath path = new DefaultNodePath();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
462 try {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
463 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
464 if (!_nodeNum.substring(count, count + 1).equals("/"))
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
465 path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1)));
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
466 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
467 } catch (Exception _e) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
468 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
469 requestCounter.incrementAndGet();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
470 JungleTree tree = jungle.getTreeByName(_boardName);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
471 Node node = tree.getRootNode();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
472
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
473 DefaultTraverser traverser = new DefaultTraverser();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
474 TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>(node);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
475 DefaultEvaluator evaluator = new DefaultEvaluator(path);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
476 Either<Error, Traversal<TraversableNodeWrapper<Node>>> ret = traverser.traverse(traversable, evaluator);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
477 if (ret.isA()) {
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
478 Assert.fail();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
479 }
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
480
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
481 Traversal<TraversableNodeWrapper<Node>> traversal = ret.b();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
482 TraversableNodeWrapper<Node> target = traversal.destination();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
483 Children<Node> chs = target.getWrapped().getChildren();
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
484
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
485 final AtomicInteger counter = new AtomicInteger(0);
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
486 IterableConverter.Converter<BoardMessage, Node> converter = new IterableConverter.Converter<BoardMessage, Node>() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
487 public BoardMessage conv(Node _b) {
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
488 String uuid = Integer.toString(counter.get());
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
489 String author = new String(_b.getAttributes().get("author").array());
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
490 String message = new String(_b.getAttributes().get("mes").array());
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
491 counter.incrementAndGet();
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
492 return new BoardMessageImpl(author, message, uuid);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
493 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
494 };
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
495 return new IterableConverter<BoardMessage, Node>(chs, converter);
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
496 }
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
497
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
498 public int getRequestNum() {
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
499 return requestCounter.get();
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
500 }
146
29734d7d6521 Added ShowMessageWithTimeStampServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 143
diff changeset
501
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
502 private static class BoardMessageImpl implements BoardMessage {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
503 private final String author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
504 private final String message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
505 private final String uuid;
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
506
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
507 public BoardMessageImpl(String _author, String _message, String _uuid) {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
508 author = _author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
509 message = _message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
510 uuid = _uuid;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
511 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
512
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
513 public String getAuthor() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
514 return author;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
515 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
516
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
517 public String getMessage() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
518 return message;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
519 }
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
520
166
b3d5fbe95b9a Create Folder Method
tatsuki
parents: 150
diff changeset
521 public String getUUID() {
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
522 return uuid;
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
523 }
143
7a7bac51a3cc Added RequestNumCheckServlet
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
524
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
525 }
124
dacfa7eba841 To select persistent mode "-persistent"
one
parents: 123
diff changeset
526
38
d8ee57a1c2c6 add pom.xml and bbs
one
parents:
diff changeset
527 }