annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 124:75ba2f2d6ea3

searchQueryTest add index
author one
date Tue, 07 Oct 2014 22:45:52 +0900
parents 74723b26ad96
children f81ec544a155
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;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
117
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.IndexJungleTreeEditor;
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();
117
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
49 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex = getIndex();
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
50 return new IndexJungleTreeEditor(root,txManager,editor,newIndex);
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
51 }
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
52
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
53
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
54 @Override
61
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
55 public JungleTreeEditor getLocalTreeEditor()
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
56 {
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
57 return getTreeEditor();
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
58 }
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
59
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
60 @Override
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
61 public TreeNode getRootNode()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
62 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
63 TreeContext tc = repository.get();
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
64 ChangeSet cs = tc.getChangeSet();
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
65 return cs.getRoot();
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
66 }
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
67
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
68 @Override
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
69 public InterfaceTraverser getTraverser() {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
70 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
71 ChangeSet cs = tc.getChangeSet();
124
75ba2f2d6ea3 searchQueryTest add index
one
parents: 117
diff changeset
72 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index = cs.getIndex();
75ba2f2d6ea3 searchQueryTest add index
one
parents: 117
diff changeset
73 if (index != null)
75ba2f2d6ea3 searchQueryTest add index
one
parents: 117
diff changeset
74 return new InterfaceTraverser(getRootNode(), index, getTreeEditor());
75ba2f2d6ea3 searchQueryTest add index
one
parents: 117
diff changeset
75 return new InterfaceTraverser(getRootNode(),getTreeEditor());
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
76 }
c297f0015d9e create Update query
one
parents: 100
diff changeset
77
c297f0015d9e create Update query
one
parents: 100
diff changeset
78 @Override
111
5df5505e1c1e change Index type
one
parents: 110
diff changeset
79 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
80 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
81 ChangeSet cs = tc.getChangeSet();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
82 return cs.getIndex();
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
83 }
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
84 }