annotate src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/index/ParentIndex.java @ 0:44465893e8b8

first Commit
author Kazuma
date Wed, 30 Nov 2016 01:47:55 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.jungle.store.index;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
2
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
3 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
4 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNodeChildren;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
5 import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
6
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
7 import java.util.Iterator;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
8
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
9 public class ParentIndex {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
10
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
11 private TreeMap<TreeNode, TreeNode> parentIndex;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
12
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
13 public ParentIndex() {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
14 parentIndex = new TreeMap<>();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
15 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
16
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
17 public boolean isEmpty(){
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
18 return parentIndex.isEmpty();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
19 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
20
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
21 public TreeNode get(TreeNode child) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
22 return parentIndex.get(child).get();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
23 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
24
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
25 public ParentIndex set(TreeNode parent ,TreeNode child) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
26 parentIndex = parentIndex.put(child, parent);
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
27 return this;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
28 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
29
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
30 public ParentIndex delete(TreeNode child) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
31 parentIndex = parentIndex.delete(child);
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
32 return this;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
33 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
34
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
35 public ParentIndex deleteAllChildren(TreeNode parentNode) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
36 TreeNodeChildren children = parentNode.getChildren();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
37 Iterator<TreeNode> childrenIterator = children.iterator();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
38 for (; childrenIterator.hasNext();) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
39 TreeNode child = childrenIterator.next();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
40 parentIndex = parentIndex.delete(child);
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
41 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
42 return this;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
43 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
44
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
45 public ParentIndex addAllChildren(TreeNode parentNode) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
46 TreeNodeChildren children = parentNode.getChildren();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
47 Iterator<TreeNode> childrenIterator = children.iterator();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
48 for (; childrenIterator.hasNext();) {
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
49 TreeNode child = childrenIterator.next();
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
50 parentIndex = parentIndex.put(child, parentNode);
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
51 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
52 return this;
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
53 }
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
54
44465893e8b8 first Commit
Kazuma
parents:
diff changeset
55 }