annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java @ 158:89ed172137ab

fj Index fix?
author one
date Sun, 07 Dec 2014 19:01:08 +0900
parents 20af7f25ef32
children 6615db346bf5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
2
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
3 import java.util.Iterator;
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
4
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
5
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeChildren;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.TreeMapOrd;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
9 import fj.data.Option;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
10 import fj.data.TreeMap;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
11
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
12 public class ParentIndex {
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
13
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
14 private TreeMap<TreeNode, TreeNode> parentIndex;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
15
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
16 public ParentIndex() {
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
17 parentIndex = TreeMap.empty(TreeMapOrd.treeNodeOrd);
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
18 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
19
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
20 public ParentIndex(TreeMap<TreeNode, TreeNode> parentIndex) {
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
21 this.parentIndex = parentIndex;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
22 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
23
20af7f25ef32 miner change
one
parents: 151
diff changeset
24 public boolean isEmpty(){
20af7f25ef32 miner change
one
parents: 151
diff changeset
25 return parentIndex.isEmpty();
20af7f25ef32 miner change
one
parents: 151
diff changeset
26 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
27
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
28 public ParentIndex(ParentIndex parentIndex) {
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
29 this.parentIndex = parentIndex.getParentIndex();
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
30 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
31
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
32 public TreeMap<TreeNode, TreeNode> getParentIndex() {
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
33 return parentIndex;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
34 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
35
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
36 public TreeNode get(TreeNode child) {
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
37 Option<TreeNode> parentOp = parentIndex.get(child);
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
38 if (parentOp.isSome())
20af7f25ef32 miner change
one
parents: 151
diff changeset
39 return parentOp.some();
20af7f25ef32 miner change
one
parents: 151
diff changeset
40 return null;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
41 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
42
20af7f25ef32 miner change
one
parents: 151
diff changeset
43 public ParentIndex set(TreeNode parent) {
20af7f25ef32 miner change
one
parents: 151
diff changeset
44 Iterator<TreeNode> childrenIterator = parent.getChildren().iterator();
20af7f25ef32 miner change
one
parents: 151
diff changeset
45 for (; childrenIterator.hasNext();) {
20af7f25ef32 miner change
one
parents: 151
diff changeset
46 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
47 parentIndex = parentIndex.set(child, parent);
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
48 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
49 return this;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
50 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
51
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
52 public ParentIndex delete(TreeNode child) {
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
53 parentIndex = parentIndex.delete(child);
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
54 return this;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
55 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
56
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
57 public ParentIndex deleteAllChildren(TreeNode parentNode) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
58 TreeNodeChildren children = parentNode.getChildren();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
59 Iterator<TreeNode> childrenIterator = children.iterator();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
60 for (; childrenIterator.hasNext();) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
61 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
62 parentIndex = parentIndex.delete(child);
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
63 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
64 return this;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
65 }
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
66
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
67 public ParentIndex addAllChildren(TreeNode parentNode) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
68 TreeNodeChildren children = parentNode.getChildren();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
69 Iterator<TreeNode> childrenIterator = children.iterator();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
70 for (; childrenIterator.hasNext();) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
71 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
72 parentIndex = parentIndex.set(child, parentNode);
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
73 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
74 return this;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
75 }
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
76
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
77 }