final class GeneralRange<T>
extends java.lang.Object
implements java.io.Serializable
null
. Unlike Range
, this allows the use of an arbitrary comparator. This is designed for use in the
implementation of subcollections of sorted collection types.
Whenever possible, use Range
instead, which is better supported.
Modifier and Type | Field and Description |
---|---|
private java.util.Comparator<? super T> |
comparator |
private boolean |
hasLowerBound |
private boolean |
hasUpperBound |
private BoundType |
lowerBoundType |
private T |
lowerEndpoint |
private GeneralRange<T> |
reverse |
private BoundType |
upperBoundType |
private T |
upperEndpoint |
Modifier | Constructor and Description |
---|---|
private |
GeneralRange(java.util.Comparator<? super T> comparator,
boolean hasLowerBound,
T lowerEndpoint,
BoundType lowerBoundType,
boolean hasUpperBound,
T upperEndpoint,
BoundType upperBoundType) |
Modifier and Type | Method and Description |
---|---|
(package private) static <T> GeneralRange<T> |
all(java.util.Comparator<? super T> comparator)
Returns the whole range relative to the specified comparator.
|
(package private) java.util.Comparator<? super T> |
comparator() |
(package private) boolean |
contains(T t) |
(package private) static <T> GeneralRange<T> |
downTo(java.util.Comparator<? super T> comparator,
T endpoint,
BoundType boundType)
Returns everything above the endpoint relative to the specified comparator, with the specified
endpoint behavior.
|
boolean |
equals(java.lang.Object obj) |
(package private) static <T extends java.lang.Comparable> |
from(Range<T> range)
Converts a Range to a GeneralRange.
|
(package private) BoundType |
getLowerBoundType() |
(package private) T |
getLowerEndpoint() |
(package private) BoundType |
getUpperBoundType() |
(package private) T |
getUpperEndpoint() |
int |
hashCode() |
(package private) boolean |
hasLowerBound() |
(package private) boolean |
hasUpperBound() |
(package private) GeneralRange<T> |
intersect(GeneralRange<T> other)
Returns the intersection of the two ranges, or an empty range if their intersection is empty.
|
(package private) boolean |
isEmpty() |
(package private) static <T> GeneralRange<T> |
range(java.util.Comparator<? super T> comparator,
T lower,
BoundType lowerType,
T upper,
BoundType upperType)
Returns everything between the endpoints relative to the specified comparator, with the
specified endpoint behavior.
|
(package private) GeneralRange<T> |
reverse()
Returns the same range relative to the reversed comparator.
|
(package private) boolean |
tooHigh(T t) |
(package private) boolean |
tooLow(T t) |
java.lang.String |
toString() |
(package private) static <T> GeneralRange<T> |
upTo(java.util.Comparator<? super T> comparator,
T endpoint,
BoundType boundType)
Returns everything below the endpoint relative to the specified comparator, with the specified
endpoint behavior.
|
private final java.util.Comparator<? super T> comparator
private final boolean hasLowerBound
@CheckForNull private final T lowerEndpoint
private final BoundType lowerBoundType
private final boolean hasUpperBound
@CheckForNull private final T upperEndpoint
private final BoundType upperBoundType
@CheckForNull private transient GeneralRange<T> reverse
static <T extends java.lang.Comparable> GeneralRange<T> from(Range<T> range)
static <T> GeneralRange<T> all(java.util.Comparator<? super T> comparator)
static <T> GeneralRange<T> downTo(java.util.Comparator<? super T> comparator, T endpoint, BoundType boundType)
static <T> GeneralRange<T> upTo(java.util.Comparator<? super T> comparator, T endpoint, BoundType boundType)
static <T> GeneralRange<T> range(java.util.Comparator<? super T> comparator, T lower, BoundType lowerType, T upper, BoundType upperType)
java.util.Comparator<? super T> comparator()
boolean hasLowerBound()
boolean hasUpperBound()
boolean isEmpty()
boolean tooLow(T t)
boolean tooHigh(T t)
boolean contains(T t)
GeneralRange<T> intersect(GeneralRange<T> other)
public boolean equals(@CheckForNull java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
GeneralRange<T> reverse()
public java.lang.String toString()
toString
in class java.lang.Object
@CheckForNull T getLowerEndpoint()
BoundType getLowerBoundType()
@CheckForNull T getUpperEndpoint()
BoundType getUpperBoundType()