annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 135:6e9a8d26e0cf

refactor
author one
date Fri, 24 Oct 2014 18:49:48 +0900
parents f46a6e0e4594
children ef183969bf31
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
132
ba5370090393 index commit Prototype
one
parents: 131
diff changeset
3 import java.util.concurrent.atomic.AtomicReference;
ba5370090393 index commit Prototype
one
parents: 131
diff changeset
4
127
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
5 import org.omg.CORBA.TCKind;
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
6
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
7 import fj.data.List;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
8 import fj.data.TreeMap;
127
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
110
cf17350a2415 traverse find args change Query
one
parents: 107
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
127
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
117
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.IndexJungleTreeEditor;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
110
cf17350a2415 traverse find args change Query
one
parents: 107
diff changeset
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
134
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
23 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.IndexManager;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
24
82
a4e2f1d45fdc Merge with e97a59269bf586777ca30668c96fc8e927277501
one
parents: 81 73
diff changeset
25
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
26 public class DefaultJungleTree implements JungleTree
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
27 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
28 private final AtomicReservableReference<TreeContext> repository;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
29 private final String uuid;
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
30 private final ChangeListWriter writer;
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
31 private final TreeEditor editor;
103
bed3afd5c2e2 add Index but Not use
one
parents: 101
diff changeset
32
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
33 public DefaultJungleTree(TreeContext tc,String uuid,ChangeListWriter writer,TreeEditor editor)
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
34 {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
35 this.repository = new AtomicReservableReference<TreeContext>(tc);
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
36 this.uuid = uuid;
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
37 this.writer = writer;
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
38 this.editor = editor;
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
39 }
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
40
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
41 @Override
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
42 public JungleTreeEditor getTreeEditor()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
43 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
44 TreeContext tc = repository.get();
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
45 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
46 TreeNode root = tc.getTreeNode();
134
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
47 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index = getIndex();
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
48 return new DefaultJungleTreeEditor(root,txManager,editor,index);
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
49 }
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
50
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
51 @Override
126
f81ec544a155 add index push but bad compete
one
parents: 124
diff changeset
52 public IndexJungleTreeEditor getIndexTreeEditor()
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
53 {
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
54 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
55 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
56 TreeNode root = tc.getTreeNode();
117
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
57 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex = getIndex();
74723b26ad96 add IndexJungleTreeEditr and remove DefaultJungleIndexTreeEditor
one
parents: 111
diff changeset
58 return new IndexJungleTreeEditor(root,txManager,editor,newIndex);
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
59 }
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
60
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
61
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
62 @Override
61
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
63 public JungleTreeEditor getLocalTreeEditor()
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
64 {
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
65 return getTreeEditor();
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
66 }
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
67
dcaaecaed9ee Modified getLocalTreeEditor
one
parents: 54
diff changeset
68 @Override
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
69 public TreeNode getRootNode()
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
70 {
86
fb1dc448ac8c delete <T extends TreeNode>
one
parents: 82
diff changeset
71 TreeContext tc = repository.get();
81
715a9fbf02fc remove <T> many source
one
parents: 77
diff changeset
72 ChangeSet cs = tc.getChangeSet();
54
650fe2a0dccc modified tests
Shoshi TAMAKI
parents: 48
diff changeset
73 return cs.getRoot();
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
74 }
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
75
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
76 @Override
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
77 public InterfaceTraverser getTraverser() {
132
ba5370090393 index commit Prototype
one
parents: 131
diff changeset
78 AtomicReservableReference<TreeContext>.Reservation reservation = repository.getReservation();
134
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
79 IndexManager indexManager = new IndexManager(reservation);
132
ba5370090393 index commit Prototype
one
parents: 131
diff changeset
80 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index = getIndex();
124
75ba2f2d6ea3 searchQueryTest add index
one
parents: 117
diff changeset
81 if (index != null)
134
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
82 return new InterfaceTraverser(getRootNode(), index, indexManager);
f46a6e0e4594 add deleteIndexEditor
one
parents: 132
diff changeset
83 return new InterfaceTraverser(getRootNode(),indexManager);
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
84 }
c297f0015d9e create Update query
one
parents: 100
diff changeset
85
c297f0015d9e create Update query
one
parents: 100
diff changeset
86 @Override
111
5df5505e1c1e change Index type
one
parents: 110
diff changeset
87 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() {
104
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
88 TreeContext tc = repository.get();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
89 ChangeSet cs = tc.getChangeSet();
f9a0e7069811 delete worning halfway
one
parents: 103
diff changeset
90 return cs.getIndex();
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 86
diff changeset
91 }
127
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
92
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
93 @Override
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
94 public Iterable<TreeOperation> getLog() {
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
95 TreeContext tc = repository.get();
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
96 ChangeSet cs = tc.getChangeSet();
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
97 return cs.getOperations();
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
98 }
b2c1fd513feb push index thread add read log
one
parents: 126
diff changeset
99
45
fb00d7b147c8 added JungleTree service
Shoshi TAMAKI
parents:
diff changeset
100 }