/**
* Splits the {@link Bucket} in two.
*/
private DefaultBucket[] split() {
KUID bucketId = getId();
int depth = getDepth();
DefaultBucket left = new DefaultBucket(bucketId, depth+1);
DefaultBucket right = new DefaultBucket(bucketId.set(depth), depth+1);
for (ContactEntry entry : active.values()) {
KUID contactId = entry.getId();
if (!contactId.isBitSet(depth)) {
left.add(entry);
} else {
right.add(entry);
}
}
for (ContactEntry entry : cached.values()) {
KUID contactId = entry.getId();
if (!contactId.isBitSet(depth)) {
left.add(entry);
} else {
right.add(entry);
}
}