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

Method remove

corpus/java/training/guava/collect/TreeRangeSet.java:212–253  ·  view source on GitHub ↗
(Range<C> rangeToRemove)

Source from the content-addressed store, hash-verified

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