/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * @param splits the list of cut points * @param lower the lower bound of partitions 0..numPartitions-1 * @param upper the upper bound of partitions 0..numPartitions-1 * @param prefix the prefix that we have already checked against * @param maxDepth the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec (splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * @param splits the list of cut points * @param lower the lower bound of partitions 0..numPartitions-1 * @param upper the upper bound of partitions 0..numPartitions-1 * @param prefix the prefix that we have already checked against * @param maxDepth the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec (splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * @param splits the list of cut points * @param lower the lower bound of partitions 0..numPartitions-1 * @param upper the upper bound of partitions 0..numPartitions-1 * @param prefix the prefix that we have already checked against * @param maxDepth the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec (splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * @param splits the list of cut points * @param lower the lower bound of partitions 0..numPartitions-1 * @param upper the upper bound of partitions 0..numPartitions-1 * @param prefix the prefix that we have already checked against * @param maxDepth the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec (splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * @param splits the list of cut points * @param lower the lower bound of partitions 0..numPartitions-1 * @param upper the upper bound of partitions 0..numPartitions-1 * @param prefix the prefix that we have already checked against * @param maxDepth the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec (splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * * @param splits * the list of cut points * @param lower * the lower bound of partitions 0..numPartitions-1 * @param upper * the upper bound of partitions 0..numPartitions-1 * @param prefix * the prefix that we have already checked against * @param maxDepth * the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec(splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
/** * Given a sorted set of cut points, build a trie that will find the correct * partition quickly. * * @param splits * the list of cut points * @param lower * the lower bound of partitions 0..numPartitions-1 * @param upper * the upper bound of partitions 0..numPartitions-1 * @param prefix * the prefix that we have already checked against * @param maxDepth * the maximum depth we will build a trie for * @return the trie node that will divide the splits correctly */ private TrieNode buildTrie(BinaryComparable[] splits, int lower, int upper, byte[] prefix, int maxDepth) { return buildTrieRec(splits, lower, upper, prefix, maxDepth, new CarriedTrieNodeRef()); }
= buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
= buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
result.child[0xFF & ch] = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); result.child[0xFF] = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
= buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
= buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
= buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);
result.child[0xFF & ch] = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref); result.child[0xFF] = buildTrieRec(splits, lower, currentBound, trial, maxDepth, ref);