comparison src/main/java/alice/jungle/persistent/PersistentTransactionManager.java @ 181:4493dd7692ce

add FindMatrixTest
author tatsuki
date Mon, 15 Sep 2014 14:04:22 +0900
parents 2828205bdc3a
children 5d0734fd859d
comparison
equal deleted inserted replaced
180:2828205bdc3a 181:4493dd7692ce
3 import fj.data.List; 3 import fj.data.List;
4 import fj.data.TreeMap; 4 import fj.data.TreeMap;
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; 5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TransactionManager; 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TransactionManager;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference.Reservation; 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference.Reservation;
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError;
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
19 21
20 public class PersistentTransactionManager implements TransactionManager { 22 public class PersistentTransactionManager implements TransactionManager {
21 private final AtomicReservableReference<TreeContext> repository; 23 private final AtomicReservableReference<TreeContext> repository;
22 private final TreeContext tip; 24 private final TreeContext tip;
23 private final ChangeListWriter writer; 25 private final ChangeListWriter writer;
33 uuid = _uuid; 35 uuid = _uuid;
34 treeName = _treeName; 36 treeName = _treeName;
35 } 37 }
36 38
37 @Override 39 @Override
38 public Either<Error, TransactionManager> commit(TreeNode _newRoot,final TreeOperationLog _log,TreeMap<String, TreeMap<String, List<TreeNode>>> index) { 40 public Either<Error, TransactionManager> commit(TreeNode _newRoot,final TreeOperationLog _log,TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index) {
39 ChangeSet cs = tip.getChangeSet(); 41 ChangeSet cs = tip.getChangeSet();
40 long currentRevision = cs.revision(); 42 long currentRevision = cs.revision();
41 long nextRevision = currentRevision + 1; 43 long nextRevision = currentRevision + 1;
42 44
43 PersistentChangeList list = new PersistentChangeList(uuid, treeName, _log); 45 PersistentChangeList list = new PersistentChangeList(uuid, treeName, _log);