javax.measure.converter
Class UnitConverter

java.lang.Object
  extended by javax.measure.converter.UnitConverter
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
AddConverter, ExpConverter, LinearConverter, LogConverter

public abstract class UnitConverter
extends java.lang.Object
implements java.io.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 unique IDENTITY instance should be returned.

Version:
1.0, April 15, 2009
Author:
Jean-Marie Dautelle
See Also:
Serialized Form

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  java.math.BigDecimal convert(java.math.BigDecimal value, java.math.MathContext ctx)
          Converts a BigDecimal value.
abstract  double convert(double value)
          Converts a double value.
abstract  boolean equals(java.lang.Object cvtr)
          Indicates whether this converter is considered to be the the same as the one specified.
abstract  int hashCode()
          Returns a hash code value for this converter.
abstract  UnitConverter inverse()
          Returns the inverse of this converter.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IDENTITY

public static final UnitConverter IDENTITY
Holds the identity converter (unique). This converter does nothing (ONE.convert(x) == x). This instance is unique. (

Constructor Detail

UnitConverter

protected UnitConverter()
Default constructor.

Method Detail

inverse

public abstract UnitConverter inverse()
Returns the inverse of this converter. If x is a valid value, then x == inverse().convert(convert(x)) to within the accuracy of computer arithmetic.

Returns:
the inverse of this converter.

convert

public abstract double convert(double value)
Converts a double value.

Parameters:
value - the numeric value to convert.
Returns:
the double value after conversion.

convert

public abstract java.math.BigDecimal convert(java.math.BigDecimal value,
                                             java.math.MathContext ctx)
                                      throws java.lang.ArithmeticException
Converts a BigDecimal value.

Parameters:
value - the numeric value to convert.
ctx - the math context being used for conversion.
Returns:
the decimal value after conversion.
Throws:
java.lang.ArithmeticException - if the result is inexact but the rounding mode is MathContext.UNNECESSARY or mathContext.precision == 0 and the quotient has a non-terminating decimal expansion.

equals

public abstract boolean equals(java.lang.Object cvtr)
Indicates whether this converter is considered to be the the same as the one specified.

Overrides:
equals in class java.lang.Object
Parameters:
cvtr - the converter with which to compare.
Returns:
true if the specified object is a converter considered equals to this converter;false otherwise.

hashCode

public abstract int hashCode()
Returns a hash code value for this converter. Equals object have equal hash codes.

Overrides:
hashCode in class java.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 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.


Copyright © 2009 JScience. All Rights Reserved.