# HG changeset patch # User one # Date 1416628468 -32400 # Node ID 1432adf6f490a7feb06d47899344337b493c3376 # Parent feb2346ace1970cd37db7efb4b9c28fab2b91c52 add ParentIndex.java diff -r feb2346ace19 -r 1432adf6f490 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java Sat Nov 22 12:54:28 2014 +0900 @@ -0,0 +1,43 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.TreeMapOrd; +import fj.data.Option; +import fj.data.TreeMap; + +public class ParentIndex { + + private final TreeMap parentIndex; + + public ParentIndex() { + parentIndex = TreeMap.empty(TreeMapOrd.treeNodeOrd); + } + + public ParentIndex(TreeMap parentIndex) { + this.parentIndex = parentIndex; + } + + public ParentIndex(ParentIndex parentIndex) { + this.parentIndex = parentIndex.getParentIndex(); + } + + private TreeMap getParentIndex() { + return parentIndex; + } + + public Option get(TreeNode child) { + Option parentOp = parentIndex.get(child); + return parentOp; + } + + public ParentIndex set(TreeNode child, TreeNode parent){ + TreeMap newParentIndex = parentIndex.set(child,parent); + return new ParentIndex(newParentIndex); + } + + public ParentIndex delete(TreeNode child) { + TreeMap newParentIndex = parentIndex.delete(child); + return new ParentIndex(newParentIndex); + } + +}