Mercurial > hg > Members > nobuyasu > jungle-network
view 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 source
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; } }