Class Measure<V,Q extends Quantity>
- java.lang.Object
-
- javax.measure.Measure<V,Q>
-
- All Implemented Interfaces:
Serializable
,Comparable<Measurable<Q>>
,Measurable<Q>
- Direct Known Subclasses:
DecimalMeasure
,VectorMeasure
public abstract class Measure<V,Q extends Quantity> extends Object implements Measurable<Q>, Serializable
This class represents the result of a measurement stated in a known unit.
There is no constraint upon the measurement value itself: scalars, vectors, or even data sets are valid values as long as an aggregate magnitude can be determined (see
Measurable
).- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Measure()
Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
compareTo(Measurable<Q> that)
Compares this measure to the specified measurable quantity.abstract double
doubleValue(Unit<Q> unit)
Returns the value of this measure stated in the specified unit as adouble
.boolean
equals(Object obj)
Compares this measure against the specified object for strict equality (same unit and amount).float
floatValue(Unit<Q> unit)
Returns the value of this measure stated in the specified unit as afloat
.abstract Unit<Q>
getUnit()
Returns the measurement unit of this measure.abstract V
getValue()
Returns the measurement value of this measure.int
hashCode()
Returns the hash code for this scalar.int
intValue(Unit<Q> unit)
Returns the estimated integral value of this measure stated in the specified unit as aint
.long
longValue(Unit<Q> unit)
Returns the estimated integral value of this measure stated in the specified unit as along
.abstract Measure<V,Q>
to(Unit<Q> unit)
Returns the measure equivalent to this measure but stated in the specified unit.String
toString()
Returns theString
representation of this measure The string produced for a given measure is always the same; it is not affected by locale.static <Q extends Quantity>
Measure<double[],Q>valueOf(double[] components, Unit<Q> unit)
Deprecated.VectorMeasure
should be used directly.static <Q extends Quantity>
Measure<Double,Q>valueOf(double doubleValue, Unit<Q> unit)
Returns the scalar measure for the specifieddouble
stated in the specified unit.static <Q extends Quantity>
Measure<Float,Q>valueOf(float floatValue, Unit<Q> unit)
Returns the scalar measure for the specifiedfloat
stated in the specified unit.static <Q extends Quantity>
Measure<Integer,Q>valueOf(int intValue, Unit<Q> unit)
Returns the scalar measure for the specifiedint
stated in the specified unit.static <Q extends Quantity>
Measure<Long,Q>valueOf(long longValue, Unit<Q> unit)
Returns the scalar measure for the specifieddouble
stated in the specified unit.static <Q extends Quantity>
Measure<BigDecimal,Q>valueOf(BigDecimal decimal, Unit<Q> unit)
Deprecated.DecimalMeasure
should be used directly.static <Q extends Quantity>
Measure<BigDecimal,Q>valueOf(BigDecimal decimal, Unit<Q> unit, MathContext mathContext)
Deprecated.
-
-
-
Method Detail
-
valueOf
public static <Q extends Quantity> Measure<Double,Q> valueOf(double doubleValue, Unit<Q> unit)
Returns the scalar measure for the specifieddouble
stated in the specified unit.- Parameters:
doubleValue
- the measurement value.unit
- the measurement unit.
-
valueOf
public static <Q extends Quantity> Measure<Long,Q> valueOf(long longValue, Unit<Q> unit)
Returns the scalar measure for the specifieddouble
stated in the specified unit.- Parameters:
longValue
- the measurement value.unit
- the measurement unit.
-
valueOf
public static <Q extends Quantity> Measure<Float,Q> valueOf(float floatValue, Unit<Q> unit)
Returns the scalar measure for the specifiedfloat
stated in the specified unit.- Parameters:
floatValue
- the measurement value.unit
- the measurement unit.
-
valueOf
public static <Q extends Quantity> Measure<Integer,Q> valueOf(int intValue, Unit<Q> unit)
Returns the scalar measure for the specifiedint
stated in the specified unit.- Parameters:
intValue
- the measurement value.unit
- the measurement unit.
-
getValue
public abstract V getValue()
Returns the measurement value of this measure.- Returns:
- the measurement value.
-
getUnit
public abstract Unit<Q> getUnit()
Returns the measurement unit of this measure.- Returns:
- the measurement unit.
-
to
public abstract Measure<V,Q> to(Unit<Q> unit)
Returns the measure equivalent to this measure but stated in the specified unit. This method may result in lost of precision (e.g. measure of integral value).- Parameters:
unit
- the new measurement unit.- Returns:
- the measure stated in the specified unit.
-
doubleValue
public abstract double doubleValue(Unit<Q> unit)
Returns the value of this measure stated in the specified unit as adouble
. If the measure has too great a magnitude to be represented as adouble
, it will be converted toDouble.NEGATIVE_INFINITY
orDouble.POSITIVE_INFINITY
as appropriate.- Specified by:
doubleValue
in interfaceMeasurable<V>
- Parameters:
unit
- the unit in which this measure is stated.- Returns:
- the numeric value after conversion to type
double
.
-
longValue
public long longValue(Unit<Q> unit) throws ArithmeticException
Returns the estimated integral value of this measure 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).- Specified by:
longValue
in interfaceMeasurable<V>
- 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.
-
floatValue
public float floatValue(Unit<Q> unit)
Returns the value of this measure stated in the specified unit as afloat
. If the measure has too great a magnitude to be represented as afloat
, it will be converted toFloat.NEGATIVE_INFINITY
orFloat.POSITIVE_INFINITY
as appropriate.- Parameters:
unit
- the unit in which the measure is stated.- Returns:
- the numeric value after conversion to type
float
.
-
intValue
public int intValue(Unit<Q> unit)
Returns the estimated integral value of this measure stated in the specified unit as aint
.Note: This method differs from the
Number.intValue()
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
int
. - Throws:
ArithmeticException
- if this quantity cannot be represented as aint
number in the specified unit.
-
equals
public boolean equals(Object obj)
Compares this measure against the specified object for strict equality (same unit and amount). To compare measures stated using different units thecompareTo(javax.measure.Measurable<Q>)
method should be used.
-
hashCode
public int hashCode()
Returns the hash code for this scalar.
-
toString
public String toString()
Returns theString
representation of this measure The string produced for a given measure is always the same; it is not affected by locale. This means that it can be used as a canonical string representation for exchanging data, or as a key for a Hashtable, etc. Locale-sensitive measure formatting and parsing is handled by theMeasureFormat
class and its subclasses.
-
compareTo
public int compareTo(Measurable<Q> that)
Compares this measure to the specified measurable quantity. This method compares theMeasurable.doubleValue(Unit)
of both this measure and the specified measurable stated in the same unit (this measure'sunit
).- Specified by:
compareTo
in interfaceComparable<V>
- Returns:
- a negative integer, zero, or a positive integer as this measure is less than, equal to, or greater than the specified measurable quantity.
-
valueOf
public static <Q extends Quantity> Measure<BigDecimal,Q> valueOf(BigDecimal decimal, Unit<Q> unit)
Deprecated.DecimalMeasure
should be used directly.
-
valueOf
public static <Q extends Quantity> Measure<BigDecimal,Q> valueOf(BigDecimal decimal, Unit<Q> unit, MathContext mathContext)
Deprecated.
-
valueOf
public static <Q extends Quantity> Measure<double[],Q> valueOf(double[] components, Unit<Q> unit)
Deprecated.VectorMeasure
should be used directly.
-
-