6
|
1 package example;
|
|
2
|
|
3 import java.nio.ByteBuffer;
|
|
4
|
7
|
5 import fj.data.List;
|
6
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
|
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
|
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
|
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
|
|
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
|
|
16 import junit.framework.Assert;
|
|
17
|
|
18 public class ReadThread extends Thread {
|
|
19 public static final String key = "name";
|
|
20 int roopCount;
|
|
21 Jungle j;
|
7
|
22 List<DefaultNodePath> paths;
|
6
|
23
|
7
|
24 ReadThread(Jungle j, int roopCount, List<DefaultNodePath> paths) {
|
6
|
25 this.roopCount = roopCount;
|
7
|
26 System.out.println(roopCount);
|
|
27 this.paths = paths;
|
6
|
28 this.j = j;
|
|
29 }
|
|
30
|
|
31 public void run() {
|
|
32 JungleTree tree = j.getTreeByName("tree");
|
7
|
33 DefaultTraverser traverser = new DefaultTraverser();
|
|
34 TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>(
|
|
35 tree.getRootNode());
|
6
|
36 for (int count = 0; count < roopCount; count++) {
|
7
|
37 for (DefaultNodePath path : paths) {
|
6
|
38 DefaultEvaluator evaluator = new DefaultEvaluator(path);
|
7
|
39 Either<Error, Traversal<TraversableNodeWrapper<Node>>> ret = traverser
|
6
|
40 .traverse(traversable, evaluator);
|
7
|
41 if (ret.isA()) {
|
6
|
42 Assert.fail();
|
|
43 }
|
7
|
44
|
|
45 Traversal<TraversableNodeWrapper<Node>> traversal = ret.b();
|
6
|
46 TraversableNodeWrapper<Node> target = traversal.destination();
|
|
47 ByteBuffer value = target.getWrapped().getAttributes().get(key);
|
7
|
48 String actual = new String(value.array());
|
|
49 System.out.println(actual);
|
|
50 // List<DefaultNodePath> parts = path.inits();
|
|
51 }
|
6
|
52
|
|
53 }
|
7
|
54
|
6
|
55 // ここまで処理
|
|
56 }
|
|
57 }
|