Package javax.measure.converter
Class UnitConverter
- java.lang.Object
-
- javax.measure.converter.UnitConverter
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
AddConverter
,LogConverter
,MultiplyConverter
,RationalConverter
public abstract class UnitConverter extends Object implements Serializable
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 uniqueIDENTITY
instance should be returned.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static UnitConverter
IDENTITY
Holds the identity converter (unique).
-
Constructor Summary
Constructors Modifier Constructor Description protected
UnitConverter()
Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description UnitConverter
concatenate(UnitConverter converter)
Concatenates this converter with another converter.abstract double
convert(double x)
Converts a double value.boolean
equals(Object cvtr)
Indicates whether this converter is considered the same as the converter specified.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.
-
-
-
Field Detail
-
IDENTITY
public static final UnitConverter IDENTITY
Holds the identity converter (unique). This converter does nothing (ONE.convert(x) == x
).
-
-
Method Detail
-
inverse
public abstract UnitConverter inverse()
Returns the inverse of this converter. Ifx
is a valid value, thenx == inverse().convert(convert(x))
to within the accuracy of computer arithmetic.- Returns:
- the inverse of this converter.
-
convert
public abstract double convert(double x) throws ConversionException
Converts a double value.- Parameters:
x
- the numeric value to convert.- Returns:
- the converted numeric value.
- Throws:
ConversionException
- if an error occurs during conversion.
-
isLinear
public abstract boolean isLinear()
Indicates if this converter is linear. A converter is linear ifconvert(u + v) == convert(u) + convert(v)
andconvert(r * u) == r * convert(u)
. For linear converters the following property always hold:[code] y1 = c1.convert(x1); y2 = c2.convert(x2); then y1*y2 = c1.concatenate(c2).convert(x1*x2)[/code]- Returns:
true
if this converter is linear;false
otherwise.
-
equals
public boolean equals(Object cvtr)
Indicates whether this converter is considered the same as the converter specified. To be considered equal this converter concatenated with the one specified must returns theIDENTITY
.
-
hashCode
public int hashCode()
Returns a hash code value for this converter. Equals object have equal hash codes.- Overrides:
hashCode
in classObject
- Returns:
- this converter hash code value.
- See Also:
equals(java.lang.Object)
-
concatenate
public UnitConverter concatenate(UnitConverter converter)
Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter, and then converting by this converter.Note: Implementations must ensure that the
IDENTITY
instance is returned if the resulting converter is an identity converter.- Parameters:
converter
- the other converter.- Returns:
- the concatenation of this converter with the other converter.
-
-