TreeId computeBucketId(final NodeId nodeId, final int childDepth) { byte[] treeId = new byte[childDepth]; int unpromotableDepthIndex = -1; for (int depthIndex = 0; depthIndex < childDepth; depthIndex++) { int bucketIndex = bucket(nodeId, depthIndex); if (bucketIndex == -1) { unpromotableDepthIndex = depthIndex; break; } treeId[depthIndex] = (byte) bucketIndex; } if (unpromotableDepthIndex > -1) { final int extraBucketIndex = unpromotableBucketIndex(unpromotableDepthIndex); treeId[unpromotableDepthIndex] = (byte) extraBucketIndex; unpromotableDepthIndex++; final int missingDepthCount = childDepth - unpromotableDepthIndex; for (int i = 0; i < missingDepthCount; i++, unpromotableDepthIndex++) { int bucketIndex = canonicalBucket(nodeId, i); treeId[unpromotableDepthIndex] = (byte) bucketIndex; } } return new TreeId(treeId); }
TreeId computeBucketId(final NodeId nodeId, final int childDepth) { byte[] treeId = new byte[childDepth]; int unpromotableDepthIndex = -1; for (int depthIndex = 0; depthIndex < childDepth; depthIndex++) { int bucketIndex = bucket(nodeId, depthIndex); if (bucketIndex == -1) { unpromotableDepthIndex = depthIndex; break; } treeId[depthIndex] = (byte) bucketIndex; } if (unpromotableDepthIndex > -1) { final int extraBucketIndex = unpromotableBucketIndex(unpromotableDepthIndex); treeId[unpromotableDepthIndex] = (byte) extraBucketIndex; unpromotableDepthIndex++; final int missingDepthCount = childDepth - unpromotableDepthIndex; for (int i = 0; i < missingDepthCount; i++, unpromotableDepthIndex++) { int bucketIndex = canonicalBucket(nodeId, i); treeId[unpromotableDepthIndex] = (byte) bucketIndex; } } return new TreeId(treeId); }