
com.google.common.collect.AbstractRangeSet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of guava Show documentation
Show all versions of guava Show documentation
Guava is a suite of core and expanded libraries that include
utility classes, google's collections, io classes, and much
much more.
Guava has two code dependencies - javax.annotation
per the JSR-305 spec and javax.inject per the JSR-330 spec.
This is a fork of Guava 14.0.1 for Hudson.
The newest version!
/*
* Copyright (C) 2011 The Guava Authors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.common.collect;
import static com.google.common.base.Preconditions.checkNotNull;
import javax.annotation.Nullable;
/**
* A skeletal implementation of {@code RangeSet}.
*
* @author Louis Wasserman
*/
abstract class AbstractRangeSet implements RangeSet {
AbstractRangeSet() {}
@Override
public boolean contains(C value) {
return rangeContaining(value) != null;
}
@Override
public Range rangeContaining(C value) {
checkNotNull(value);
for (Range range : asRanges()) {
if (range.contains(value)) {
return range;
}
}
return null;
}
@Override
public boolean isEmpty() {
return asRanges().isEmpty();
}
@Override
public void add(Range range) {
throw new UnsupportedOperationException();
}
@Override
public void remove(Range range) {
throw new UnsupportedOperationException();
}
@Override
public void clear() {
remove(Range.all());
}
@Override
public boolean enclosesAll(RangeSet other) {
for (Range range : other.asRanges()) {
if (!encloses(range)) {
return false;
}
}
return true;
}
@Override
public void addAll(RangeSet other) {
for (Range range : other.asRanges()) {
add(range);
}
}
@Override
public void removeAll(RangeSet other) {
for (Range range : other.asRanges()) {
remove(range);
}
}
@Override
public boolean encloses(Range otherRange) {
for (Range range : asRanges()) {
if (range.encloses(otherRange)) {
return true;
}
}
return false;
}
@Override
public boolean equals(@Nullable Object obj) {
if (obj instanceof RangeSet) {
RangeSet> other = (RangeSet>) obj;
return this.asRanges().equals(other.asRanges());
}
return false;
}
@Override
public final int hashCode() {
return asRanges().hashCode();
}
@Override
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append('{');
for (Range range : asRanges()) {
builder.append(range);
}
builder.append('}');
return builder.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy