Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java @ 125:a0c4a4b8ad10
index test
author | one |
---|---|
date | Wed, 08 Oct 2014 02:47:17 +0900 |
parents | 75ba2f2d6ea3 |
children | f81ec544a155 |
comparison
equal
deleted
inserted
replaced
124:75ba2f2d6ea3 | 125:a0c4a4b8ad10 |
---|---|
8 import fj.data.TreeMap; | 8 import fj.data.TreeMap; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; |
16 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.PathNodeIndexIterator; | |
17 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.PathNodeIterator; | 14 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.PathNodeIterator; |
18 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query; | 15 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query; |
19 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.SearchQuery; | |
20 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.UpdateQuery; | |
21 | 16 |
22 public class InterfaceTraverser { | 17 public class InterfaceTraverser { |
23 | 18 |
24 InterfaceTraverser traverser; | 19 InterfaceTraverser traverser; |
25 TreeNode node; | 20 TreeNode node; |
26 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index; | 21 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index; |
22 public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { | |
23 return index; | |
24 } | |
25 | |
26 public void setIndex( | |
27 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index) { | |
28 this.index = index; | |
29 } | |
30 | |
31 | |
32 | |
27 JungleTreeEditor editor; | 33 JungleTreeEditor editor; |
28 | 34 |
29 public InterfaceTraverser(TreeNode _root, JungleTreeEditor editor) { | 35 public InterfaceTraverser(TreeNode _root, JungleTreeEditor editor) { |
30 this.node = _root; | 36 this.node = _root; |
31 this.index = TreeMap.empty(Ord.stringOrd); | 37 this.index = TreeMap.empty(Ord.stringOrd); |
48 | 54 |
49 public void set(TreeNode root) { | 55 public void set(TreeNode root) { |
50 this.node = root; | 56 this.node = root; |
51 } | 57 } |
52 | 58 |
53 /* | |
54 * public IteratorPathNode traverse(TreeNode _node ,NodePath _path ,int | |
55 * _pos){ | |
56 * | |
57 * Children children = _node.getChildren(); Either<Error,TreeNode> either = | |
58 * children.at(0); IteratorPathNode list = new IteratorPathNodeImpl(); int | |
59 * pathCount = _pos; if(children.size() == 0){ list = list.add(new | |
60 * Pair<TreeNode, NodePath>(node, _path.add(_pos))); return list; } | |
61 * | |
62 * for(TreeNode child : children){ list = | |
63 * list.append(traverse(child,_path,pathCount)); pathCount++; } | |
64 * | |
65 * list = list.add(new Pair<TreeNode,NodePath>(_node, _path.add(_pos))); | |
66 * return list; } | |
67 * | |
68 * public int count(Query _query, String _key, String _attribute){ return | |
69 * this.find(_query,_key,_attribute); } | |
70 * | |
71 * public List<Pair<NodePath,TreeNode>> distinct(String _key ,String... | |
72 * _attribute){ return null; } | |
73 */ | |
74 | 59 |
75 public JungleTreeEditor update(final Query query) { | |
76 /* | |
77 * Iterator<Pair<TreeNode, NodePath>> findNode = find(query); //do { for | |
78 * (; findNode.hasNext();) { Either<Error, JungleTreeEditor> either = | |
79 * editor.putAttribute(findNode.next().right(), "KEY", | |
80 * query.getUpdateAttribute()); if (either.isA()) ;// wait delay write | |
81 * editor = either.b(); } //} while (editor.success().isA()); | |
82 */ | |
83 return editor; | |
84 } | |
85 | 60 |
86 public Iterator<Pair<TreeNode, NodePath>> find(final Query query, String key, String searchValue) { | 61 public Iterator<Pair<TreeNode, NodePath>> find(final Query query, String key, String searchValue) { |
87 | 62 |
88 if (!index.get(key).isNone()) { | 63 if (!index.get(key).isNone()) { |
89 | 64 |