Mercurial > hg > Members > kazuma > jungle-ormapper
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/DefaultTreeOperationLog.java @ 7:cd5f2ba0f894 default tip
modify jungleTest
author | tatsuki |
---|---|
date | Thu, 01 Dec 2016 16:23:13 +0900 |
parents | 44465893e8b8 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger; import com.google.common.collect.Iterables; import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.DefaultTreeOperation; 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.data.list.List; import java.util.Iterator; public class DefaultTreeOperationLog implements TreeOperationLog { private final Iterable<TreeOperation> list; private final int size; public DefaultTreeOperationLog() { list = new List<>(); size = 0; } public DefaultTreeOperationLog(Iterable<TreeOperation> _list,int _size) { list = _list; size = _size; } @Override public Iterator<TreeOperation> iterator() { return list.iterator(); } @Override public TreeOperationLog add(NodePath _p, NodeOperation _op) { TreeOperation op = new DefaultTreeOperation(_p,_op); List<TreeOperation> newList = new List<>(op); Iterable<TreeOperation> concat = Iterables.concat(list,newList); return new DefaultTreeOperationLog(concat,size + 1); } @Override public TreeOperationLog append(TreeOperationLog _log) { int argumentLogSize = _log.length(); Iterable<TreeOperation> concat = Iterables.concat(list,_log); return new DefaultTreeOperationLog(concat,argumentLogSize + size); } @Override public int length() { return size; } }