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 }