public interface CurrencyConversion extends MonetaryOperator, CurrencySupplier
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.
| Modifier and Type | Method and Description |
|---|---|
ConversionContext |
getContext()
Access the target
ConversionContext of this conversion instance. |
ExchangeRate |
getExchangeRate(MonetaryAmount sourceAmount)
Get the
ExchangeRate applied for the given MonetaryAmount
. |
ExchangeRateProvider |
getExchangeRateProvider()
Access the underlying
ExchangeRateProvider. |
applygetCurrencyConversionContext getContext()
ConversionContext of this conversion instance.ConversionContext.ExchangeRate getExchangeRate(MonetaryAmount sourceAmount)
ExchangeRate applied for the given MonetaryAmount
.sourceAmount - the amount to be converted.ExchangeRate applied.MonetaryException - if the amount can not be converted.ExchangeRateProvider getExchangeRateProvider()
ExchangeRateProvider.ExchangeRateProvider, never null.Copyright © 2012–2016 JSR 354 - Expert Group. All rights reserved.