annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 110:cf17350a2415

traverse find args change Query
author one
date Sat, 13 Sep 2014 19:23:31 +0900
parents 5b7e45464bb8
children 5df5505e1c1e
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
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
3 import fj.data.List;
100
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;
110
cf17350a2415 traverse find args change Query
one
parents: 107
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleIndexTreeEditor;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
110
cf17350a2415 traverse find args change Query
one
parents: 107
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
17
82
a4e2f1d45fdc Merge with e97a59269bf586777ca30668c96fc8e927277501
one
parents: 81 73
diff changeset
18
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
19 public class DefaultJungleTree implements JungleTree
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
20 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
21 private final AtomicReservableReference<TreeContext> repository;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
22 private final String uuid;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
23 private final ChangeListWriter writer;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
24 private final TreeEditor editor;
103
bed3afd5c2e2 add Index but Not use
one
parents: 101
diff changeset
25
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
26 public DefaultJungleTree(TreeContext tc,String uuid,ChangeListWriter writer,TreeEditor editor)
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
27 {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
28 this.repository = new AtomicReservableReference<TreeContext>(tc);
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
29 this.uuid = uuid;
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
30 this.writer = writer;
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
31 this.editor = editor;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
32 }
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
33
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
34 @Override
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
35 public JungleTreeEditor getTreeEditor()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
36 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
37 TreeContext tc = repository.get();
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
38 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
39 TreeNode root = tc.getTreeNode();
103
bed3afd5c2e2 add Index but Not use
one
parents: 101
diff changeset
40 return new DefaultJungleTreeEditor(root,txManager,editor);
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
41 }
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
42
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
43 @Override
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
44 public JungleTreeEditor getIndexTreeEditor()
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
45 {
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
46 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
47 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
48 TreeNode root = tc.getTreeNode();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
49 ChangeSet cs = tc.getChangeSet();
107
one
parents: 105
diff changeset
50 TreeMap<String,TreeMap<String, List<TreeNode>>> newIndex = cs.getIndex();
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
51 return new DefaultJungleIndexTreeEditor(root,txManager,editor,newIndex);
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
52 }
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
53
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
54
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
55 @Override
61
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
56 public JungleTreeEditor getLocalTreeEditor()
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
57 {
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
58 return getTreeEditor();
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
59 }
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
60
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
61 @Override
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
62 public TreeNode getRootNode()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
63 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
64 TreeContext tc = repository.get();
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
65 ChangeSet cs = tc.getChangeSet();
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
66 return cs.getRoot();
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
67 }
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
68
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
69 @Override
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
70 public InterfaceTraverser getTraverser() {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
71 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
72 ChangeSet cs = tc.getChangeSet();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
73 return new InterfaceTraverser(getRootNode(), cs.getIndex(), getTreeEditor());
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
74 }
c297f0015d9e create Update query
one
parents: 100
diff changeset
75
c297f0015d9e create Update query
one
parents: 100
diff changeset
76 @Override
107
one
parents: 105
diff changeset
77 public TreeMap<String,TreeMap<String, List<TreeNode>>> getIndex() {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
78 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
79 ChangeSet cs = tc.getChangeSet();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
80 return cs.getIndex();
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
81 }
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
82 }