Package org.geotools.util
Class MeasurementRange<T extends Number & Comparable<? super T>>
- Object
-
- Range<T>
-
- NumberRange<T>
-
- MeasurementRange<T>
-
- Type Parameters:
T
- The type of range elements as a subclass ofNumber
.
- All Implemented Interfaces:
Serializable
public class MeasurementRange<T extends Number & Comparable<? super T>> extends NumberRange<T>
A range of numbers associated with a unit of measurement. Unit conversions are applied as needed by union and intersection operations.- Since:
- 2.4
- Author:
- Martin Desruisseaux
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MeasurementRange(Class<T> type, T minimum, boolean isMinIncluded, T maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range ofNumber
objects.MeasurementRange(Range<T> range, Unit<?> units)
Constructs a range with the same values than the specified range.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <N extends Number & Comparable<? super N>>
MeasurementRange<N>castTo(Class<N> type)
Casts this range to the specified type.MeasurementRange
convertTo(Unit<?> targetUnits)
Converts this range to the specified units.static MeasurementRange<Double>
create(double minimum, boolean isMinIncluded, double maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range ofdouble
values.static MeasurementRange<Double>
create(double minimum, double maximum, Unit<?> units)
Constructs an inclusive range ofdouble
values.static MeasurementRange<Float>
create(float minimum, boolean isMinIncluded, float maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range offloat
values.static MeasurementRange<Float>
create(float minimum, float maximum, Unit<?> units)
Constructs an inclusive range offloat
values.boolean
equals(Object object)
Compares this range with the specified object for equality.Unit<?>
getUnits()
Returns the units of measurement, ornull
if unknown.int
hashCode()
Returns a hash code value for this range.MeasurementRange
intersect(Range range)
Returns the intersection of this range with the given range.MeasurementRange[]
subtract(Range range)
Returns the range of values that are in this range but not in the given range.MeasurementRange
union(Range range)
Returns the union of this range with the given range.-
Methods inherited from class NumberRange
contains, contains, contains, create, create, create, create, create, create, create, create, create, create, create, create, getMaximum, getMaximum, getMinimum, getMinimum, intersects, wrap
-
Methods inherited from class Range
getElementClass, getMaxValue, getMinValue, isEmpty, isMaxIncluded, isMinIncluded, toString
-
-
-
-
Constructor Detail
-
MeasurementRange
public MeasurementRange(Class<T> type, T minimum, boolean isMinIncluded, T maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range ofNumber
objects.- Parameters:
type
- The element class, usually one ofByte
,Short
,Integer
,Long
,Float
orDouble
.minimum
- The minimum value.isMinIncluded
- Defines whether the minimum value is included in the Range.maximum
- The maximum value.isMaxIncluded
- Defines whether the maximum value is included in the Range.units
- The units of measurement, ornull
if unknown.
-
-
Method Detail
-
create
public static MeasurementRange<Float> create(float minimum, float maximum, Unit<?> units)
Constructs an inclusive range offloat
values.- Parameters:
minimum
- The minimum value, inclusive.maximum
- The maximum value, inclusive.units
- The units of measurement, ornull
if unknown.- Returns:
- The measurement range.
- Since:
- 2.5
-
create
public static MeasurementRange<Float> create(float minimum, boolean isMinIncluded, float maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range offloat
values.- Parameters:
minimum
- The minimum value.isMinIncluded
- Defines whether the minimum value is included in the Range.maximum
- The maximum value.isMaxIncluded
- Defines whether the maximum value is included in the Range.units
- The units of measurement, ornull
if unknown.- Returns:
- The measurement range.
- Since:
- 2.5
-
create
public static MeasurementRange<Double> create(double minimum, double maximum, Unit<?> units)
Constructs an inclusive range ofdouble
values.- Parameters:
minimum
- The minimum value, inclusive.maximum
- The maximum value, inclusive.units
- The units of measurement, ornull
if unknown.- Returns:
- The measurement range.
-
create
public static MeasurementRange<Double> create(double minimum, boolean isMinIncluded, double maximum, boolean isMaxIncluded, Unit<?> units)
Constructs a range ofdouble
values.- Parameters:
minimum
- The minimum value.isMinIncluded
- Defines whether the minimum value is included in the Range.maximum
- The maximum value.isMaxIncluded
- Defines whether the maximum value is included in the Range.units
- The units of measurement, ornull
if unknown.- Returns:
- The measurement range.
-
getUnits
public Unit<?> getUnits()
Returns the units of measurement, ornull
if unknown.- Returns:
- The units of measurement, or
null
.
-
convertTo
public MeasurementRange convertTo(Unit<?> targetUnits) throws IllegalArgumentException
Converts this range to the specified units. If this measurement range has null units, then the specified target units are simply assigned to the returned range with no other changes.- Parameters:
targetUnits
- the target units.- Returns:
- The converted range, or
this
if no conversion is needed. - Throws:
IllegalArgumentException
- if the target units are not compatible with this range units.
-
castTo
public <N extends Number & Comparable<? super N>> MeasurementRange<N> castTo(Class<N> type)
Casts this range to the specified type.- Overrides:
castTo
in classNumberRange<T extends Number & Comparable<? super T>>
- Type Parameters:
N
- The class to cast to.- Parameters:
type
- The class to cast to. Must be one ofByte
,Short
,Integer
,Long
,Float
orDouble
.- Returns:
- The casted range, or
this
if this range already uses the specified type.
-
union
public MeasurementRange union(Range range)
Returns the union of this range with the given range. Widening conversions will be applied as needed.- Overrides:
union
in classNumberRange<T extends Number & Comparable<? super T>>
- Parameters:
range
- The range to add to this range.- Returns:
- The union of this range with the given range.
- See Also:
Range.union(javax.media.jai.util.Range)
-
intersect
public MeasurementRange intersect(Range range)
Returns the intersection of this range with the given range. Widening conversions will be applied as needed.- Overrides:
intersect
in classNumberRange<T extends Number & Comparable<? super T>>
- Parameters:
range
- The range to intersect.- Returns:
- The intersection of this range with the provided range.
- See Also:
Range.intersect(javax.media.jai.util.Range)
-
subtract
public MeasurementRange[] subtract(Range range)
Returns the range of values that are in this range but not in the given range.- Overrides:
subtract
in classNumberRange<T extends Number & Comparable<? super T>>
- Parameters:
range
- The range to substract.- Returns:
- This range without the given range.
- See Also:
Range.subtract(javax.media.jai.util.Range)
-
equals
public boolean equals(Object object)
Compares this range with the specified object for equality.
-
-