MCPcopy Create free account
hub / github.com/antlr/codebuff / remove

Method remove

output/java_guava/1.4.19/TreeRangeSet.java:208–242  ·  view source on GitHub ↗
(Range<C> rangeToRemove)

Source from the content-addressed store, hash-verified

206 }
207
208 @Override
209 public void remove(Range<C> rangeToRemove) {
210 checkNotNull(rangeToRemove);
211 if (rangeToRemove.isEmpty()) {
212 return;
213 }
214
215 // We will use { } to illustrate ranges currently in the range set, and < >
216 // to illustrate rangeToRemove.
217 Entry<Cut<C>, Range<C>> entryBelowLB = rangesByLowerBound.lowerEntry(rangeToRemove.lowerBound);
218 if (entryBelowLB != null) {
219 // { <
220 Range<C> rangeBelowLB = entryBelowLB.getValue();
221 if (rangeBelowLB.upperBound.compareTo(rangeToRemove.lowerBound) >= 0) {
222 // { < }, and we will need to subdivide
223 if (rangeToRemove.hasUpperBound()
224 && rangeBelowLB.upperBound.compareTo(rangeToRemove.upperBound) >= 0) {
225 // { < > }
226 replaceRangeWithSameLowerBound(Range.create(rangeToRemove.upperBound, rangeBelowLB.upperBound));
227 }
228 replaceRangeWithSameLowerBound(Range.create(rangeBelowLB.lowerBound, rangeToRemove.lowerBound));
229 }
230 }
231 Entry<Cut<C>, Range<C>> entryBelowUB = rangesByLowerBound.floorEntry(rangeToRemove.upperBound);
232 if (entryBelowUB != null) {
233 // { >
234 Range<C> rangeBelowUB = entryBelowUB.getValue();
235 if (rangeToRemove.hasUpperBound()
236 && rangeBelowUB.upperBound.compareTo(rangeToRemove.upperBound) >= 0) {
237 // { > }
238 replaceRangeWithSameLowerBound(Range.create(rangeToRemove.upperBound, rangeBelowUB.upperBound));
239 }
240 }
241 rangesByLowerBound.subMap(rangeToRemove.lowerBound, rangeToRemove.upperBound).clear();
242 }
243
244 private void replaceRangeWithSameLowerBound(Range<C> range) {
245 if (range.isEmpty()) {

Callers

nothing calls this directly

Calls 11

createMethod · 0.95
isEmptyMethod · 0.65
getValueMethod · 0.65
clearMethod · 0.65
checkNotNullMethod · 0.45
lowerEntryMethod · 0.45
compareToMethod · 0.45
hasUpperBoundMethod · 0.45
floorEntryMethod · 0.45
subMapMethod · 0.45

Tested by

no test coverage detected