Mercurial > hg > Members > shoshi > jungle > bbs
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/bbs/network/NetworkJungleBulletinBoard.java @ 8:4a66328f0141
fix Loggingnode
author | suruga |
---|---|
date | Wed, 19 Jul 2017 16:16:17 +0900 |
parents | 5acde010c6db |
children | d9a9154a075e |
comparison
equal
deleted
inserted
replaced
7:6c584862fe93 | 8:4a66328f0141 |
---|---|
3 | 3 |
4 import jp.ac.u_ryukyu.ie.cr.bbs.local.BoardMessage; | 4 import jp.ac.u_ryukyu.ie.cr.bbs.local.BoardMessage; |
5 import jp.ac.u_ryukyu.ie.cr.bbs.local.GetAttributeImp; | 5 import jp.ac.u_ryukyu.ie.cr.bbs.local.GetAttributeImp; |
6 import jp.ac.u_ryukyu.ie.cr.bbs.local.IterableConverter; | 6 import jp.ac.u_ryukyu.ie.cr.bbs.local.IterableConverter; |
7 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; | 7 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; |
8 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; | |
9 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; | |
10 import jp.ac.u_ryukyu.ie.cr.jungle.core.Children; | 8 import jp.ac.u_ryukyu.ie.cr.jungle.core.Children; |
11 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList; | 9 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList; |
12 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeListReader; | 10 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeListReader; |
13 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; | 11 import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.DefaultOperationLog; |
14 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; | 12 import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.LoggingNode; |
15 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; | 13 import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.OperationLog; |
16 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.DefaultOperationLog; | 14 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath; |
17 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.LoggingNode; | |
18 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.OperationLog; | |
19 import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor; | 15 import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor; |
20 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode; | 16 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; |
17 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.Default.DefaultTreeNode; | |
18 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode; | |
21 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator; | 19 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator; |
22 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; | 20 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; |
23 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal; | 21 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal; |
22 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; | |
24 import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither; | 23 import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither; |
25 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; | 24 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; |
26 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; | 25 import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; |
27 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.core.NetworkDefaultJungle; | 26 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.core.NetworkDefaultJungle; |
28 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.AliceJournal; | 27 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.AliceJournal; |
29 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.NetworkJournal; | 28 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.NetworkJournal; |
30 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.PersistentJournal; | 29 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.PersistentJournal; |
31 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.JungleUpdater; | 30 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.JungleUpdater; |
44 private AtomicInteger requestCounter; | 43 private AtomicInteger requestCounter; |
45 private long renewTime; | 44 private long renewTime; |
46 | 45 |
47 private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) { | 46 private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) { |
48 journal = _journal; | 47 journal = _journal; |
49 jungle = new NetworkDefaultJungle(journal, _uuid, new DefaultTreeEditor(new DefaultTraverser())); | 48 jungle = new NetworkDefaultJungle(journal, _uuid); |
50 BulletinBoardJungleManager.setJungle(jungle); | 49 BulletinBoardJungleManager.setJungle(jungle); |
51 persistentFlag = false; | 50 persistentFlag = false; |
52 requestCounter = BulletinBoardJungleManager.getRequestCounter(); | 51 requestCounter = BulletinBoardJungleManager.getRequestCounter(); |
53 LOG_DIR = "./log"; | 52 LOG_DIR = "./log"; |
54 renewTime = 0; | 53 renewTime = 0; |
109 String treeName = chList.getTreeName(); | 108 String treeName = chList.getTreeName(); |
110 JungleTree tree = jungle.getTreeByName(treeName); | 109 JungleTree tree = jungle.getTreeByName(treeName); |
111 if (tree == null) { | 110 if (tree == null) { |
112 tree = jungle.createNewTree(treeName); | 111 tree = jungle.createNewTree(treeName); |
113 } | 112 } |
114 JungleTreeEditor editor = tree.getLocalTreeEditor(); | 113 JungleTreeEditor editor = tree.getLocalJungleTreeEditor(); |
115 Either<Error, JungleTreeEditor> either = JungleUpdater.edit(editor, chList); | 114 Either<Error, JungleTreeEditor> either = JungleUpdater.edit(editor, chList); |
116 editor = either.b(); | 115 editor = either.b(); |
117 if (either.isA()) { | 116 if (either.isA()) { |
118 throw new IOException("Failed commit log recovery"); | 117 throw new IOException("Failed commit log recovery"); |
119 } | 118 } |
146 if (null == jungle.createNewTree(_name)) { | 145 if (null == jungle.createNewTree(_name)) { |
147 throw new IllegalStateException(); | 146 throw new IllegalStateException(); |
148 } | 147 } |
149 | 148 |
150 JungleTree tree = jungle.getTreeByName("boards"); | 149 JungleTree tree = jungle.getTreeByName("boards"); |
151 JungleTreeEditor editor = tree.getTreeEditor(); | 150 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
152 DefaultNodePath root = new DefaultNodePath(); | 151 DefaultNodePath root = new DefaultNodePath(); |
153 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0); | 152 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0); |
154 if (either.isA()) { | 153 if (either.isA()) { |
155 throw new IllegalStateException(); | 154 throw new IllegalStateException(); |
156 } | 155 } |
172 if (either.isA()) { | 171 if (either.isA()) { |
173 throw new IllegalStateException(); | 172 throw new IllegalStateException(); |
174 } | 173 } |
175 | 174 |
176 tree = jungle.getTreeByName(_name); | 175 tree = jungle.getTreeByName(_name); |
177 editor = tree.getTreeEditor(); | 176 editor = tree.getJungleTreeEditor(); |
178 either = editor.addNewChildAt(root, 0); | 177 either = editor.addNewChildAt(root, 0); |
179 if (either.isA()) { | 178 if (either.isA()) { |
180 throw new IllegalStateException(); | 179 throw new IllegalStateException(); |
181 } | 180 } |
182 editor = either.b(); | 181 editor = either.b(); |
183 | 182 |
184 NodeEditor e = new NodeEditor() { | 183 NodeEditor e = new NodeEditor() { |
185 ByteBuffer tBuffer2 = ByteBuffer.allocate(16); | 184 ByteBuffer tBuffer2 = ByteBuffer.allocate(16); |
186 | 185 |
187 public Either<Error, LoggingNode> edit(TreeNode node) { | 186 public Either<Error, LoggingNode> edit(TreeNode node) { |
188 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 187 LoggingNode logNode = wrap(node,null, new DefaultOperationLog()); |
189 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); | 188 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); |
190 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b(); | 189 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b(); |
191 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); | 190 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); |
192 tBuffer2.putLong(timestamp); | 191 tBuffer2.putLong(timestamp); |
193 logNode = logNode.getAttributes().put("timestamp", tBuffer2).b(); | 192 logNode = logNode.getAttributes().put("timestamp", tBuffer2).b(); |
194 return DefaultEither.newB(logNode); | 193 return DefaultEither.newB(logNode); |
195 } | 194 } |
196 | 195 |
197 @Override | 196 @Override |
198 public LoggingNode wrap(TreeNode node, OperationLog op) { | 197 public LoggingNode wrap(TreeNode treeNode, TreeNode treeNode1, OperationLog operationLog) { |
199 return new LoggingNode(node, op); | 198 return new LoggingNode(treeNode, operationLog); |
200 } | 199 } |
201 }; | 200 }; |
202 | 201 |
203 either = editor.edit(root.add(0), e); | 202 either = editor.edit(root.add(0), e); |
204 if (either.isA()) { | 203 if (either.isA()) { |
238 } | 237 } |
239 | 238 |
240 Traversal traversal = ret.b(); | 239 Traversal traversal = ret.b(); |
241 TreeNode target = traversal.destination(); | 240 TreeNode target = traversal.destination(); |
242 int size = target.getChildren().size(); | 241 int size = target.getChildren().size(); |
243 JungleTreeEditor editor = tree.getTreeEditor(); | 242 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
244 either = editor.addNewChildAt(path, size); | 243 either = editor.addNewChildAt(path, size); |
245 if (either.isA()) { | 244 if (either.isA()) { |
246 throw new IllegalStateException(); | 245 throw new IllegalStateException(); |
247 } | 246 } |
248 editor = either.b(); | 247 editor = either.b(); |
249 | 248 |
250 NodeEditor e = new NodeEditor() { | 249 NodeEditor e = new NodeEditor() { |
251 | 250 |
252 public Either<Error, LoggingNode> edit(TreeNode node) { | 251 public Either<Error, LoggingNode> edit(TreeNode node) { |
253 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 252 LoggingNode logNode = wrap(node,null, new DefaultOperationLog()); |
254 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); | 253 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); |
255 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); | 254 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); |
256 return DefaultEither.newB(logNode); | 255 return DefaultEither.newB(logNode); |
257 } | 256 } |
258 | 257 |
259 @Override | 258 @Override |
260 public LoggingNode wrap(TreeNode node, OperationLog op) { | 259 public LoggingNode wrap(TreeNode node, TreeNode node1, OperationLog op) { |
261 return new LoggingNode(node, op); | 260 return new LoggingNode(node, op); |
262 } | 261 } |
263 | 262 |
264 }; | 263 }; |
265 path = path.add(size); | 264 path = path.add(size); |
288 | 287 |
289 TreeNode node = tree.getRootNode(); | 288 TreeNode node = tree.getRootNode(); |
290 int size = node.getChildren().size(); | 289 int size = node.getChildren().size(); |
291 DefaultNodePath path = new DefaultNodePath(); | 290 DefaultNodePath path = new DefaultNodePath(); |
292 | 291 |
293 JungleTreeEditor editor = tree.getTreeEditor(); | 292 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
294 either = editor.addNewChildAt(path, size); | 293 either = editor.addNewChildAt(path, size); |
295 if (either.isA()) { | 294 if (either.isA()) { |
296 throw new IllegalStateException(); | 295 throw new IllegalStateException(); |
297 } | 296 } |
298 editor = either.b(); | 297 editor = either.b(); |
299 | 298 |
300 NodeEditor e = new NodeEditor() { | 299 NodeEditor e = new NodeEditor() { |
301 public Either<Error, LoggingNode> edit(TreeNode node) { | 300 public Either<Error, LoggingNode> edit(TreeNode node) { |
302 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 301 LoggingNode logNode = wrap(node, null, new DefaultOperationLog()); |
303 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); | 302 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); |
304 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); | 303 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); |
305 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); | 304 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); |
306 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); | 305 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); |
307 return DefaultEither.newB(logNode); | 306 return DefaultEither.newB(logNode); |
308 } | 307 } |
309 | 308 |
310 @Override | 309 @Override |
311 public LoggingNode wrap(TreeNode node, OperationLog op) { | 310 public LoggingNode wrap(TreeNode node,TreeNode node1, OperationLog op) { |
312 return new LoggingNode(node, op); | 311 return new LoggingNode(node, op); |
313 } | 312 } |
314 }; | 313 }; |
315 path = path.add(size); | 314 path = path.add(size); |
316 either = editor.edit(path, e); | 315 either = editor.edit(path, e); |
337 if (!num.equals("-1")) | 336 if (!num.equals("-1")) |
338 path = path.add(Integer.parseInt(num)); | 337 path = path.add(Integer.parseInt(num)); |
339 } | 338 } |
340 do { | 339 do { |
341 | 340 |
342 JungleTreeEditor editor = tree.getTreeEditor(); | 341 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
343 NodeEditor e = new NodeEditor() { | 342 NodeEditor e = new NodeEditor() { |
344 public Either<Error, LoggingNode> edit(TreeNode node) { | 343 public Either<Error, LoggingNode> edit(TreeNode node) { |
345 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 344 LoggingNode logNode = wrap(node,null,new DefaultOperationLog()); |
346 System.out.println(new String(node.getAttributes().get("mes").array())); | 345 System.out.println(new String(node.getAttributes().get("mes").array())); |
347 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); | 346 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); |
348 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); | 347 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); |
349 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); | 348 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); |
350 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); | 349 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); |
351 System.out.println(new String(node.getAttributes().get("mes").array())); | 350 System.out.println(new String(node.getAttributes().get("mes").array())); |
352 return DefaultEither.newB(logNode); | 351 return DefaultEither.newB(logNode); |
353 } | 352 } |
354 | 353 |
355 @Override | 354 @Override |
356 public LoggingNode wrap(TreeNode node, OperationLog op) { | 355 public LoggingNode wrap(TreeNode node,TreeNode node1, OperationLog op) { |
357 return new LoggingNode(node, op); | 356 return new LoggingNode(node, op); |
358 } | 357 } |
359 }; | 358 }; |
360 either = editor.edit(path, e); | 359 either = editor.edit(path, e); |
361 if (either.isA()) { | 360 if (either.isA()) { |
381 if (!num.equals("-1")) | 380 if (!num.equals("-1")) |
382 path = path.add(Integer.parseInt(num)); | 381 path = path.add(Integer.parseInt(num)); |
383 } | 382 } |
384 | 383 |
385 do { | 384 do { |
386 JungleTreeEditor editor = tree.getTreeEditor(); | 385 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
387 NodeEditor e = new NodeEditor() { | 386 NodeEditor e = new NodeEditor() { |
388 String str; | 387 String str; |
389 | 388 |
390 public Either<Error, LoggingNode> edit(TreeNode node) { | 389 public Either<Error, LoggingNode> edit(TreeNode node) { |
391 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 390 LoggingNode logNode = wrap(node, null,new DefaultOperationLog()); |
392 str = "0"; | 391 str = "0"; |
393 int count = 0; | 392 int count = 0; |
394 for (; logNode.getAttributes().get("mes" + String.valueOf(count)) != null; count++) { | 393 for (; logNode.getAttributes().get("mes" + String.valueOf(count)) != null; count++) { |
395 } | 394 } |
396 str = String.valueOf(count); | 395 str = String.valueOf(count); |
398 logNode = logNode.getAttributes().put("timestamp" + str, tBuffer).b(); | 397 logNode = logNode.getAttributes().put("timestamp" + str, tBuffer).b(); |
399 return DefaultEither.newB(logNode); | 398 return DefaultEither.newB(logNode); |
400 } | 399 } |
401 | 400 |
402 @Override | 401 @Override |
403 public LoggingNode wrap(TreeNode node, OperationLog op) { | 402 public LoggingNode wrap(TreeNode node, TreeNode node1,OperationLog op) { |
404 return new LoggingNode(node, op); | 403 return new LoggingNode(node, op); |
405 } | 404 } |
406 }; | 405 }; |
407 either = editor.edit(path, e); | 406 either = editor.edit(path, e); |
408 if (either.isA()) { | 407 if (either.isA()) { |
426 if (!num.equals("-1")) | 425 if (!num.equals("-1")) |
427 path = path.add(Integer.parseInt(num)); | 426 path = path.add(Integer.parseInt(num)); |
428 } | 427 } |
429 | 428 |
430 do { | 429 do { |
431 JungleTreeEditor editor = tree.getTreeEditor(); | 430 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
432 NodeEditor e = new NodeEditor() { | 431 NodeEditor e = new NodeEditor() { |
433 public Either<Error, LoggingNode> edit(TreeNode node) { | 432 public Either<Error, LoggingNode> edit(TreeNode node) { |
434 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 433 LoggingNode logNode = wrap(node, null,new DefaultOperationLog()); |
435 logNode = logNode.getAttributes().put("mes" + id, ByteBuffer.wrap(_message.getBytes())).b(); | 434 logNode = logNode.getAttributes().put("mes" + id, ByteBuffer.wrap(_message.getBytes())).b(); |
436 logNode = logNode.getAttributes().put("timestamp" + id, tBuffer).b(); | 435 logNode = logNode.getAttributes().put("timestamp" + id, tBuffer).b(); |
437 return DefaultEither.newB(logNode); | 436 return DefaultEither.newB(logNode); |
438 } | 437 } |
439 | 438 |
440 @Override | 439 @Override |
441 public LoggingNode wrap(TreeNode node, OperationLog op) { | 440 public LoggingNode wrap(TreeNode node,TreeNode node1, OperationLog op) { |
442 return new LoggingNode(node, op); | 441 return new LoggingNode(node, op); |
443 } | 442 } |
444 }; | 443 }; |
445 either = editor.edit(path, e); | 444 either = editor.edit(path, e); |
446 if (either.isA()) { | 445 if (either.isA()) { |
465 if (!num.equals("-1")) | 464 if (!num.equals("-1")) |
466 path = path.add(Integer.parseInt(num)); | 465 path = path.add(Integer.parseInt(num)); |
467 } | 466 } |
468 | 467 |
469 do { | 468 do { |
470 JungleTreeEditor editor = tree.getTreeEditor(); | 469 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
471 | 470 |
472 either = editor.deleteChildAt(path, id); | 471 either = editor.deleteChildAt(path, id); |
473 if (either.isA()) { | 472 if (either.isA()) { |
474 throw new IllegalStateException(); | 473 throw new IllegalStateException(); |
475 } | 474 } |
492 if (!num.equals("-1")) | 491 if (!num.equals("-1")) |
493 path = path.add(Integer.parseInt(num)); | 492 path = path.add(Integer.parseInt(num)); |
494 } | 493 } |
495 | 494 |
496 do { | 495 do { |
497 JungleTreeEditor editor = tree.getTreeEditor(); | 496 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
498 NodeEditor e = new NodeEditor() { | 497 NodeEditor e = new NodeEditor() { |
499 public Either<Error, LoggingNode> edit(TreeNode node) { | 498 public Either<Error, LoggingNode> edit(TreeNode node) { |
500 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 499 LoggingNode logNode = wrap(node,null, new DefaultOperationLog()); |
501 logNode = logNode.getAttributes().delete("mes" + id).b(); | 500 logNode = logNode.getAttributes().delete("mes" + id).b(); |
502 logNode = logNode.getAttributes().delete("timestamp" + id).b(); | 501 logNode = logNode.getAttributes().delete("timestamp" + id).b(); |
503 int count = Integer.parseInt(id); | 502 int count = Integer.parseInt(id); |
504 for (; logNode.getAttributes().get("mes" + String.valueOf(count + 1)) != null; ) { | 503 for (; logNode.getAttributes().get("mes" + String.valueOf(count + 1)) != null; ) { |
505 logNode = logNode.getAttributes() | 504 logNode = logNode.getAttributes() |
514 | 513 |
515 return DefaultEither.newB(logNode); | 514 return DefaultEither.newB(logNode); |
516 } | 515 } |
517 | 516 |
518 @Override | 517 @Override |
519 public LoggingNode wrap(TreeNode node, OperationLog op) { | 518 public LoggingNode wrap(TreeNode node, TreeNode node1,OperationLog op) { |
520 return new LoggingNode(node, op); | 519 return new LoggingNode(node, op); |
521 } | 520 } |
522 }; | 521 }; |
523 either = editor.edit(path, e); | 522 either = editor.edit(path, e); |
524 if (either.isA()) { | 523 if (either.isA()) { |
539 Either<Error, JungleTreeEditor> either = null; | 538 Either<Error, JungleTreeEditor> either = null; |
540 do { | 539 do { |
541 DefaultNodePath path = new DefaultNodePath(); | 540 DefaultNodePath path = new DefaultNodePath(); |
542 path = path.add(Integer.parseInt(_uuid)); | 541 path = path.add(Integer.parseInt(_uuid)); |
543 | 542 |
544 JungleTreeEditor editor = tree.getTreeEditor(); | 543 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
545 NodeEditor e = new NodeEditor() { | 544 NodeEditor e = new NodeEditor() { |
546 public Either<Error, LoggingNode> edit(TreeNode node) { | 545 public Either<Error, LoggingNode> edit(TreeNode node) { |
547 LoggingNode logNode = wrap(node, new DefaultOperationLog()); | 546 LoggingNode logNode = wrap(node, null,new DefaultOperationLog()); |
548 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); | 547 logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); |
549 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); | 548 logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); |
550 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); | 549 logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); |
551 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); | 550 logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); |
552 return DefaultEither.newB(logNode); | 551 return DefaultEither.newB(logNode); |
553 } | 552 } |
554 | 553 |
555 @Override | 554 @Override |
556 public LoggingNode wrap(TreeNode node, OperationLog op) { | 555 public LoggingNode wrap(TreeNode node, TreeNode node1,OperationLog op) { |
557 return new LoggingNode(node, op); | 556 return new LoggingNode(node, op); |
558 } | 557 } |
559 }; | 558 }; |
560 either = editor.edit(path, e); | 559 either = editor.edit(path, e); |
561 if (either.isA()) { | 560 if (either.isA()) { |