annotate src/alice/jungle/persistence/PersistentJungleTree.java @ 96:fcce7ca4adb9

Modified LogUpdateCodesegment
author one
date Mon, 18 Nov 2013 19:34:15 +0900
parents 0c98717f186e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
1 package alice.jungle.persistence;
e641f559559c Added some files for persistent
one
parents:
diff changeset
2
e641f559559c Added some files for persistent
one
parents:
diff changeset
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
e641f559559c Added some files for persistent
one
parents:
diff changeset
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
e641f559559c Added some files for persistent
one
parents:
diff changeset
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
e641f559559c Added some files for persistent
one
parents:
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
e641f559559c Added some files for persistent
one
parents:
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
e641f559559c Added some files for persistent
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
e641f559559c Added some files for persistent
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
e641f559559c Added some files for persistent
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
e641f559559c Added some files for persistent
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
e641f559559c Added some files for persistent
one
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
e641f559559c Added some files for persistent
one
parents:
diff changeset
13
e641f559559c Added some files for persistent
one
parents:
diff changeset
14 public class PersistentJungleTree <T extends TreeNode<T>> implements JungleTree {
e641f559559c Added some files for persistent
one
parents:
diff changeset
15 private final AtomicReservableReference<TreeContext<T>> repository;
e641f559559c Added some files for persistent
one
parents:
diff changeset
16 private final String uuid;
e641f559559c Added some files for persistent
one
parents:
diff changeset
17 private final String treeName;
88
0c98717f186e Removed cast code
one
parents: 85
diff changeset
18 private final ChangeListWriter writer;
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
19 private final TreeEditor editor;
e641f559559c Added some files for persistent
one
parents:
diff changeset
20
88
0c98717f186e Removed cast code
one
parents: 85
diff changeset
21 public PersistentJungleTree(String _treeName, TreeContext<T> _tc,String _uuid, ChangeListWriter _writer,TreeEditor _editor)
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
22 {
e641f559559c Added some files for persistent
one
parents:
diff changeset
23 treeName = _treeName;
e641f559559c Added some files for persistent
one
parents:
diff changeset
24 repository = new AtomicReservableReference<TreeContext<T>>(_tc);
e641f559559c Added some files for persistent
one
parents:
diff changeset
25 uuid = _uuid;
e641f559559c Added some files for persistent
one
parents:
diff changeset
26 writer = _writer;
e641f559559c Added some files for persistent
one
parents:
diff changeset
27 editor = _editor;
e641f559559c Added some files for persistent
one
parents:
diff changeset
28 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
29
e641f559559c Added some files for persistent
one
parents:
diff changeset
30 @Override
e641f559559c Added some files for persistent
one
parents:
diff changeset
31 public JungleTreeEditor getTreeEditor()
e641f559559c Added some files for persistent
one
parents:
diff changeset
32 {
e641f559559c Added some files for persistent
one
parents:
diff changeset
33 TreeContext<T> tc = repository.get();
e641f559559c Added some files for persistent
one
parents:
diff changeset
34 PersistentTransactionManager<T> txManager = new PersistentTransactionManager<T>(treeName, writer,tc,repository,uuid);
e641f559559c Added some files for persistent
one
parents:
diff changeset
35 T root = tc.getTreeNode();
e641f559559c Added some files for persistent
one
parents:
diff changeset
36 return new DefaultJungleTreeEditor<T>(root,txManager,editor);
e641f559559c Added some files for persistent
one
parents:
diff changeset
37 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
38
e641f559559c Added some files for persistent
one
parents:
diff changeset
39 @Override
e641f559559c Added some files for persistent
one
parents:
diff changeset
40 public Node getRootNode()
e641f559559c Added some files for persistent
one
parents:
diff changeset
41 {
e641f559559c Added some files for persistent
one
parents:
diff changeset
42 TreeContext<T> tc = repository.get();
e641f559559c Added some files for persistent
one
parents:
diff changeset
43 ChangeSet cs = tc.getChangeSet();
e641f559559c Added some files for persistent
one
parents:
diff changeset
44 return cs.getRoot();
e641f559559c Added some files for persistent
one
parents:
diff changeset
45 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
46
96
fcce7ca4adb9 Modified LogUpdateCodesegment
one
parents: 88
diff changeset
47 @Override
fcce7ca4adb9 Modified LogUpdateCodesegment
one
parents: 88
diff changeset
48 public JungleTreeEditor getLocalTreeEditor() {
fcce7ca4adb9 Modified LogUpdateCodesegment
one
parents: 88
diff changeset
49 return getTreeEditor();
fcce7ca4adb9 Modified LogUpdateCodesegment
one
parents: 88
diff changeset
50 }
fcce7ca4adb9 Modified LogUpdateCodesegment
one
parents: 88
diff changeset
51
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
52
e641f559559c Added some files for persistent
one
parents:
diff changeset
53 }