105
|
1 package alice.jungle.persistent;
|
85
|
2
|
179
|
3 import fj.data.List;
|
|
4 import fj.data.TreeMap;
|
85
|
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
|
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
|
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
|
179
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
|
85
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
|
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
|
179
|
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
|
|
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
|
85
|
17
|
178
|
18 public class PersistentJungleTree implements JungleTree {
|
|
19 private final AtomicReservableReference<TreeContext> repository;
|
85
|
20 private final String uuid;
|
|
21 private final String treeName;
|
88
|
22 private final ChangeListWriter writer;
|
85
|
23 private final TreeEditor editor;
|
|
24
|
178
|
25 public PersistentJungleTree(String _treeName, TreeContext _tc,String _uuid, ChangeListWriter _writer,TreeEditor _editor)
|
85
|
26 {
|
|
27 treeName = _treeName;
|
178
|
28 repository = new AtomicReservableReference<TreeContext>(_tc);
|
85
|
29 uuid = _uuid;
|
|
30 writer = _writer;
|
|
31 editor = _editor;
|
|
32 }
|
|
33
|
|
34 @Override
|
|
35 public JungleTreeEditor getTreeEditor()
|
|
36 {
|
178
|
37 TreeContext tc = repository.get();
|
|
38 PersistentTransactionManager txManager = new PersistentTransactionManager(treeName, writer,tc,repository,uuid);
|
176
|
39 TreeNode root = tc.getTreeNode();
|
178
|
40 return new DefaultJungleTreeEditor(root,txManager,editor);
|
85
|
41 }
|
|
42
|
|
43 @Override
|
176
|
44 public TreeNode getRootNode()
|
85
|
45 {
|
178
|
46 TreeContext tc = repository.get();
|
85
|
47 ChangeSet cs = tc.getChangeSet();
|
|
48 return cs.getRoot();
|
|
49 }
|
|
50
|
96
|
51 @Override
|
|
52 public JungleTreeEditor getLocalTreeEditor() {
|
|
53 return getTreeEditor();
|
|
54 }
|
|
55
|
179
|
56 @Override
|
|
57 public InterfaceTraverser getTraverser() {
|
|
58 // TODO Auto-generated method stub
|
|
59 return null;
|
|
60 }
|
|
61
|
|
62 @Override
|
|
63 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() {
|
|
64 // TODO Auto-generated method stub
|
|
65 return null;
|
|
66 }
|
|
67
|
|
68 @Override
|
|
69 public JungleTreeEditor getIndexTreeEditor() {
|
|
70 // TODO Auto-generated method stub
|
|
71 return null;
|
|
72 }
|
|
73
|
85
|
74
|
|
75 }
|