comparison src/alice/jungle/transaction/LocalTreeEditor.java @ 93:75cf01a430a6

Added LocalTreeEditor
author one
date Fri, 15 Nov 2013 12:23:59 +0900
parents
children
comparison
equal deleted inserted replaced
92:e95faa202b4f 93:75cf01a430a6
1 package alice.jungle.transaction;
2
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
12
13 /** Edit tree without exporting logs. **/
14 public class LocalTreeEditor<T extends TreeNode<T>> implements JungleTree {
15 private final AtomicReservableReference<TreeContext<T>> repository;
16 private final String uuid;
17 private final String treeName;
18 private final ChangeListWriter writer;
19 private final TreeEditor editor;
20
21 public LocalTreeEditor(String _treeName, TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
22 {
23 treeName = _treeName;
24 repository = new AtomicReservableReference<TreeContext<T>>(_tc);
25 uuid = _uuid;
26 writer = _writer;
27 editor = _editor;
28 }
29
30 @Override
31 public JungleTreeEditor getTreeEditor()
32 {
33 TreeContext<T> tc = repository.get();
34 NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid);
35 T root = tc.getTreeNode();
36 return NetworkDefaultJungleTreeEditor.NewLocalJungleTreeEditor(treeName,root,txManager, editor);
37 }
38
39 @Override
40 public Node getRootNode()
41 {
42 TreeContext<T> tc = repository.get();
43 ChangeSet cs = tc.getChangeSet();
44 return cs.getRoot();
45 }
46
47
48 }