Mercurial > hg > Database > jungle-network
comparison src/main/java/alice/jungle/transaction/NetworkTransactionManager.java @ 176:6f104ab4eb81
fit jungle core but editMessage is not work
author | tatsuki |
---|---|
date | Mon, 01 Sep 2014 00:04:32 +0900 |
parents | f9e29a52efd3 |
children | d6944d788121 |
comparison
equal
deleted
inserted
replaced
175:ac7d1070f449 | 176:6f104ab4eb81 |
---|---|
1 package alice.jungle.transaction; | 1 package alice.jungle.transaction; |
2 | 2 |
3 import java.util.Iterator; | 3 import java.util.Iterator; |
4 | 4 |
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; | |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; | 5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; | 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; | 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; | 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; |
10 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; |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; | 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; |
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; |
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
23 | 22 |
24 public class NetworkTransactionManager<T extends TreeNode<T>> implements TransactionManager<T> | 23 public class NetworkTransactionManager<T extends TreeNode> implements TransactionManager<T> |
25 { | 24 { |
26 | 25 |
27 private final AtomicReservableReference<TreeContext<T>> repository; | 26 private final AtomicReservableReference<TreeContext<T>> repository; |
28 private final TreeContext<T> tip; | 27 private final TreeContext<T> tip; |
29 private final ChangeListWriter writer; | 28 private final ChangeListWriter writer; |
39 uuid = _uuid; | 38 uuid = _uuid; |
40 treeName = _treeName; | 39 treeName = _treeName; |
41 } | 40 } |
42 | 41 |
43 @Override | 42 @Override |
44 public Either<Error, TransactionManager<T>> commit(T _newRoot,final TreeOperationLog _log) { | 43 public Either<Error, TransactionManager<T>> commit(TreeNode _newRoot,final TreeOperationLog _log) { |
45 ChangeSet cs = tip.getChangeSet(); | 44 ChangeSet cs = tip.getChangeSet(); |
46 long currentRevision = cs.revision(); | 45 long currentRevision = cs.revision(); |
47 long nextRevision = currentRevision + 1; | 46 long nextRevision = currentRevision + 1; |
48 | 47 |
49 ChangeList list = new ChangeList() { | 48 ChangeList list = new ChangeList() { |
59 public String getTreeName() { | 58 public String getTreeName() { |
60 return treeName; | 59 return treeName; |
61 } | 60 } |
62 }; | 61 }; |
63 | 62 |
64 Node root = _newRoot.getAsNode(); | 63 TreeNode root = _newRoot; |
65 DefaultChangeSet newCs = new DefaultChangeSet(root, cs, list, uuid, treeName, nextRevision); | 64 DefaultChangeSet newCs = new DefaultChangeSet(root, cs, list, uuid, treeName, nextRevision); |
66 DefaultTreeContext<T> newContext = new DefaultTreeContext<T>(_newRoot,newCs); | 65 DefaultTreeContext<T> newContext = new DefaultTreeContext<T>(_newRoot,newCs); |
67 | 66 |
68 @SuppressWarnings("rawtypes") | 67 @SuppressWarnings("rawtypes") |
69 Reservation reservation = repository.makeReservation(tip, newContext); | 68 Reservation reservation = repository.makeReservation(tip, newContext); |