javax.measure.converter
Class UnitConverter
- java.lang.Object
-
- javax.measure.converter.UnitConverter
-
- All Implemented Interfaces:
- java.io.Serializable
- Direct Known Subclasses:
- AddConverter, LogConverter, MultiplyConverter, RationalConverter
public abstract class UnitConverter extends java.lang.Object implements java.io.SerializableThis 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
identityconverter. In other words, if the result of an operation is equivalent to the identity converter, then the uniqueIDENTITYinstance should be returned.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description static UnitConverterIDENTITYHolds the identity converter (unique).
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description UnitConverterconcatenate(UnitConverter converter)Concatenates this converter with another converter.abstract doubleconvert(double x)Converts a double value.booleanequals(java.lang.Object cvtr)Indicates whether this converter is considered the same as the converter specified.inthashCode()Returns a hash code value for this converter.abstract UnitConverterinverse()Returns the inverse of this converter.abstract booleanisLinear()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. Ifxis 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 ConversionExceptionConverts 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:y1 = c1.convert(x1); y2 = c2.convert(x2); then y1*y2 = c1.concatenate(c2).convert(x1*x2)- Returns:
trueif this converter is linear;falseotherwise.
-
equals
public boolean equals(java.lang.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.- Overrides:
equalsin classjava.lang.Object- Parameters:
cvtr- the converter with which to compare.- Returns:
trueif the specified object is a converter considered equals to this converter;falseotherwise.
-
hashCode
public int hashCode()
Returns a hash code value for this converter. Equals object have equal hash codes.- Overrides:
hashCodein classjava.lang.Object- 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
IDENTITYinstance 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.
-
-
DMelt 3.0 © DataMelt by jWork.ORG