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
|
77
|
12 public class DefaultJungleTree<T extends TreeNode<T>> implements JungleTree<T>
|
45
|
13 {
|
54
|
14 private final AtomicReservableReference<TreeContext<T>> repository;
|
45
|
15 private final String uuid;
|
|
16 private final ChangeListWriter writer;
|
54
|
17 private final TreeEditor editor;
|
45
|
18
|
54
|
19 public DefaultJungleTree(TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
|
45
|
20 {
|
54
|
21 repository = new AtomicReservableReference<TreeContext<T>>(_tc);
|
45
|
22 uuid = _uuid;
|
|
23 writer = _writer;
|
54
|
24 editor = _editor;
|
45
|
25 }
|
|
26
|
|
27 @Override
|
77
|
28 public JungleTreeEditor<T> getTreeEditor()
|
45
|
29 {
|
54
|
30 TreeContext<T> tc = repository.get();
|
|
31 DefaultTransactionManager<T> txManager = new DefaultTransactionManager<T>(writer,tc,repository,uuid);
|
|
32 T root = tc.getTreeNode();
|
|
33 return new DefaultJungleTreeEditor<T>(root,txManager,editor);
|
45
|
34 }
|
|
35
|
|
36 @Override
|
77
|
37 public JungleTreeEditor<T> getLocalTreeEditor()
|
61
|
38 {
|
|
39 return getTreeEditor();
|
|
40 }
|
|
41
|
|
42 @Override
|
74
|
43 public TreeNode<T> getRootNode()
|
45
|
44 {
|
54
|
45 TreeContext<T> tc = repository.get();
|
74
|
46 ChangeSet<T> cs = tc.getChangeSet();
|
54
|
47 return cs.getRoot();
|
45
|
48 }
|
|
49 }
|