public void addPrefix6Range(
Prefix6Range prefix6Range, BitSet bits, int prefixLength, int depth) {
for (Prefix6Range nodeRange : _prefix6Ranges) {
if (nodeRange.includesPrefix6Range(prefix6Range)) {
return;
}
}
if (prefixLength == depth) {
_prefix6Ranges.add(prefix6Range);
prune(prefix6Range);
} else {
boolean currentBit = bits.get(depth);
if (currentBit) {
if (_right == null) {
_right = new BitTrieNode();
}
_right.addPrefix6Range(prefix6Range, bits, prefixLength, depth + 1);
} else {
if (_left == null) {
_left = new BitTrieNode();
}
_left.addPrefix6Range(prefix6Range, bits, prefixLength, depth + 1);
}
}
}