changeset 1:8ee02d1a2b12

add jungle.test.operations
author one
date Fri, 07 Jun 2013 19:26:08 +0900
parents 3991a751ed00
children 20498c88a70d
files .classpath src/jungle/test/operations/NetworkNodeOperation.java src/jungle/test/operations/NetworkNodePath.java src/jungle/test/operations/NetworkTreeOperation.java src/jungle/test/operations/NetworkTreeOperationLog.java src/jungle/test/operations/messagepack/PackOperationLog.java
diffstat 6 files changed, 259 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.classpath	Tue Jun 04 17:27:10 2013 +0900
+++ b/.classpath	Fri Jun 07 19:26:08 2013 +0900
@@ -2,5 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="lib" path="/Users/nobuyasu/workspace/Alice/Alice.jar"/>
+	<classpathentry kind="lib" path="/Users/nobuyasu/workspace/jungle-core/target/jungle-core-0.0.1-SNAPSHOT.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/operations/NetworkNodeOperation.java	Fri Jun 07 19:26:08 2013 +0900
@@ -0,0 +1,47 @@
+package jungle.test.operations;
+
+import java.nio.ByteBuffer;
+
+import org.msgpack.annotation.Message;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
+@Message
+public class NetworkNodeOperation implements NodeOperation {
+
+	@Override
+	public Command getCommand() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getKey() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getPosition() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public ByteBuffer getValue() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public <T extends EditableNode<T>> Either<Error, T> invoke(T arg0) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/operations/NetworkNodePath.java	Fri Jun 07 19:26:08 2013 +0900
@@ -0,0 +1,59 @@
+package jungle.test.operations;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
+
+public class NetworkNodePath implements NodePath
+{
+	LinkedList<Integer> path;
+	
+	public NetworkNodePath() {
+		path = new LinkedList<Integer>();
+	}
+	
+	private NetworkNodePath(LinkedList<Integer> _path) {
+		path = _path;
+	}
+	
+	@Override
+	public Iterator<Integer> iterator() {
+		return path.iterator();
+	}
+
+	@Override
+	public NetworkNodePath add(int _pos) {
+		LinkedList<Integer> newPath = copyPath();
+		newPath.add(_pos);
+		return new NetworkNodePath(newPath);
+	}
+
+	@Override
+	public Pair<Integer, NodePath> pop() {
+		LinkedList<Integer> cPath = copyPath();
+		int e = cPath.getFirst();
+		cPath.remove();
+		return new Pair<Integer, NodePath>(e, new NetworkNodePath(cPath));
+	}
+
+	@Override
+	public int size() {
+		return path.size();
+	}
+
+	private LinkedList<Integer> copyPath() {
+		LinkedList<Integer> newPath = new LinkedList<Integer>();
+		for (Integer i : path) {
+			newPath.add(i);
+		}
+		return newPath;
+	}
+	
+	@Override
+	public String toString() {
+		return path.toString();
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/operations/NetworkTreeOperation.java	Fri Jun 07 19:26:08 2013 +0900
@@ -0,0 +1,35 @@
+package jungle.test.operations;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+
+import org.msgpack.annotation.Message;
+
+@Message
+public class NetworkTreeOperation implements TreeOperation {
+
+	private NodePath path;
+	private NodeOperation operation;
+	
+	public NetworkTreeOperation() {
+		path = null;
+		operation = null;
+	}
+	
+	public NetworkTreeOperation(NodePath _p, NodeOperation _op) {
+		path = _p;
+		operation = _op;
+	}
+
+	@Override
+	public NodePath getNodePath() {
+		return path;
+	}
+	
+	@Override
+	public NodeOperation getNodeOperation() {
+		return operation;
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/operations/NetworkTreeOperationLog.java	Fri Jun 07 19:26:08 2013 +0900
@@ -0,0 +1,67 @@
+package jungle.test.operations;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.msgpack.annotation.Message;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+
+@Message
+public class NetworkTreeOperationLog implements TreeOperationLog
+{
+	private Iterable<TreeOperation> list;
+	private int size;
+	
+	public NetworkTreeOperationLog() {
+		list = new LinkedList<TreeOperation>();
+		size = 0;
+	}
+	
+	public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size)
+	{
+		list = _list;
+		size = _size;
+	}
+	
+	public Iterable<TreeOperation> getOperationLogList() {
+		return list;
+	}
+	
+	@Override
+	public Iterator<TreeOperation> iterator() {
+		return list.iterator();
+	}
+
+	@Override
+	public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op) 
+	{
+		TreeOperation op = new NetworkTreeOperation(_p, _op);
+		LinkedList<TreeOperation> newList = new LinkedList<TreeOperation>();
+		for(TreeOperation o : this) {
+			newList.add(o);
+		}
+		newList.add(op);
+		return new NetworkTreeOperationLog(newList, size+1); 
+	}
+
+	@Override
+	public NetworkTreeOperationLog append(TreeOperationLog _log) 
+	{
+		LinkedList<TreeOperation> l = new LinkedList<TreeOperation>();
+		for (TreeOperation t : _log) {
+			l.add(t);
+		}
+		return new NetworkTreeOperationLog(l, size+_log.length());
+	}
+
+	@Override
+	public int length() 
+	{
+		return size;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/operations/messagepack/PackOperationLog.java	Fri Jun 07 19:26:08 2013 +0900
@@ -0,0 +1,49 @@
+package jungle.test.operations.messagepack;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+import jungle.test.operations.NetworkNodePath;
+import jungle.test.operations.NetworkTreeOperationLog;
+
+import org.msgpack.MessagePack;
+import org.msgpack.type.Value;
+
+public class PackOperationLog {
+
+	public static void main(String[] args) throws IOException {
+		MessagePack msgpack = new MessagePack();
+		NetworkTreeOperationLog n = new NetworkTreeOperationLog();
+		NetworkNodePath p = new NetworkNodePath();
+		p = p.add(1).add(2).add(3);
+		System.out.println(p.toString());
+		n = n.add(null, null);
+		System.out.println("n.length() = "+n.length());
+
+		Value v = msgpack.unconvert(n);
+		final NetworkTreeOperationLog log = msgpack.convert(v, NetworkTreeOperationLog.class);
+		System.out.println("nn.lenght() = " + log.length());
+		
+		ChangeList list = new ChangeList(){
+			@Override
+			public Iterator<TreeOperation> iterator(){
+				return log.iterator();
+			}
+		};
+		for (TreeOperation op : list) {
+			NodePath nPath = op.getNodePath();
+			NodeOperation nodeOp = op.getNodeOperation();
+			Command c = nodeOp.getCommand();
+			System.out.println(nPath.toString());
+			
+		}
+		
+		
+	}
+	
+}