Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/main/java/app/bbs/NetworkJungleBulletinBoard.java @ 191:5d0734fd859d
fix error
author | tatsuki |
---|---|
date | Thu, 15 Jan 2015 09:23:23 +0900 |
parents | 269bada9eedc |
children | 3202a2a427b1 |
comparison
equal
deleted
inserted
replaced
190:269bada9eedc | 191:5d0734fd859d |
---|---|
1 package app.bbs; | 1 package app.bbs; |
2 | 2 |
3 import java.io.File; | 3 import java.io.File; |
4 import java.io.IOException; | 4 import java.io.IOException; |
5 import java.nio.ByteBuffer; | 5 import java.nio.ByteBuffer; |
6 import java.util.Iterator; | |
7 import java.util.concurrent.atomic.AtomicInteger; | 6 import java.util.concurrent.atomic.AtomicInteger; |
8 | |
9 import fj.data.List; | |
10 import fj.data.TreeMap; | |
11 import alice.jungle.core.NetworkDefaultJungle; | 7 import alice.jungle.core.NetworkDefaultJungle; |
12 import alice.jungle.persistent.AliceJournal; | 8 import alice.jungle.persistent.AliceJournal; |
13 import alice.jungle.persistent.NetworkJournal; | 9 import alice.jungle.persistent.NetworkJournal; |
14 import alice.jungle.persistent.PersistentJournal; | 10 import alice.jungle.persistent.PersistentJournal; |
15 import alice.jungle.transaction.JungleUpdater; | 11 import alice.jungle.transaction.JungleUpdater; |
16 import app.bbs.thinks.getAttributeImp; | |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; |
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage; |
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; | 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; |
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; | 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; |
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader; | 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader; |
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; |
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; |
27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; | 22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; |
29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; | 23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; |
30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; | 24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; |
31 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; | |
32 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor; | 25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor; |
33 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; | 26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; |
34 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | 27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
35 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; | |
36 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; | 28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; |
37 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; | 29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; |
38 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
39 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 31 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
40 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter; | 32 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter; |
41 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
42 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; | |
43 import junit.framework.Assert; | 33 import junit.framework.Assert; |
44 | 34 |
45 public class NetworkJungleBulletinBoard implements NetworkBulletinBoard { | 35 public class NetworkJungleBulletinBoard implements NetworkBulletinBoard { |
46 private final Jungle jungle; | 36 private final Jungle jungle; |
47 private final NetworkJournal journal; | 37 private final NetworkJournal journal; |
205 } | 195 } |
206 @Override | 196 @Override |
207 public LoggingNode wrap(TreeNode node, OperationLog op) { | 197 public LoggingNode wrap(TreeNode node, OperationLog op) { |
208 return new LoggingNode(node, op); | 198 return new LoggingNode(node, op); |
209 } | 199 } |
210 @Override | |
211 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
212 // TODO Auto-generated method stub | |
213 return null; | |
214 } | |
215 | |
216 }; | 200 }; |
217 | 201 |
218 either = editor.edit(root.add(0), e); | 202 either = editor.edit(root.add(0), e); |
219 if (either.isA()) { | 203 if (either.isA()) { |
220 throw new IllegalStateException(); | 204 throw new IllegalStateException(); |
278 @Override | 262 @Override |
279 public LoggingNode wrap(TreeNode node, OperationLog op) { | 263 public LoggingNode wrap(TreeNode node, OperationLog op) { |
280 return new LoggingNode(node, op); | 264 return new LoggingNode(node, op); |
281 } | 265 } |
282 | 266 |
283 @Override | |
284 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
285 // TODO Auto-generated method stub | |
286 return null; | |
287 } | |
288 | |
289 }; | 267 }; |
290 path = path.add(size); | 268 path = path.add(size); |
291 either = editor.edit(path, e); | 269 either = editor.edit(path, e); |
292 if (either.isA()) { | 270 if (either.isA()) { |
293 throw new IllegalStateException(); | 271 throw new IllegalStateException(); |
334 | 312 |
335 @Override | 313 @Override |
336 public LoggingNode wrap(TreeNode node, OperationLog op) { | 314 public LoggingNode wrap(TreeNode node, OperationLog op) { |
337 return new LoggingNode(node, op); | 315 return new LoggingNode(node, op); |
338 } | 316 } |
339 | |
340 @Override | |
341 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
342 // TODO Auto-generated method stub | |
343 return null; | |
344 } | |
345 | |
346 }; | 317 }; |
347 path = path.add(size); | 318 path = path.add(size); |
348 either = editor.edit(path, e); | 319 either = editor.edit(path, e); |
349 if (either.isA()) { | 320 if (either.isA()) { |
350 throw new IllegalStateException(); | 321 throw new IllegalStateException(); |
387 | 358 |
388 @Override | 359 @Override |
389 public LoggingNode wrap(TreeNode node, OperationLog op) { | 360 public LoggingNode wrap(TreeNode node, OperationLog op) { |
390 return new LoggingNode(node, op); | 361 return new LoggingNode(node, op); |
391 } | 362 } |
392 | |
393 @Override | |
394 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
395 // TODO Auto-generated method stub | |
396 return null; | |
397 } | |
398 | |
399 }; | 363 }; |
400 either = editor.edit(path, e); | 364 either = editor.edit(path, e); |
401 if (either.isA()) { | 365 if (either.isA()) { |
402 throw new IllegalStateException(); | 366 throw new IllegalStateException(); |
403 } | 367 } |
443 | 407 |
444 @Override | 408 @Override |
445 public LoggingNode wrap(TreeNode node, OperationLog op) { | 409 public LoggingNode wrap(TreeNode node, OperationLog op) { |
446 return new LoggingNode(node, op); | 410 return new LoggingNode(node, op); |
447 } | 411 } |
448 | |
449 @Override | |
450 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
451 // TODO Auto-generated method stub | |
452 return null; | |
453 } | |
454 | |
455 }; | 412 }; |
456 either = editor.edit(path, e); | 413 either = editor.edit(path, e); |
457 if (either.isA()) { | 414 if (either.isA()) { |
458 throw new IllegalStateException(); | 415 throw new IllegalStateException(); |
459 } | 416 } |
492 | 449 |
493 @Override | 450 @Override |
494 public LoggingNode wrap(TreeNode node, OperationLog op) { | 451 public LoggingNode wrap(TreeNode node, OperationLog op) { |
495 return new LoggingNode(node, op); | 452 return new LoggingNode(node, op); |
496 } | 453 } |
497 | |
498 @Override | |
499 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
500 // TODO Auto-generated method stub | |
501 return null; | |
502 } | |
503 | |
504 }; | 454 }; |
505 either = editor.edit(path, e); | 455 either = editor.edit(path, e); |
506 if (either.isA()) { | 456 if (either.isA()) { |
507 throw new IllegalStateException(); | 457 throw new IllegalStateException(); |
508 } | 458 } |
582 | 532 |
583 @Override | 533 @Override |
584 public LoggingNode wrap(TreeNode node, OperationLog op) { | 534 public LoggingNode wrap(TreeNode node, OperationLog op) { |
585 return new LoggingNode(node, op); | 535 return new LoggingNode(node, op); |
586 } | 536 } |
587 | |
588 @Override | |
589 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
590 // TODO Auto-generated method stub | |
591 return null; | |
592 } | |
593 | |
594 }; | 537 }; |
595 either = editor.edit(path, e); | 538 either = editor.edit(path, e); |
596 if (either.isA()) { | 539 if (either.isA()) { |
597 throw new IllegalStateException(); | 540 throw new IllegalStateException(); |
598 } | 541 } |
625 } | 568 } |
626 | 569 |
627 @Override | 570 @Override |
628 public LoggingNode wrap(TreeNode node, OperationLog op) { | 571 public LoggingNode wrap(TreeNode node, OperationLog op) { |
629 return new LoggingNode(node, op); | 572 return new LoggingNode(node, op); |
630 } | |
631 | |
632 @Override | |
633 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
634 // TODO Auto-generated method stub | |
635 return null; | |
636 } | 573 } |
637 }; | 574 }; |
638 either = editor.edit(path, e); | 575 either = editor.edit(path, e); |
639 if (either.isA()) { | 576 if (either.isA()) { |
640 throw new IllegalStateException(); | 577 throw new IllegalStateException(); |
702 } | 639 } |
703 }; | 640 }; |
704 return new IterableConverter<BoardMessage, TreeNode>(chs, converter); | 641 return new IterableConverter<BoardMessage, TreeNode>(chs, converter); |
705 } | 642 } |
706 | 643 |
707 public getAttributeImp getAttribute(String _boardName, String _nodeNum) { | |
708 | |
709 DefaultNodePath path = new DefaultNodePath(); | |
710 try { | |
711 for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) { | |
712 if (!_nodeNum.substring(count, count + 1).equals("/")) | |
713 path = path.add(Integer.parseInt(_nodeNum.substring(count, | |
714 count + 1))); | |
715 } | |
716 } catch (Exception _e) { | |
717 } | |
718 requestCounter.incrementAndGet(); | |
719 JungleTree tree = jungle.getTreeByName(_boardName); | |
720 TreeNode node = tree.getRootNode(); | |
721 | |
722 DefaultTraverser traverser = new DefaultTraverser(); | |
723 // TraversableNodeWrapper<Node> traversable = new | |
724 // TraversableNodeWrapper<Node>(node); | |
725 DefaultEvaluator evaluator = new DefaultEvaluator(path); | |
726 Either<Error, Traversal> ret = traverser.traverse(node, | |
727 evaluator); | |
728 if (ret.isA()) { | |
729 Assert.fail(); | |
730 } | |
731 | |
732 Traversal traversal = ret.b(); | |
733 TreeNode target = traversal.destination(); | |
734 return new getAttributeImp(target); | |
735 } | |
736 | |
737 | 644 |
738 | 645 |
739 public boolean compare(TreeNode compareNode, String compareAttribute) { | 646 public boolean compare(TreeNode compareNode, String compareAttribute) { |
740 String labName = compareNode.getAttributes().getString("mes"); | 647 String labName = compareNode.getAttributes().getString("mes"); |
741 if (labName.equals(compareAttribute)) | 648 if (labName.equals(compareAttribute)) |
789 str = str.replaceAll(">", ">"); | 696 str = str.replaceAll(">", ">"); |
790 str = str.replaceAll("\"", """); | 697 str = str.replaceAll("\"", """); |
791 str = str.replaceAll("'", "'"); | 698 str = str.replaceAll("'", "'"); |
792 return str; | 699 return str; |
793 } | 700 } |
794 | |
795 @Override | |
796 public String searchJungle(String requestName, String permmitName) { | |
797 // TODO Auto-generated method stub | |
798 return null; | |
799 } | |
800 | |
801 } | 701 } |