# HG changeset patch
# User one
# Date 1370600768 -32400
# Node ID 8ee02d1a2b12bb7d307928655b32bb9329e1378f
# Parent 3991a751ed00b2ebec0d0d04fef3968e458e616a
add jungle.test.operations
diff -r 3991a751ed00 -r 8ee02d1a2b12 .classpath
--- a/.classpath Tue Jun 04 17:27:10 2013 +0900
+++ b/.classpath Fri Jun 07 19:26:08 2013 +0900
@@ -2,5 +2,7 @@
+
+
diff -r 3991a751ed00 -r 8ee02d1a2b12 src/jungle/test/operations/NetworkNodeOperation.java
--- /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 > Either invoke(T arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+}
diff -r 3991a751ed00 -r 8ee02d1a2b12 src/jungle/test/operations/NetworkNodePath.java
--- /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 path;
+
+ public NetworkNodePath() {
+ path = new LinkedList();
+ }
+
+ private NetworkNodePath(LinkedList _path) {
+ path = _path;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return path.iterator();
+ }
+
+ @Override
+ public NetworkNodePath add(int _pos) {
+ LinkedList newPath = copyPath();
+ newPath.add(_pos);
+ return new NetworkNodePath(newPath);
+ }
+
+ @Override
+ public Pair pop() {
+ LinkedList cPath = copyPath();
+ int e = cPath.getFirst();
+ cPath.remove();
+ return new Pair(e, new NetworkNodePath(cPath));
+ }
+
+ @Override
+ public int size() {
+ return path.size();
+ }
+
+ private LinkedList copyPath() {
+ LinkedList newPath = new LinkedList();
+ for (Integer i : path) {
+ newPath.add(i);
+ }
+ return newPath;
+ }
+
+ @Override
+ public String toString() {
+ return path.toString();
+ }
+
+}
diff -r 3991a751ed00 -r 8ee02d1a2b12 src/jungle/test/operations/NetworkTreeOperation.java
--- /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;
+ }
+
+}
diff -r 3991a751ed00 -r 8ee02d1a2b12 src/jungle/test/operations/NetworkTreeOperationLog.java
--- /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 list;
+ private int size;
+
+ public NetworkTreeOperationLog() {
+ list = new LinkedList();
+ size = 0;
+ }
+
+ public NetworkTreeOperationLog(Iterable _list, int _size)
+ {
+ list = _list;
+ size = _size;
+ }
+
+ public Iterable getOperationLogList() {
+ return list;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return list.iterator();
+ }
+
+ @Override
+ public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op)
+ {
+ TreeOperation op = new NetworkTreeOperation(_p, _op);
+ LinkedList newList = new LinkedList();
+ for(TreeOperation o : this) {
+ newList.add(o);
+ }
+ newList.add(op);
+ return new NetworkTreeOperationLog(newList, size+1);
+ }
+
+ @Override
+ public NetworkTreeOperationLog append(TreeOperationLog _log)
+ {
+ LinkedList l = new LinkedList();
+ for (TreeOperation t : _log) {
+ l.add(t);
+ }
+ return new NetworkTreeOperationLog(l, size+_log.length());
+ }
+
+ @Override
+ public int length()
+ {
+ return size;
+ }
+
+}
diff -r 3991a751ed00 -r 8ee02d1a2b12 src/jungle/test/operations/messagepack/PackOperationLog.java
--- /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 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());
+
+ }
+
+
+ }
+
+}