134
|
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;
|
|
2
|
|
3
|
151
|
4
|
174
|
5 import fj.data.TreeMap;
|
134
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
|
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
|
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
|
|
13
|
|
14 public class IndexManager {
|
|
15
|
|
16 AtomicReservableReference<TreeContext>.Reservation reservation;
|
|
17
|
|
18 public IndexManager(AtomicReservableReference<TreeContext>.Reservation reservation){
|
|
19 this.reservation = reservation;
|
|
20 }
|
|
21
|
174
|
22 public void commit(TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> index, ParentIndex parentIndex){
|
134
|
23 TreeContext tc = reservation.get();
|
|
24 ChangeSet cs = tc.getChangeSet();
|
|
25 TreeNode root = cs.getRoot();
|
|
26 ChangeSet prev = cs.prev();
|
|
27 ChangeList cl = cs.getChangeList();
|
|
28 String uuid = cs.uuid();
|
|
29 String treeName = cs.getTreeName();
|
|
30 long revision = cs.revision();
|
174
|
31 DefaultChangeSet newCs = new DefaultChangeSet(root, prev, cl, uuid, treeName, revision, index, parentIndex.getParentIndex());
|
134
|
32 DefaultTreeContext newTs = new DefaultTreeContext(root, newCs);
|
|
33 reservation.set(newTs);
|
|
34 }
|
|
35
|
|
36 }
|