Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/operations/NetworkTreeOperationLog.java @ 317:d6b81870216b
Persisitent Differential Tree implement
author | tatsuki |
---|---|
date | Wed, 01 Feb 2017 04:04:17 +0900 |
parents | cac88cf813f1 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations; import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.TreeOperationLog; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.NodeOperation; import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.TreeOperation; import jp.ac.u_ryukyu.ie.cr.jungle.tree.TreeType; import org.msgpack.annotation.Message; import java.util.Date; import java.util.Iterator; import java.util.LinkedList; @Message public class NetworkTreeOperationLog implements TreeOperationLog { public LinkedList<NetworkTreeOperation> list; public int size; String uuid; String treeName; long timestamp; int type; public NetworkTreeOperationLog() { list = new LinkedList<NetworkTreeOperation>(); size = 0; treeName = ""; type = TreeType.DEFAULT; timestamp = new Date().getTime(); } public NetworkTreeOperationLog(String _uuid, String _treeName, int type, Iterable<TreeOperation> _list) { this(_uuid, _treeName, type, _list, new Date().getTime()); } public NetworkTreeOperationLog(String _uuid, String _treeName, int type, Iterable<TreeOperation> _list, long _timestamp) { this.uuid = _uuid; this.treeName = _treeName; this.type = type; this.list = new LinkedList<NetworkTreeOperation>(); this.timestamp = _timestamp; for (TreeOperation op : _list) { NetworkTreeOperation nOp = new NetworkTreeOperation(op); list.add(nOp); } this.size = list.size(); } public NetworkTreeOperationLog(Iterable<TreeOperation> _list) { this("", "",TreeType.UNKNOWN , _list); } @Override public Iterator<TreeOperation> iterator() { LinkedList<TreeOperation> opList = new LinkedList<TreeOperation>(); for (NetworkTreeOperation op : list) { opList.add(op); } return opList.iterator(); } @Override public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op) { NetworkTreeOperation op = new NetworkTreeOperation(_p, _op); list.add(op); size = list.size(); return this; } @Override public NetworkTreeOperationLog append(TreeOperationLog _log) { for (TreeOperation o : _log) { NetworkTreeOperation op = new NetworkTreeOperation(o); list.add(op); } size = list.size(); return this; } @Override public int length() { return list.size(); } public String getUUID() { return uuid; } public String getTreeName() { return treeName; } public int getTreeType() { return type; } public long getTimeStamp() { return timestamp; } public void setTimeStamp(long _timestamp) { timestamp = _timestamp; } }