- 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.
- Author:
- Anatole Tresch, Werner Keil
-
Method Summary
Modifier and Type Method Description ConversionContext
getContext()
Access the targetConversionContext
of this conversion instance.ExchangeRate
getExchangeRate(MonetaryAmount sourceAmount)
Get theExchangeRate
applied for the givenMonetaryAmount
.ExchangeRateProvider
getExchangeRateProvider()
Access the underlyingExchangeRateProvider
.
-
Method Details
-
getContext
ConversionContext getContext()Access the targetConversionContext
of this conversion instance.- Returns:
- the target
ConversionContext
.
-
getExchangeRate
Get theExchangeRate
applied for the givenMonetaryAmount
.- Parameters:
sourceAmount
- the amount to be converted.- Returns:
- the
ExchangeRate
applied. - Throws:
MonetaryException
- if the amount can not be converted.
-
getExchangeRateProvider
ExchangeRateProvider getExchangeRateProvider()Access the underlyingExchangeRateProvider
.- Returns:
- the underlying
ExchangeRateProvider
, never null.
-