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

add deleteIndexEditor
author one
date Tue, 21 Oct 2014 19:47:25 +0900
parents
children afbe19c98f53 72f454eb04ec
line wrap: on
line source

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


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.NodePath;
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;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;

public class IndexManager {

	AtomicReservableReference<TreeContext>.Reservation reservation;
	
	public IndexManager(AtomicReservableReference<TreeContext>.Reservation reservation){
		this.reservation = reservation;
	}
	
	public void commit(TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index){
		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);
		DefaultTreeContext newTs = new DefaultTreeContext(root, newCs);
		reservation.set(newTs);
	}
	
}