view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java @ 163:7be56a1be5d9

modification index
author one
date Mon, 08 Dec 2014 10:49:53 +0900
parents 8a0aa8fc137c
children 1749338f2366 383b08d1711c
line wrap: on
line source

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

import fj.data.List;
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.Index;
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, List<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, List<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 Index getIndex() {
		return new Index(indexList);
	}


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

}