diff src/main/java/example/ReadThread.java @ 6:6954add9eea9

make Read test trial
author one
date Mon, 31 Mar 2014 07:00:11 +0900
parents
children 4e1f8f434648
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/example/ReadThread.java	Mon Mar 31 07:00:11 2014 +0900
@@ -0,0 +1,65 @@
+package example;
+
+import java.nio.ByteBuffer;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+import junit.framework.Assert;
+
+public class ReadThread extends Thread {
+	public static final String key = "name";
+	int roopCount;
+	Jungle j;
+
+	ReadThread(Jungle j, int roopCount) {
+		this.roopCount = roopCount;
+		this.j = j;
+	}
+
+	public void run() {
+		JungleTree tree = j.getTreeByName("tree");
+		for (int count = 0; count < roopCount; count++) {
+			for (int x = 0; x < 2; x++) {
+				DefaultNodePath path = new DefaultNodePath();
+				path = path.add(x);
+				DefaultEvaluator evaluator = new DefaultEvaluator(path);
+				DefaultTraverser traverser = new DefaultTraverser();
+				TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>(
+						tree.getRootNode());
+				Either<Error, Traversal<TraversableNodeWrapper<Node>>> result = traverser
+						.traverse(traversable, evaluator);
+				if (result.isA()) {
+					Assert.fail();
+				}
+				Traversal<TraversableNodeWrapper<Node>> traversal = result.b();
+				TraversableNodeWrapper<Node> target = traversal.destination();
+				ByteBuffer value = target.getWrapped().getAttributes().get(key);
+				String actual = new String(value.array());
+				//System.out.println("値=" + actual);
+				for (int y = 0; y < 2; y++) {
+					path = new DefaultNodePath();
+					path = path.add(x).add(y);
+					evaluator = new DefaultEvaluator(path);
+
+					result = traverser.traverse(traversable, evaluator);
+					if (result.isA()) {
+						Assert.fail();
+					}
+					traversal = result.b();
+					target = traversal.destination();
+					value = target.getWrapped().getAttributes().get(key);
+					actual = new String(value.array());
+				}
+			}
+		}
+		// ここまで処理
+	}
+}