public class Range<T extends Comparable<? super T>> extends Object implements Serializable
null
values on one or both ends.
This class is a method compatible replacement for the Range
class
with the following differences:
Unbounded ranges (i.e. null
minimal or maximal values) are considered
exclusive rather than inclusive, since an iteration over the values will never
reach the infinite bound. This interpretation brings some simplification in implementation
and usage (e.g. a loop over the values should not attempt to process the null
value).
subtract(org.geotools.util.Range<?>)
returns an empty array if the whole range is subtracted.
NumberRange
do that). This
class is weakly parameterized in order to allow this flexibility. If any constructor or method is
invoked with an argument value of illegal class, then an IllegalArgumentException
is
thrown. The ClassCastException
is thrown only in case of bug in the Range
class
or subclasses implementation.Range
,
Serialized FormConstructor and Description |
---|
Range(Class<T> elementClass,
T value)
Creates a new range bounded by a single inclusive value.
|
Range(Class<T> elementClass,
T minValue,
boolean isMinIncluded,
T maxValue,
boolean isMaxIncluded)
Creates a new range bounded by the given values.
|
Range(Class<T> elementClass,
T minValue,
T maxValue)
Creates a new range bounded by the given inclusive values.
|
Modifier and Type | Method and Description |
---|---|
boolean |
contains(Comparable<?> value)
Returns
true if this range contains the given value. |
boolean |
contains(Range<?> range)
Returns
true if this range contains fully the given range. |
boolean |
equals(Object object)
Compares this range with the given object for equality.
|
Class<T> |
getElementClass()
Returns the class of elements in this range.
|
T |
getMaxValue()
Returns the maximal value, or
null if unbounded. |
T |
getMinValue()
Returns the minimal value, or
null if unbounded. |
int |
hashCode()
Returns a hash code value for this range.
|
Range<?> |
intersect(Range<?> range)
Returns the intersection between this range and the provided range.
|
boolean |
intersects(Range<?> range)
Returns
true if this range intersects the given range. |
boolean |
isEmpty()
Returns
true if this range is empty. |
boolean |
isMaxIncluded()
Indicates if
getMaxValue() is included in the range. |
boolean |
isMinIncluded()
Indicates if
getMinValue() is included in the range. |
Range<?>[] |
subtract(Range<?> range)
Returns the range of values that are in this range but not in the given range.
|
String |
toString()
Returns a string representation of this range.
|
Range<?> |
union(Range<?> range)
Returns the union of this range with the given range.
|
public Range(Class<T> elementClass, T value)
elementClass
- The class of the range elements.value
- The minimal and maximum value (inclusive), or null
for an unbounded
range.public Range(Class<T> elementClass, T minValue, T maxValue)
elementClass
- The class of the range elements.minValue
- The minimal value (inclusive), or null
if none.maxValue
- The maximal value (inclusive), or null
if none.public Range(Class<T> elementClass, T minValue, boolean isMinIncluded, T maxValue, boolean isMaxIncluded)
elementClass
- The class of the range elements.minValue
- The minimal value, or null
if none.isMinIncluded
- true
if the minimal value is inclusive, or false
if
exclusive.maxValue
- The maximal value, or null
if none.isMaxIncluded
- true
if the maximal value is inclusive, or false
if
exclusive.public Class<T> getElementClass()
Comparable
.Range.getElementClass()
public T getMinValue()
null
if unbounded. If isMinIncluded
is true
, then the value is considered included in the set. Otherwise it is considered excluded.Range.getMinValue()
public boolean isMinIncluded()
getMinValue()
is included in the range.true
if the minimal value is inclusive.Range.isMinIncluded
public T getMaxValue()
null
if unbounded. If isMaxIncluded
is true
, then the value is considered included in the set. Otherwise it is considered excluded.Range.getMaxValue()
public boolean isMaxIncluded()
getMaxValue()
is included in the range.true
if the maximal value is inclusive.Range.isMaxIncluded
public boolean isEmpty()
true
if this range is empty. A range is empty if the minimum value is smaller than the maximum value, or if they are
equals while at least one of them is exclusive.true
if this range is empty.Range.isEmpty()
public boolean contains(Comparable<?> value) throws IllegalArgumentException
true
if this range contains the given value. A range never contains the
null
value. This is consistent with the class javadoc stating that
null minimum or maximum values are
exclusive.value
- The value to check for inclusion in this range.true
if the given value is included in this range.IllegalArgumentException
- is the given value can not be converted to a valid type
through widening conversion.public boolean contains(Range<?> range) throws IllegalArgumentException
true
if this range contains fully the given range.range
- The range to check for inclusion in this range.true
if the given range is included in this range.IllegalArgumentException
- is the given range can not be converted to a valid type
through widening conversion.public boolean intersects(Range<?> range) throws IllegalArgumentException
true
if this range intersects the given range.range
- The range to check for intersection with this range.true
if the given range intersects this range.IllegalArgumentException
- is the given range can not be converted to a valid type
through widening conversion.Range.intersects(javax.media.jai.util.Range)
public Range<?> intersect(Range<?> range) throws IllegalArgumentException
range
- The range to intersect.IllegalArgumentException
- is the given range can not be converted to a valid type
through widening conversion.Range.intersect(javax.media.jai.util.Range)
public Range<?>[] subtract(Range<?> range) throws IllegalArgumentException
range
- The range to substract.IllegalArgumentException
- is the given range can not be converted to a valid type
through widening conversion.Range.subtract(javax.media.jai.util.Range)
public Range<?> union(Range<?> range) throws IllegalArgumentException
range
- The range to add to this range.IllegalArgumentException
- is the given range can not be converted to a valid type
through widening conversion.Range.union(javax.media.jai.util.Range)
public boolean equals(Object object)
public int hashCode()
Copyright © 1996–2019 Geotools. All rights reserved.