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

refactor ParentIndex
author one
date Sat, 22 Nov 2014 12:08:35 +0900
parents 371b6ddb78f2
children d9fbddf77bf6
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.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, List<TreeNode>>> 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();
		ParentIndex parentIndex = cs.getParentIndex();
 		DefaultChangeSet newCs = new DefaultChangeSet(root, prev, cl, uuid, treeName, revision, index, parentIndex);
		DefaultTreeContext newTs = new DefaultTreeContext(root, newCs);
		reservation.set(newTs);
	}
	
}