view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/IndexManager.java @ 175:e26462a38ce0

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

package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;



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.transaction.AtomicReservableReference;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;

public class IndexManager {

	AtomicReservableReference<TreeContext>.Reservation reservation;
	
	public IndexManager(AtomicReservableReference<TreeContext>.Reservation reservation){
		this.reservation = reservation;
	}
	
	public void commit(TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> index, ParentIndex parentIndex){
		TreeContext tc = reservation.get();
		ChangeSet cs = tc.getChangeSet();
		TreeNode root = cs.getRoot();
		ChangeSet prev = cs.prev();
		ChangeList cl = cs.getChangeList();
		String uuid = cs.uuid();
		String treeName = cs.getTreeName();
		long revision = cs.revision();
		DefaultChangeSet newCs = new DefaultChangeSet(root, prev, cl, uuid, treeName, revision, index, parentIndex.getParentIndex());
		DefaultTreeContext newTs = new DefaultTreeContext(root, newCs);
		reservation.set(newTs);
	}
	
}