# HG changeset patch
# User one
# Date 1417933470 -32400
# Node ID c23f70bb791f4fc23524853580dba12b8efd7629
# Parent 54b13df9cd8796e300a1a42f3859bbe3f70cd35d
change Index fj → java.until
diff -r 54b13df9cd87 -r c23f70bb791f pom.xml
--- a/pom.xml Sun Dec 07 14:54:27 2014 +0900
+++ b/pom.xml Sun Dec 07 15:24:30 2014 +0900
@@ -34,7 +34,7 @@
org.functionaljava
functionaljava
- 3.1
+ 4.1
org.apache.maven.surefire
diff -r 54b13df9cd87 -r c23f70bb791f src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/Index.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/Index.java Sun Dec 07 14:54:27 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/Index.java Sun Dec 07 15:24:30 2014 +0900
@@ -1,21 +1,16 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;
import java.util.Iterator;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NulIterator;
+import java.util.TreeMap;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import fj.Ord;
-import fj.P2;
import fj.data.List;
-import fj.data.Option;
-import fj.data.TreeMap;
public class Index {
TreeMap>> indexList;
public Index() {
- this.indexList = TreeMap.empty(Ord.stringOrd);
+ this.indexList = new TreeMap>>();
}
public Index(TreeMap>> indexList) {
@@ -27,33 +22,29 @@
}
public Index set(String key, String value, TreeNode node) {
- Option>> indexOp = indexList.get(key);
- if (indexOp.isNone()) {
- TreeMap> index = TreeMap.empty(Ord.stringOrd);
+ TreeMap> index = indexList.get(key);
+ if (index == null) {
+ index = new TreeMap>();
List nodeList = List.nil();
List newNodeList = nodeList.cons(node);
- TreeMap> newIndex = index.set(value, newNodeList);
- TreeMap>> newIndexList = indexList.set(key, newIndex);
-
-
- return new Index(newIndexList);
+ index.put(value, newNodeList);
+ indexList.put(key,index);
+ return this;
}
- TreeMap> index = indexOp.some();
- Option> nodeListOp = index.get(value);
+ List nodeList = index.get(value);
List newNodeList;
- if (nodeListOp.isSome()) {
- List nodeList = nodeListOp.some();
+ if (nodeList != null) {
newNodeList = nodeList.cons(node);
} else {
- List nodeList = List.nil();
+ nodeList = List.nil();
newNodeList = nodeList.cons(node);
}
- TreeMap> newIndex = index.set(value, newNodeList);
- TreeMap>> newIndexList = indexList.set(key, newIndex);
+ index.put(value, newNodeList);
+ indexList.put(key, index);
- return new Index(newIndexList);
+ return this;
}
@@ -85,36 +76,29 @@
public List get(String key, String value) {
- Option>> indexOp = indexList.get(key);
- if (indexOp.isNone())
+ TreeMap> index = indexList.get(key);
+ if (index == null)
return null;
- TreeMap> index = indexOp.some();
- Option> nodeListOp = index.get(value);
+ List nodeList = index.get(value);
- if (nodeListOp.isNone())
+ if (nodeList == null)
return List.nil();
- return nodeListOp.some();
+ return nodeList;
}
public Iterator getAll(String key){
- Option>> indexOp = indexList.get(key);
- if (indexOp.isNone())
+ TreeMap> index = indexList.get(key);
+ if (index == null)
return null;
- TreeMap> index = indexOp.some();
- if (!index.isEmpty())
- return new NulIterator();
-
-
return new Iterator(){
- Iterator>> treeMapIterator = index.iterator();
+ Iterator treeMapKeys = index.keySet().iterator();
List nodeList = List.nil();
TreeNode node;
-
@Override
public boolean hasNext() {
@@ -124,8 +108,9 @@
return true;
}
- for (;treeMapIterator.hasNext();) {
- nodeList = treeMapIterator.next()._2();
+ for (;treeMapKeys.hasNext();) {
+ String key = treeMapKeys.next();
+ nodeList = index.get(key);
node = nodeList.head();
nodeList = nodeList.tail();
return true;
diff -r 54b13df9cd87 -r c23f70bb791f src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java Sun Dec 07 14:54:27 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java Sun Dec 07 15:24:30 2014 +0900
@@ -1,20 +1,18 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;
import java.util.Iterator;
-
+import java.util.TreeMap;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeChildren;
-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);
+ parentIndex = new TreeMap();
}
public ParentIndex(TreeMap parentIndex) {
@@ -33,47 +31,44 @@
}
public TreeNode get(TreeNode child) {
- Option parentOp = parentIndex.get(child);
- if (parentOp.isSome())
- return parentOp.some();
+ TreeNode parent = parentIndex.get(child);
+ if (parent != null)
+ return parent;
return null;
}
public ParentIndex set(TreeNode parent) {
Iterator childrenIterator = parent.getChildren().iterator();
- TreeMap newParentIndex = parentIndex;
for (; childrenIterator.hasNext();) {
TreeNode child = childrenIterator.next();
- newParentIndex = newParentIndex.set(child, parent);
+ parentIndex.put(child, parent);
}
- return new ParentIndex(newParentIndex);
+ return this;
}
public ParentIndex delete(TreeNode child) {
- TreeMap newParentIndex = parentIndex.delete(child);
- return new ParentIndex(newParentIndex);
+ parentIndex.remove(child);
+ return this;
}
public ParentIndex deleteAllChildren(TreeNode parentNode) {
TreeNodeChildren children = parentNode.getChildren();
Iterator childrenIterator = children.iterator();
- TreeMap newParentIndex = parentIndex;
for (; childrenIterator.hasNext();) {
TreeNode child = childrenIterator.next();
- newParentIndex = newParentIndex.delete(child);
+ parentIndex.remove(child);
}
- return new ParentIndex(newParentIndex);
+ return this;
}
public ParentIndex addAllChildren(TreeNode parentNode) {
TreeNodeChildren children = parentNode.getChildren();
Iterator childrenIterator = children.iterator();
- TreeMap newParentIndex = parentIndex;
for (; childrenIterator.hasNext();) {
TreeNode child = childrenIterator.next();
- newParentIndex = newParentIndex.set(child, parentNode);
+ parentIndex.put(child, parentNode);
}
- return new ParentIndex(newParentIndex);
+ return this;
}
}