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

Method remove

output/java_guava/1.4.18/TreeRangeSet.java:206–240  ·  view source on GitHub ↗
(Range<C> rangeToRemove)

Source from the content-addressed store, hash-verified

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