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(">", "&gt;"); 696 str = str.replaceAll(">", "&gt;");
790 str = str.replaceAll("\"", "&quot;"); 697 str = str.replaceAll("\"", "&quot;");
791 str = str.replaceAll("'", "&#39;"); 698 str = str.replaceAll("'", "&#39;");
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 }