Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java @ 150:1432adf6f490
add ParentIndex.java
author | one |
---|---|
date | Sat, 22 Nov 2014 12:54:28 +0900 |
parents | |
children | d9fbddf77bf6 |
comparison
equal
deleted
inserted
replaced
149:feb2346ace19 | 150:1432adf6f490 |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index; | |
2 | |
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | |
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.TreeMapOrd; | |
5 import fj.data.Option; | |
6 import fj.data.TreeMap; | |
7 | |
8 public class ParentIndex { | |
9 | |
10 private final TreeMap<TreeNode, TreeNode> parentIndex; | |
11 | |
12 public ParentIndex() { | |
13 parentIndex = TreeMap.empty(TreeMapOrd.treeNodeOrd); | |
14 } | |
15 | |
16 public ParentIndex(TreeMap<TreeNode, TreeNode> parentIndex) { | |
17 this.parentIndex = parentIndex; | |
18 } | |
19 | |
20 public ParentIndex(ParentIndex parentIndex) { | |
21 this.parentIndex = parentIndex.getParentIndex(); | |
22 } | |
23 | |
24 private TreeMap<TreeNode, TreeNode> getParentIndex() { | |
25 return parentIndex; | |
26 } | |
27 | |
28 public Option<TreeNode> get(TreeNode child) { | |
29 Option<TreeNode> parentOp = parentIndex.get(child); | |
30 return parentOp; | |
31 } | |
32 | |
33 public ParentIndex set(TreeNode child, TreeNode parent){ | |
34 TreeMap<TreeNode, TreeNode> newParentIndex = parentIndex.set(child,parent); | |
35 return new ParentIndex(newParentIndex); | |
36 } | |
37 | |
38 public ParentIndex delete(TreeNode child) { | |
39 TreeMap<TreeNode, TreeNode> newParentIndex = parentIndex.delete(child); | |
40 return new ParentIndex(newParentIndex); | |
41 } | |
42 | |
43 } |