Mercurial > hg > Database > jungle-network
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 } |