view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/DefaultTreeOperationLog.java @ 52:8c6ff361b68a

sleepy
author Shoshi TAMAKI
date Fri, 08 Feb 2013 03:50:21 +0900
parents
children ed890dcb673e
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger;

import java.util.Iterator;

import fj.data.List;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;

public class DefaultTreeOperationLog implements TreeOperationLog
{
	private final List<TreeOperation> list;
	
	public DefaultTreeOperationLog()
	{
		list = List.nil();
	}
	
	private DefaultTreeOperationLog(List<TreeOperation> _list)
	{
		list = _list;
	}

	@Override
	public Iterator<TreeOperation> iterator()
	{
		return list.iterator();
	}

	@Override
	public TreeOperationLog add(NodePath _p, NodeOperation _op)
	{
		DefaultTreeOperation op = new DefaultTreeOperation(_p,_op);
		List<TreeOperation> newList = list.snoc(op);
		return new DefaultTreeOperationLog(newList);
	}

	@Override
	public int length()
	{
		return list.length();
	}

}