Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/LoggingIndexAttributes.java @ 105:78ef456c98a0
add Query Status but has error
author | one |
---|---|
date | Fri, 12 Sep 2014 19:47:25 +0900 |
parents | f9a0e7069811 |
children | 5b7e45464bb8 |
comparison
equal
deleted
inserted
replaced
104:f9a0e7069811 | 105:78ef456c98a0 |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index; | 1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index; |
2 | 2 |
3 import java.nio.ByteBuffer; | 3 import java.nio.ByteBuffer; |
4 | 4 |
5 import fj.Ord; | |
5 import fj.data.List; | 6 import fj.data.List; |
6 import fj.data.Option; | 7 import fj.data.Option; |
7 import fj.data.TreeMap; | 8 import fj.data.TreeMap; |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingAttributes; | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingAttributes; |
19 | 20 |
20 public class LoggingIndexAttributes extends LoggingAttributes { | 21 public class LoggingIndexAttributes extends LoggingAttributes { |
21 | 22 |
22 private final TreeNode wrap; | 23 private final TreeNode wrap; |
23 private final OperationLog log; | 24 private final OperationLog log; |
24 private TreeMap<String,List<TreeNode>> index; | 25 private TreeMap<String,TreeMap<String, List<TreeNode>>> index; |
25 | 26 |
26 public LoggingIndexAttributes(TreeNode _wrap, OperationLog _log, TreeMap<String,List<TreeNode>> index) { | 27 public LoggingIndexAttributes(TreeNode _wrap, OperationLog _log, TreeMap<String,TreeMap<String, List<TreeNode>>> index) { |
27 super(_wrap, _log); | 28 super(_wrap, _log); |
28 this.wrap = _wrap; | 29 this.wrap = _wrap; |
29 this.log = _log; | 30 this.log = _log; |
30 this.index = index; | 31 this.index = index; |
31 } | 32 } |
68 return either; | 69 return either; |
69 | 70 |
70 Logging logNode = either.b(); | 71 Logging logNode = either.b(); |
71 TreeNode newNode = logNode.getWrap(); | 72 TreeNode newNode = logNode.getWrap(); |
72 OperationLog newLog = logNode.getOperationLog(); | 73 OperationLog newLog = logNode.getOperationLog(); |
73 String indexKey = new String(value.array()); | 74 Option<TreeMap<String, TreeNode>> opAttributeIndex = index.get(key); |
74 Option<List<TreeNode>> opList = index.get(indexKey); | 75 String indexKey = new String(value.array()); |
76 TreeMap<String, TreeNode> list = TreeMap.empty(Ord.stringOrd); | |
77 | |
78 if (opAttributeIndex.isNone()) { | |
79 TreeMap<String, TreeNode> newAttributeindex = TreeMap.empty(Ord.stringOrd); | |
80 list = list.set(indexKey,newNode); | |
81 } else { | |
82 Option<TreeNode> oplist = opAttributeIndex.some().get(indexKey); | |
83 list = opAttributeIndex.some(); | |
84 list = list.cons(newNode); | |
85 } | |
86 | |
87 | |
75 if (opList.isNone()) { | 88 if (opList.isNone()) { |
76 List<TreeNode> list = List.nil(); | 89 list = list.set(,newNode); |
77 list.cons(newNode); | |
78 String str = new String(value.array()); | |
79 index.set(str,list); | |
80 } else { | 90 } else { |
81 List<TreeNode> list = opList.some(); | 91 list = opList.some(); |
82 list = list.cons(newNode); | 92 list = list.cons(newNode); |
83 index.set(indexKey, list); | |
84 } | 93 } |
85 Logging logIndexNode = new LoggingIndexNode(newNode, newLog, index); | 94 TreeMap<String,List<TreeNode>> newIndex = index.set(indexKey,list); |
95 Logging logIndexNode = new LoggingIndexNode(newNode, newLog, newIndex); | |
86 return DefaultEither.newB(logIndexNode); | 96 return DefaultEither.newB(logIndexNode); |
87 } | 97 } |
88 } | 98 } |