annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 100:9a7b7af838e0

add index TreeNodeEditor but node use
author one
date Thu, 11 Sep 2014 03:10:03 +0900
parents fb1dc448ac8c
children c297f0015d9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
2
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
3 import fj.data.HashMap;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
4 import fj.data.TreeMap;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
15
82
a4e2f1d45fdc Merge with e97a59269bf586777ca30668c96fc8e927277501
one
parents: 81 73
diff changeset
16
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
17 public class DefaultJungleTree implements JungleTree
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
18 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
19 private final AtomicReservableReference<TreeContext> repository;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
20 private final String uuid;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
21 private final ChangeListWriter writer;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
22 private final TreeEditor editor;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
23 Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
24 public DefaultJungleTree(TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor, Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index)
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
25 {
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
26 this.repository = new AtomicReservableReference<TreeContext>(_tc);
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
27 this.uuid = _uuid;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
28 this.writer = _writer;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
29 this.editor = _editor;
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
30 this.index = index;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
31 }
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
32
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
33 @Override
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
34 public JungleTreeEditor getTreeEditor()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
35 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
36 TreeContext tc = repository.get();
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
37 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
38 TreeNode root = tc.getTreeNode();
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
39 return new DefaultJungleTreeEditor(root,txManager,editor, index);
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
40 }
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
41
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
42 @Override
61
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
43 public JungleTreeEditor getLocalTreeEditor()
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
44 {
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
45 return getTreeEditor();
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
46 }
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
47
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
48 @Override
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
49 public TreeNode getRootNode()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
50 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
51 TreeContext tc = repository.get();
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
52 ChangeSet cs = tc.getChangeSet();
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
53 return cs.getRoot();
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
54 }
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
55
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
56 @Override
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
57 public InterfaceTraverser getTraverser() {
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
58 return new InterfaceTraverser(getRootNode());
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
59 }
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
60 }