comparison src/alice/jungle/persistence/PersistentJungleTree.java @ 85:e641f559559c

Added some files for persistent
author one
date Mon, 28 Oct 2013 17:21:56 +0900
parents
children 0c98717f186e
comparison
equal deleted inserted replaced
84:82d1d3dac7bc 85:e641f559559c
1 package alice.jungle.persistence;
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.DefaultJungleTreeEditor;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
13
14 public class PersistentJungleTree <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 PersistentChangeListWriter writer;
19 private final TreeEditor editor;
20
21 public PersistentJungleTree(String _treeName, TreeContext<T> _tc,String _uuid,PersistentChangeListWriter _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 PersistentTransactionManager<T> txManager = new PersistentTransactionManager<T>(treeName, writer,tc,repository,uuid);
35 T root = tc.getTreeNode();
36 return new DefaultJungleTreeEditor<T>(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 }