# 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()); + + } + + + } + +}