view src/alice/jungle/operations/NetworkTreeOperationLog.java @ 84:82d1d3dac7bc

Modfied NetworkTransactionManager
author one
date Sun, 27 Oct 2013 20:05:53 +0900
parents b3ccefdf2b43
children bcaf28f8244d
line wrap: on
line source

package alice.jungle.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
{
	public LinkedList<NetworkTreeOperation> list;
	public int size;
	String treeName;
	
	public NetworkTreeOperationLog() {
		list = new LinkedList<NetworkTreeOperation>();
		size = 0;
		treeName = "";
	}

	public NetworkTreeOperationLog(String _treeName, Iterable<TreeOperation> _list)
	{
		treeName = _treeName;
		list = new LinkedList<NetworkTreeOperation>();
		for(TreeOperation op: _list) {
			NetworkTreeOperation nOp = new NetworkTreeOperation(op);
			list.add(nOp);
		}
		size = list.size();
	}

	public NetworkTreeOperationLog(Iterable<TreeOperation> _list)
	{
		list = new LinkedList<NetworkTreeOperation>();
		for(TreeOperation op: _list) {
			NetworkTreeOperation nOp = new NetworkTreeOperation(op);
			list.add(nOp);
		}
		size = list.size();
		treeName = "";
	}

	
	@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);
		return this;
	}

	@Override
	public NetworkTreeOperationLog append(TreeOperationLog _log) 
	{
		for (TreeOperation o : _log) {
			NetworkTreeOperation op = new NetworkTreeOperation(o);
			list.add(op);
		}
		return this;
	}

	@Override
	public int length() 
	{
		return size;
	}
	
	public String getTreeName() {
		return treeName;
	}

}