public final class RationalConverter extends UnitConverter
This class represents a converter multiplying numeric values by an
exact scaling factor (represented as the quotient of two
long numbers).
Instances of this class are immutable.
IDENTITY| Constructor and Description |
|---|
RationalConverter(long dividend,
long divisor)
Creates a rational converter with the specified dividend and
divisor.
|
| Modifier and Type | Method and Description |
|---|---|
UnitConverter |
concatenate(UnitConverter converter)
Concatenates this converter with another converter.
|
double |
convert(double amount)
Converts a double value.
|
long |
getDividend()
Returns the dividend for this rational converter.
|
long |
getDivisor()
Returns the positive divisor for this rational converter.
|
UnitConverter |
inverse()
Returns the inverse of this converter.
|
boolean |
isLinear()
Indicates if this converter is linear.
|
equals, hashCodepublic RationalConverter(long dividend, long divisor)
dividend - the dividend.divisor - the positive divisor.java.lang.IllegalArgumentException - if divisor < 0java.lang.IllegalArgumentException - if dividend == divisorpublic long getDividend()
public long getDivisor()
public UnitConverter inverse()
UnitConverterx is a valid
value, then x == inverse().convert(convert(x)) to within
the accuracy of computer arithmetic.inverse in class UnitConverterpublic double convert(double amount)
UnitConverterconvert in class UnitConverteramount - the numeric value to convert.public boolean isLinear()
UnitConverterconvert(u + v) == convert(u) + convert(v) and
convert(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]isLinear in class UnitConvertertrue if this converter is linear;
false otherwise.public UnitConverter concatenate(UnitConverter converter)
UnitConverterNote: Implementations must ensure that the UnitConverter.IDENTITY instance
is returned if the resulting converter is an identity
converter.
concatenate in class UnitConverterconverter - the other converter.