view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java @ 175:e26462a38ce0

add push pop
author tatsuki
date Fri, 06 Mar 2015 10:44:50 +0900
parents 383b08d1711c
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction;

import fj.data.TreeMap;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex;

public class DefaultChangeSet implements ChangeSet
{
	private final TreeNode root;
	private final ChangeSet previous;
	private final ChangeList changeList;
	private final String uuid;
	private final String treeName;
	private final long revision; 
	private final TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> indexList;
	private final TreeMap<TreeNode, TreeNode> parentIndex;
	
  public DefaultChangeSet(TreeNode _node,ChangeSet _prev,ChangeList _log,String _uuid, String _treeName, long _revision,  TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> indexList,
            TreeMap<TreeNode, TreeNode> parentIndex)
	{
		this.root = _node;
		this.previous = _prev;
		this.changeList = _log;
		this.uuid = _uuid;
		this.treeName = _treeName;
		this.revision = _revision;
		this.indexList = indexList;
		this.parentIndex = parentIndex;
	}
	

	@Override
	public TreeNode getRoot()
	{
		return root;
	}

	@Override
	public ChangeSet prev()
	{
		return previous;
	}

	@Override
	public ChangeList getChangeList()
	{
		return changeList;
	}

	@Override
	public String uuid()
	{
		return  uuid;
	}
	
	@Override
	public String getTreeName()
	{
		return treeName;
	}

	@Override
	public long revision()
	{
		return revision;
	}

	@Override
	public Iterable<TreeOperation> getOperations()
	{
		return changeList;
	}

	@Override
	public TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> getIndex() {
		return indexList;
	}


  @Override
  public ParentIndex getParentIndex() {
    return new ParentIndex(parentIndex);
  }

}