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