annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java @ 166:6615db346bf5

miner change
author one
date Wed, 24 Dec 2014 14:33:17 +0900
parents 89ed172137ab
children 1749338f2366 3cd075a445bf
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
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeChildren;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.TreeMapOrd;
166
6615db346bf5 miner change
one
parents: 158
diff changeset
8 import fj.Ord;
150
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() {
166
6615db346bf5 miner change
one
parents: 158
diff changeset
17 Ord<TreeNode> aaa = TreeMapOrd.treeNodeOrd;
6615db346bf5 miner change
one
parents: 158
diff changeset
18 parentIndex = TreeMap.empty(aaa);
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
19 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
20
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
21 public ParentIndex(TreeMap<TreeNode, TreeNode> parentIndex) {
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
22 this.parentIndex = parentIndex;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
23 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
24
20af7f25ef32 miner change
one
parents: 151
diff changeset
25 public boolean isEmpty(){
20af7f25ef32 miner change
one
parents: 151
diff changeset
26 return parentIndex.isEmpty();
20af7f25ef32 miner change
one
parents: 151
diff changeset
27 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
28
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
29 public ParentIndex(ParentIndex parentIndex) {
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
30 this.parentIndex = parentIndex.getParentIndex();
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
31 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
32
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
33 public TreeMap<TreeNode, TreeNode> getParentIndex() {
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
34 return parentIndex;
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
35 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
36
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
37 public TreeNode get(TreeNode child) {
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
38 Option<TreeNode> parentOp = parentIndex.get(child);
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
39 if (parentOp.isSome())
20af7f25ef32 miner change
one
parents: 151
diff changeset
40 return parentOp.some();
20af7f25ef32 miner change
one
parents: 151
diff changeset
41 return null;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
42 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
43
20af7f25ef32 miner change
one
parents: 151
diff changeset
44 public ParentIndex set(TreeNode parent) {
20af7f25ef32 miner change
one
parents: 151
diff changeset
45 Iterator<TreeNode> childrenIterator = parent.getChildren().iterator();
20af7f25ef32 miner change
one
parents: 151
diff changeset
46 for (; childrenIterator.hasNext();) {
20af7f25ef32 miner change
one
parents: 151
diff changeset
47 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
48 parentIndex = parentIndex.set(child, parent);
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
49 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
50 return this;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
51 }
153
20af7f25ef32 miner change
one
parents: 151
diff changeset
52
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
53 public ParentIndex delete(TreeNode child) {
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
54 parentIndex = parentIndex.delete(child);
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
55 return this;
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
56 }
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
57
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
58 public ParentIndex deleteAllChildren(TreeNode parentNode) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
59 TreeNodeChildren children = parentNode.getChildren();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
60 Iterator<TreeNode> childrenIterator = children.iterator();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
61 for (; childrenIterator.hasNext();) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
62 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
63 parentIndex = parentIndex.delete(child);
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
64 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
65 return this;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
66 }
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
67
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
68 public ParentIndex addAllChildren(TreeNode parentNode) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
69 TreeNodeChildren children = parentNode.getChildren();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
70 Iterator<TreeNode> childrenIterator = children.iterator();
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
71 for (; childrenIterator.hasNext();) {
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
72 TreeNode child = childrenIterator.next();
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
73 parentIndex = parentIndex.set(child, parentNode);
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
74 }
158
89ed172137ab fj Index fix?
one
parents: 153
diff changeset
75 return this;
151
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
76 }
d9fbddf77bf6 add class Index
one
parents: 150
diff changeset
77
150
1432adf6f490 add ParentIndex.java
one
parents:
diff changeset
78 }