Interface CurrencyConversion

All Superinterfaces:
CurrencySupplier, MonetaryOperator

public interface CurrencyConversion
extends MonetaryOperator, CurrencySupplier
This interface defines a CurrencyConversion that is converting a MonetaryAmount to another MonetaryAmount with a different target CurrencyUnit. Each instance of this class is bound to a specific ExchangeRateProvider (or a chain of rate providers), a term CurrencyUnit and (optionally) a target timestamp. Additionally the ConversionContext can have additional attributes set that are passed to the rate provider (chain).

This interface serves a an API for the clients, but also must be implemented and registered as SPI to the mechanisms required by the MonetaryConversionsSingletonSpi implementation.

By extending MonetaryOperator currency conversion can simply be applied on each MonetaryAmount calling the amount'0s with method:

     MonetaryAmount amount = ...;
     CurrencyConversion conversion = MonetaryConversions.getConversion("CHF");
     MonetaryAmount amountInCHF = amount.with(conversion);

The terminating CurrencyUnit of this conversion instance can be accessed from getCurrency(), inherited from CurrencySupplier.

Instances of this class are required to be thread-safe, but it is not a requirement that they are serializable. In a EE context they can be implemented using contextual beans.

Anatole Tresch, Werner Keil