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 protectedMeasure()Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intcompareTo(Measurable<Q> that)Compares this measure to the specified measurable quantity.abstract doubledoubleValue(Unit<Q> unit)Returns the value of this measure stated in the specified unit as adouble.booleanequals(Object obj)Compares this measure against the specified object for strict equality (same unit and amount).floatfloatValue(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 VgetValue()Returns the measurement value of this measure.inthashCode()Returns the hash code for this scalar.intintValue(Unit<Q> unit)Returns the estimated integral value of this measure stated in the specified unit as aint.longlongValue(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.StringtoString()Returns theStringrepresentation 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.VectorMeasureshould be used directly.static <Q extends Quantity>
Measure<Double,Q>valueOf(double doubleValue, Unit<Q> unit)Returns the scalar measure for the specifieddoublestated in the specified unit.static <Q extends Quantity>
Measure<Float,Q>valueOf(float floatValue, Unit<Q> unit)Returns the scalar measure for the specifiedfloatstated in the specified unit.static <Q extends Quantity>
Measure<Integer,Q>valueOf(int intValue, Unit<Q> unit)Returns the scalar measure for the specifiedintstated in the specified unit.static <Q extends Quantity>
Measure<Long,Q>valueOf(long longValue, Unit<Q> unit)Returns the scalar measure for the specifieddoublestated in the specified unit.static <Q extends Quantity>
Measure<BigDecimal,Q>valueOf(BigDecimal decimal, Unit<Q> unit)Deprecated.DecimalMeasureshould 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 specifieddoublestated 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 specifieddoublestated 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 specifiedfloatstated 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 specifiedintstated 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_INFINITYorDouble.POSITIVE_INFINITYas appropriate.- Specified by:
doubleValuein 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:
longValuein 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 alongnumber 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_INFINITYorFloat.POSITIVE_INFINITYas 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 aintnumber 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 theStringrepresentation 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 theMeasureFormatclass 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:
compareToin 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.DecimalMeasureshould 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.VectorMeasureshould be used directly.
-
-