Package javax.measure

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<double[], Q> { public doubleValue(Unit unit) { ... } // Returns median value. ... } [/code]

  • Method Summary

    Modifier and Type
    Method
    Description
    double
    Returns the value of this measurable stated in the specified unit as a double.
    long
    longValue(Unit<Q> unit)
    Returns the estimated integral value of this measurable stated in the specified unit as a long.

    Methods inherited from interface java.lang.Comparable

    compareTo
  • Method Details

    • doubleValue

      double doubleValue(Unit<Q> unit)
      Returns the value of this measurable stated in the specified unit as a double. If the measurable has too great a magnitude to be represented as a double, it will be converted to Double.NEGATIVE_INFINITY or Double.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 a long.

      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 a long number in the specified unit.