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 javax.money.convert.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
javax.money.spi.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.
| Modifier and Type | Method and Description |
|---|---|
| public ConversionContext | Returns: the targetConversionContext.Access the target |
| public ExchangeRate | Returns: theExchangeRate applied.the amount to be converted. sourceAmount)Get the |
| public ExchangeRateProvider | Returns: the underlyingjavax.money.convert.ExchangeRateProvider, never null.Access the underlying |
| getContext | back to summary |
|---|---|
| public ConversionContext getContext() Access the target
| |
| getExchangeRate | back to summary |
|---|---|
| public ExchangeRate getExchangeRate(MonetaryAmount sourceAmount) Get the
| |
| getExchangeRateProvider | back to summary |
|---|---|
| public ExchangeRateProvider getExchangeRateProvider() Access the underlying
| |