You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2012/02/06 15:40:40 UTC
svn commit: r1241023 -
/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java
Author: stefan
Date: Mon Feb 6 14:40:40 2012
New Revision: 1241023
URL: http://svn.apache.org/viewvc?rev=1241023&view=rev
Log:
flat hierarchy support (WIP)
Modified:
jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java
Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java?rev=1241023&r1=1241022&r2=1241023&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java Mon Feb 6 14:40:40 2012
@@ -390,10 +390,10 @@ public class ChildNodeEntriesTree implem
if (! (ie1 == null ? ie2 == null : ie1.equals(ie2))) {
// index entries aren't equal
if (ie2 == null) {
- // other index entry in null => this must be non-null
+ // other index entry is null => this must be non-null
if (ie1 instanceof NodeInfo) {
removed.add((ChildNodeEntry) ie1);
- } else if (ie2 instanceof BucketInfo) {
+ } else if (ie1 instanceof BucketInfo) {
BucketInfo bi = (BucketInfo) ie1;
ChildNodeEntriesBucket bucket = retrieveBucket(bi.getId());
for (Iterator<ChildNodeEntry> it = bucket.getEntries(0, -1);
@@ -568,13 +568,15 @@ public class ChildNodeEntriesTree implem
// serialize index array entry
IndexEntry entry = index[pos];
if (entry == null) {
- // null entry
- return new Binding.KeyValuePair(Integer.toString(pos), "");
+ // null entry: ""
+ return new Binding.KeyValuePair(Integer.toString(pos), "");
} else if (entry instanceof NodeInfo) {
NodeInfo ni = (NodeInfo) entry;
+ // "n<id>:<name>"
return new Binding.KeyValuePair(Integer.toString(pos), "n" + ni.getId() + ":" + ni.getName());
} else {
BucketInfo bi = (BucketInfo) entry;
+ // "b<id>:<count>"
return new Binding.KeyValuePair(Integer.toString(pos), "b" + bi.getId() + ":" + bi.getSize());
}
}
@@ -597,15 +599,22 @@ public class ChildNodeEntriesTree implem
// deserialize index array entry
assert(pos == Integer.parseInt(kvp.getKey()));
if (kvp.getValue().length() == 0) {
+ // ""
newInstance.index[pos] = null;
} else if (kvp.getValue().charAt(0) == 'n') {
- // todo opimize parsing
- String parts[] = kvp.getValue().substring(1).split(":");
- newInstance.index[pos] = new NodeInfo(parts[1], parts[0]);
+ // "n<id>:<name>"
+ String value = kvp.getValue().substring(1);
+ int i = value.indexOf(':');
+ String id = value.substring(0, i);
+ String name = value.substring(i + 1);
+ newInstance.index[pos] = new NodeInfo(name, id);
} else {
- // todo opimize parsing
- String parts[] = kvp.getValue().substring(1).split(":");
- newInstance.index[pos] = new BucketInfo(parts[0], Integer.parseInt(parts[1]));
+ // "b<id>:<count>"
+ String value = kvp.getValue().substring(1);
+ int i = value.indexOf(':');
+ String id = value.substring(0, i);
+ int count = Integer.parseInt(value.substring(i + 1));
+ newInstance.index[pos] = new BucketInfo(id, count);
}
}
return newInstance;