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);