45
|
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle;
|
|
2
|
|
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
|
|
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
|
54
|
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
|
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
45
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
|
54
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
|
45
|
11
|
82
|
12
|
81
|
13 public class DefaultJungleTree<T extends TreeNode> implements JungleTree
|
45
|
14 {
|
54
|
15 private final AtomicReservableReference<TreeContext<T>> repository;
|
45
|
16 private final String uuid;
|
|
17 private final ChangeListWriter writer;
|
54
|
18 private final TreeEditor editor;
|
45
|
19
|
54
|
20 public DefaultJungleTree(TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
|
45
|
21 {
|
54
|
22 repository = new AtomicReservableReference<TreeContext<T>>(_tc);
|
45
|
23 uuid = _uuid;
|
|
24 writer = _writer;
|
54
|
25 editor = _editor;
|
45
|
26 }
|
|
27
|
|
28 @Override
|
54
|
29 public JungleTreeEditor getTreeEditor()
|
45
|
30 {
|
54
|
31 TreeContext<T> tc = repository.get();
|
|
32 DefaultTransactionManager<T> txManager = new DefaultTransactionManager<T>(writer,tc,repository,uuid);
|
81
|
33 TreeNode root = tc.getTreeNode();
|
54
|
34 return new DefaultJungleTreeEditor<T>(root,txManager,editor);
|
45
|
35 }
|
|
36
|
|
37 @Override
|
61
|
38 public JungleTreeEditor getLocalTreeEditor()
|
|
39 {
|
|
40 return getTreeEditor();
|
|
41 }
|
|
42
|
|
43 @Override
|
81
|
44 public TreeNode getRootNode()
|
45
|
45 {
|
54
|
46 TreeContext<T> tc = repository.get();
|
81
|
47 ChangeSet cs = tc.getChangeSet();
|
54
|
48 return cs.getRoot();
|
45
|
49 }
|
|
50 }
|