|
JSR-275 - Measurements and Units Specification | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.measure.converter.UnitConverter
public abstract class UnitConverter
This class represents a converter of numeric values.
It is not required for sub-classes to be immutable (e.g. currency converter).
Sub-classes must ensure unicity of the identity
converter. In other words, if the result of an operation is equivalent
to the identity converter, then the unique IDENTITY
instance
should be returned.
Field Summary | |
---|---|
static UnitConverter |
IDENTITY
Holds the identity converter (unique). |
Constructor Summary | |
---|---|
protected |
UnitConverter()
Default constructor. |
Method Summary | |
---|---|
UnitConverter |
concatenate(UnitConverter converter)
Concatenates this converter with another converter. |
abstract double |
convert(double x)
Converts a double value. |
abstract boolean |
equals(java.lang.Object cvtr)
Indicates whether this converter is considered the same as the converter specified (they must be of same types). |
abstract int |
hashCode()
Returns a hash code value for this converter. |
abstract UnitConverter |
inverse()
Returns the inverse of this converter. |
abstract boolean |
isLinear()
Indicates if this converter is linear. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final UnitConverter IDENTITY
IDENTITY.convert(x) == x
).
Constructor Detail |
---|
protected UnitConverter()
Method Detail |
---|
public abstract UnitConverter inverse()
x
is a valid
value, then x == inverse().convert(convert(x))
to within
the accuracy of computer arithmetic.
public abstract double convert(double x) throws ConversionException
x
- the numeric value to convert.
ConversionException
- if an error occurs during conversion.public abstract boolean isLinear()
convert(u + v) == convert(u) + convert(v)
and
convert(r * u) == r * convert(u)
.
For linear converters the following property always hold:
y1 = c1.convert(x1);
y2 = c2.convert(x2);
then y1*y2 = c1.concatenate(c2).convert(x1*x2)
true
if this converter is linear;
false
otherwise.public abstract boolean equals(java.lang.Object cvtr)
equals
in class java.lang.Object
cvtr
- the converter with which to compare.
true
if the specified object is a converter
considered equals to this converter;false
otherwise.public abstract int hashCode()
hashCode
in class java.lang.Object
equals(java.lang.Object)
public UnitConverter concatenate(UnitConverter converter)
Note: Implementations must ensure that the IDENTITY
instance
is returned if the resulting converter is an identity
converter.
converter
- the other converter.
|
JSR-275 - Measurements and Units Specification | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |