Interface Measurable<Q extends Quantity>
-
- All Superinterfaces:
Comparable<Measurable<Q>>
- All Known Implementing Classes:
Altitude
,Amount
,DecimalMeasure
,Height
,Measure
,Time
,VectorMeasure
public interface Measurable<Q extends Quantity> extends Comparable<Measurable<Q>>
This interface represents the measurable, countable, or comparable property or aspect of a thing.
Implementing instances are typically the result of a measurement:[code] Measurable
weight = Measure.valueOf(180.0, POUND); [/code] They can also be created from custom classes:[code] class Delay implements Measurable { private long nanoSeconds; // Implicit internal unit. public double doubleValue(Unit unit) { ... } public long longValue(Unit unit) { ... } } Thread.wait(new Delay(24, HOUR)); // Assuming Thread.wait(Measurable ) method. [/code] Although measurable instances are for the most part scalar quantities; more complex implementations (e.g. vectors, data set) are allowed as long as an aggregate magnitude can be determined. For example:[code] class Velocity3D implements Measurable
{ private double x, y, z; // Meter per seconds. public double doubleValue(Unit unit) { ... } // Returns vector norm. ... } class Sensors extends Measure
{ public doubleValue(Unit unit) { ... } // Returns median value. ... } [/code]
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description double
doubleValue(Unit<Q> unit)
Returns the value of this measurable stated in the specified unit as adouble
.long
longValue(Unit<Q> unit)
Returns the estimated integral value of this measurable stated in the specified unit as along
.-
Methods inherited from interface java.lang.Comparable
compareTo
-
-
-
-
Method Detail
-
doubleValue
double doubleValue(Unit<Q> unit)
Returns the value of this measurable stated in the specified unit as adouble
. If the measurable has too great a magnitude to be represented as adouble
, it will be converted toDouble.NEGATIVE_INFINITY
orDouble.POSITIVE_INFINITY
as appropriate.- Parameters:
unit
- the unit in which this measurable value is stated.- Returns:
- the numeric value after conversion to type
double
.
-
longValue
long longValue(Unit<Q> unit) throws ArithmeticException
Returns the estimated integral value of this measurable stated in the specified unit as along
.Note: This method differs from the
Number.longValue()
in the sense that the closest integer value is returned and an ArithmeticException is raised instead of a bit truncation in case of overflow (safety critical).- Parameters:
unit
- the unit in which the measurable value is stated.- Returns:
- the numeric value after conversion to type
long
. - Throws:
ArithmeticException
- if this quantity cannot be represented as along
number in the specified unit.
-
-