
OSGi™ Service Platform Release 3 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object org.osgi.util.measurement.Measurement
Represents a value with an error, a unit and a timestamp.
A Measurement object is used for maintaining the tuple of value, error, unit and timestamp. The value and error are represented as doubles and the time is measured in milliseconds since midnight, January 1, 1970 UTC.
Mathematic methods are provided that correctly calculate
taking the error into account. A runtime error
will occur when two measurements are
used in an incompatible way. E.g., when a speed
(m/s) is added to a distance (m). The measurement
class will correctly track changes in unit during
multiplication and division, always coercing the
result to the most simple form.
See Unit
for more information on the
supported units.
Errors in the measurement class are absolute errors. Measurement errors should use the P95 rule. Actual values must fall in the range value +/ error 95% or more of the time.
A Measurement object is immutable in order to be easily shared.
Note: This class has a natural ordering that is
inconsistent with equals. See compareTo(java.lang.Object)
.
Constructor Summary  
Measurement(double value)
Create a new Measurement object with an error of 0.0, a unit of Unit.unity and a time of zero. 

Measurement(double value,
double error,
Unit unit)
Create a new Measurement object with a time of zero. 

Measurement(double value,
double error,
Unit unit,
long time)
Create a new Measurement object. 

Measurement(double value,
Unit unit)
Create a new Measurement object with an error of 0.0 and a time of zero. 
Method Summary  
Measurement 
add(double d)
Returns a new Measurement object that is the sum of this object added to the specified value. 
Measurement 
add(double d,
Unit u)
Returns a new Measurement object that is the sum of this object added to the specified value. 
Measurement 
add(Measurement m)
Returns a new Measurement object that is the sum of this object added to the specified object. 
int 
compareTo(java.lang.Object obj)
Compares this object with the specified object for order. 
Measurement 
div(double d)
Returns a new Measurement object that is the quotient of this object divided by the specified value. 
Measurement 
div(double d,
Unit u)
Returns a new Measurement object that is the quotient of this object divided by the specified value. 
Measurement 
div(Measurement m)
Returns a new Measurement object that is the quotient of this object divided by the specified object. 
boolean 
equals(java.lang.Object obj)
Returns whether the specified object is equal to this object. 
double 
getError()
Returns the error of this Measurement object. 
long 
getTime()
Returns the time at which this Measurement object was taken. 
Unit 
getUnit()
Returns the Unit object of this Measurement object. 
double 
getValue()
Returns the value of this Measurement object. 
int 
hashCode()
Returns a hash code value for this object. 
Measurement 
mul(double d)
Returns a new Measurement object that is the product of this object multiplied by the specified value. 
Measurement 
mul(double d,
Unit u)
Returns a new Measurement object that is the product of this object multiplied by the specified value. 
Measurement 
mul(Measurement m)
Returns a new Measurement object that is the product of this object multiplied by the specified object. 
Measurement 
sub(double d)
Returns a new Measurement object that is the subtraction of the specified value from this object. 
Measurement 
sub(double d,
Unit u)
Returns a new Measurement object that is the subtraction of the specified value from this object. 
Measurement 
sub(Measurement m)
Returns a new Measurement object that is the subtraction of the specified object from this object. 
java.lang.String 
toString()
Returns a String object representing this Measurement object. 
Methods inherited from class java.lang.Object 
clone, finalize, getClass, notify, notifyAll, wait, wait, wait 
Constructor Detail 
public Measurement(double value, double error, Unit unit, long time)
value
 The value of the Measurement.error
 The error of the Measurement.unit
 The Unit object in which the value is measured.
If this argument is null, then the unit will be set to Unit.unity
.time
 The time measured in milliseconds since midnight, January 1, 1970 UTC.public Measurement(double value, double error, Unit unit)
value
 The value of the Measurement.error
 The error of the Measurement.unit
 The Unit object in which the value is measured.
If this argument is null, then the unit will be set to Unit.unity
.public Measurement(double value, Unit unit)
value
 The value of the Measurement.unit
 The Unit in which the value is measured.
If this argument is null, then the unit will be set to Unit.unity
.public Measurement(double value)
Unit.unity
and a time of zero.
value
 The value of the Measurement.Method Detail 
public final double getValue()
public final double getError()
public final Unit getUnit()
Unit
public final long getTime()
public Measurement mul(Measurement m)
m
 The Measurement object that will be multiplied with
this object.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be multiplied.Unit
public Measurement mul(double d, Unit u)
d
 The value that will be multiplied with
this object.u
 The Unit of the specified value.
java.lang.ArithmeticException
 If the units
of this object and the specified value cannot be multiplied.Unit
public Measurement mul(double d)
d
 The value that will be multiplied with
this object.
public Measurement div(Measurement m)
m
 The Measurement object that will be the divisor of
this object.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be divided.Unit
public Measurement div(double d, Unit u)
d
 The value that will be the divisor of
this object.u
 The Unit object of the specified value.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be divided.Unit
public Measurement div(double d)
d
 The value that will be the divisor of
this object.
public Measurement add(Measurement m)
m
 The Measurement object that will be added with
this object.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be added.Unit
public Measurement add(double d, Unit u)
d
 The value that will be added with
this object.u
 The Unit object of the specified value.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified value cannot be added.Unit
public Measurement add(double d)
d
 The value that will be added with
this object.
public Measurement sub(Measurement m)
m
 The Measurement object that will be subtracted from
this object.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be subtracted.Unit
public Measurement sub(double d, Unit u)
d
 The value that will be subtracted from
this object.u
 The Unit object of the specified value.
java.lang.ArithmeticException
 If the Unit objects
of this object and the specified object cannot be subtracted.Unit
public Measurement sub(double d)
d
 The value that will be subtracted from
this object.
public java.lang.String toString()
public int compareTo(java.lang.Object obj)
Note: This class has a natural ordering that is inconsistent with equals. For this method, another Measurement object is considered equal if there is some x such that
getValue()getError() <= x <= getValue()+getError()for both Measurement objects being compared.
compareTo
in interface java.lang.Comparable
obj
 The object to be compared.
java.lang.ClassCastException
 If the specified object is not of type Measurement.
java.lang.ArithmeticException
 If the unit of the specified Measurement object is
not equal to the Unit object of this object.public int hashCode()
public boolean equals(java.lang.Object obj)
Note: This class has a natural ordering that is
inconsistent with equals. See compareTo(java.lang.Object)
.
obj
 The object to compare with this object.

OSGi™ Service Platform Release 3 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 