Mercurial > hg > Members > nobuyasu > jungle-network
diff src/jungle/test/operations/NetworkTreeOperationLog.java @ 1:8ee02d1a2b12
add jungle.test.operations
author | one |
---|---|
date | Fri, 07 Jun 2013 19:26:08 +0900 |
parents | |
children | 20498c88a70d |
line wrap: on
line diff
--- /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; + } + +}