Package org.javamoney.moneta.convert.ecb
Class ECBHistoricRateProvider
java.lang.Object
org.javamoney.moneta.spi.AbstractRateProvider
org.javamoney.moneta.convert.ecb.ECBHistoricRateProvider
- All Implemented Interfaces:
javax.money.convert.ExchangeRateProvider,LoaderService.LoaderListener
public class ECBHistoricRateProvider extends AbstractRateProvider
This class implements an ExchangeRateProvider
that loads data from the European Central Bank data feed (XML). It loads the
current exchange rates, as well as historic rates for the past 1500 days. The
provider loads all data up to 1999 into its historic data cache.
The default date is yesterday or the most recent day of week. To uses exchange rate from a specific date, you can use this way:
CurrencyUnit termCurrency = ...;
LocalDate localDate = ...;
ConversionQuery conversionQuery = ConversionQueryBuilder.of().setTermCurrency(euro).set(localDate).build();
CurrencyConversion currencyConversion = provider.getCurrencyConversion(conversionQuery);
MonetaryAmount money = ...;
MonetaryAmount result = currencyConversion.apply(money);
- Author:
- Anatole Tresch, Werner Keil, otaviojava
-
Field Summary
Fields Modifier and Type Field Description static javax.money.CurrencyUnitBASE_CURRENCYBase currency of the loaded rates is always EUR.protected CountDownLatchloadLockprotected StringloadStateprotected Map<LocalDate,Map<String,javax.money.convert.ExchangeRate>>ratesHistoric exchange rates, rate timestamp as UTC long. -
Constructor Summary
Constructors Constructor Description ECBHistoricRateProvider() -
Method Summary
Modifier and Type Method Description StringgetDataId()javax.money.convert.ExchangeRategetExchangeRate(javax.money.convert.ConversionQuery conversionQuery)voidnewDataLoaded(String resourceId, InputStream is)StringtoString()Methods inherited from class org.javamoney.moneta.spi.AbstractRateProvider
divide, divide, getContext, getCurrencyConversion, getExchangeContext, getQueryDates, getScale, multiply
-
Field Details
-
BASE_CURRENCY
public static final javax.money.CurrencyUnit BASE_CURRENCYBase currency of the loaded rates is always EUR. -
rates
Historic exchange rates, rate timestamp as UTC long. -
loadState
-
loadLock
-
-
Constructor Details
-
Method Details
-
getDataId
-
newDataLoaded
- Specified by:
newDataLoadedin interfaceLoaderService.LoaderListener
-
getExchangeRate
public javax.money.convert.ExchangeRate getExchangeRate(javax.money.convert.ConversionQuery conversionQuery)- Specified by:
getExchangeRatein interfacejavax.money.convert.ExchangeRateProvider- Specified by:
getExchangeRatein classAbstractRateProvider
-
toString
-