Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java @ 184:d2b710337eaa
change TreeMap
author | tatsuki |
---|---|
date | Sun, 29 Mar 2015 23:29:27 +0900 |
parents | 066d9c5758dc |
children | 209df7faa37c |
comparison
equal
deleted
inserted
replaced
183:066d9c5758dc | 184:d2b710337eaa |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; | 1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; |
2 | 2 |
3 import java.util.Iterator; | 3 import java.util.Iterator; |
4 import java.util.Optional; | |
4 | 5 |
5 import fj.Ord; | 6 import fj.Ord; |
6 import fj.P2; | |
7 import fj.data.List; | 7 import fj.data.List; |
8 import fj.data.Option; | 8 import jp.ac.u_ryukyu.ie.cr.tatsuki.TreeMap.TreeMap; |
9 import fj.data.TreeMap; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NulIterator; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NulIterator; |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeContext; | |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
13 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.PathNodeIterator; | 11 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.PathNodeIterator; |
14 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query; | 12 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query; |
15 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.IndexCreater; | 13 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.IndexCreater; |
16 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex; | 14 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex; |
22 ParentIndex parentIndex; | 20 ParentIndex parentIndex; |
23 boolean parentUpdateFlag; | 21 boolean parentUpdateFlag; |
24 boolean useIndex; | 22 boolean useIndex; |
25 | 23 |
26 public InterfaceTraverser(TreeNode root, boolean indexFlag) { | 24 public InterfaceTraverser(TreeNode root, boolean indexFlag) { |
27 this(root, TreeMap.empty(Ord.stringOrd), new ParentIndex(), indexFlag); | 25 this(root, new TreeMap<>(), new ParentIndex(), indexFlag); |
28 } | 26 } |
29 | 27 |
30 public InterfaceTraverser(TreeNode root, TreeMap<String, TreeMap<String, List<TreeNode>>> index, | 28 public InterfaceTraverser(TreeNode root, TreeMap<String, TreeMap<String, List<TreeNode>>> index, |
31 ParentIndex parentIndex, boolean useIndex) { | 29 ParentIndex parentIndex, boolean useIndex) { |
32 this.root = root; | 30 this.root = root; |
307 // }; | 305 // }; |
308 // } | 306 // } |
309 // } | 307 // } |
310 | 308 |
311 public Iterator<TreeNode> get(String key, String value) { | 309 public Iterator<TreeNode> get(String key, String value) { |
312 | 310 Optional<TreeMap<String, List<TreeNode>>> indexOp = indexList.getLoop(key); |
313 TreeMap<String, List<TreeNode>> index = indexList.getLoop(key); | 311 if (!indexOp.isPresent()) |
314 if (index == null) | |
315 return null; | 312 return null; |
316 | 313 |
317 List<TreeNode> nodeList = index.getLoop(value); | 314 Optional<List<TreeNode>> nodeListOp = indexOp.get().getLoop(value); |
318 if (nodeList == null) | 315 if (!nodeListOp.isPresent()) |
319 return new NulIterator<TreeNode>(); | 316 return new NulIterator<TreeNode>(); |
320 return nodeList.iterator(); | 317 |
318 return nodeListOp.get().iterator(); | |
321 } | 319 } |
322 } | 320 } |