124 lines
5.3 KiB
Java
124 lines
5.3 KiB
Java
package com.google.common.collect;
|
|
|
|
import com.google.common.base.Preconditions;
|
|
import com.google.common.collect.ImmutableSortedSet;
|
|
import java.lang.Comparable;
|
|
import java.util.NoSuchElementException;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public abstract class ContiguousSet<C extends Comparable> extends ImmutableSortedSet<C> {
|
|
final DiscreteDomain<C> domain;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
@Override // com.google.common.collect.ImmutableSortedSet
|
|
public abstract ContiguousSet<C> headSetImpl(C c, boolean z);
|
|
|
|
public abstract ContiguousSet<C> intersection(ContiguousSet<C> contiguousSet);
|
|
|
|
public abstract Range<C> range();
|
|
|
|
public abstract Range<C> range(BoundType boundType, BoundType boundType2);
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
@Override // com.google.common.collect.ImmutableSortedSet
|
|
public abstract ContiguousSet<C> subSetImpl(C c, boolean z, C c2, boolean z2);
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
@Override // com.google.common.collect.ImmutableSortedSet
|
|
public abstract ContiguousSet<C> tailSetImpl(C c, boolean z);
|
|
|
|
public static <C extends Comparable> ContiguousSet<C> create(Range<C> range, DiscreteDomain<C> discreteDomain) {
|
|
Preconditions.checkNotNull(range);
|
|
Preconditions.checkNotNull(discreteDomain);
|
|
try {
|
|
Range<C> intersection = !range.hasLowerBound() ? range.intersection(Range.atLeast(discreteDomain.minValue())) : range;
|
|
if (!range.hasUpperBound()) {
|
|
intersection = intersection.intersection(Range.atMost(discreteDomain.maxValue()));
|
|
}
|
|
if (intersection.isEmpty() || Range.compareOrThrow(range.lowerBound.leastValueAbove(discreteDomain), range.upperBound.greatestValueBelow(discreteDomain)) > 0) {
|
|
return new EmptyContiguousSet(discreteDomain);
|
|
}
|
|
return new RegularContiguousSet(intersection, discreteDomain);
|
|
} catch (NoSuchElementException e) {
|
|
throw new IllegalArgumentException(e);
|
|
}
|
|
}
|
|
|
|
public static ContiguousSet<Integer> closed(int i, int i2) {
|
|
return create(Range.closed(Integer.valueOf(i), Integer.valueOf(i2)), DiscreteDomain.integers());
|
|
}
|
|
|
|
public static ContiguousSet<Long> closed(long j, long j2) {
|
|
return create(Range.closed(Long.valueOf(j), Long.valueOf(j2)), DiscreteDomain.longs());
|
|
}
|
|
|
|
public static ContiguousSet<Integer> closedOpen(int i, int i2) {
|
|
return create(Range.closedOpen(Integer.valueOf(i), Integer.valueOf(i2)), DiscreteDomain.integers());
|
|
}
|
|
|
|
public static ContiguousSet<Long> closedOpen(long j, long j2) {
|
|
return create(Range.closedOpen(Long.valueOf(j), Long.valueOf(j2)), DiscreteDomain.longs());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ContiguousSet(DiscreteDomain<C> discreteDomain) {
|
|
super(Ordering.natural());
|
|
this.domain = discreteDomain;
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet, java.util.SortedSet
|
|
public ContiguousSet<C> headSet(C c) {
|
|
return headSetImpl((ContiguousSet<C>) Preconditions.checkNotNull(c), false);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet
|
|
public ContiguousSet<C> headSet(C c, boolean z) {
|
|
return headSetImpl((ContiguousSet<C>) Preconditions.checkNotNull(c), z);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet, java.util.SortedSet
|
|
public ContiguousSet<C> subSet(C c, C c2) {
|
|
Preconditions.checkNotNull(c);
|
|
Preconditions.checkNotNull(c2);
|
|
Preconditions.checkArgument(comparator().compare(c, c2) <= 0);
|
|
return subSetImpl((boolean) c, true, (boolean) c2, false);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet
|
|
public ContiguousSet<C> subSet(C c, boolean z, C c2, boolean z2) {
|
|
Preconditions.checkNotNull(c);
|
|
Preconditions.checkNotNull(c2);
|
|
Preconditions.checkArgument(comparator().compare(c, c2) <= 0);
|
|
return subSetImpl((boolean) c, z, (boolean) c2, z2);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet, java.util.SortedSet
|
|
public ContiguousSet<C> tailSet(C c) {
|
|
return tailSetImpl((ContiguousSet<C>) Preconditions.checkNotNull(c), true);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
@Override // com.google.common.collect.ImmutableSortedSet, java.util.NavigableSet
|
|
public ContiguousSet<C> tailSet(C c, boolean z) {
|
|
return tailSetImpl((ContiguousSet<C>) Preconditions.checkNotNull(c), z);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableSortedSet
|
|
ImmutableSortedSet<C> createDescendingSet() {
|
|
return new DescendingImmutableSortedSet(this);
|
|
}
|
|
|
|
@Override // java.util.AbstractCollection
|
|
public String toString() {
|
|
return range().toString();
|
|
}
|
|
|
|
@Deprecated
|
|
public static <E> ImmutableSortedSet.Builder<E> builder() {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
}
|