Class DefaultCurrencyConversionService
java.lang.Object
com.broadleafcommerce.pricing.service.DefaultCurrencyConversionService
- All Implemented Interfaces:
CurrencyConversionService
Implementation of
CurrencyConversionService
that relies on an
implementation of ExchangeRateService and provides a mapping from and to for each item included
in the ExchangeRateService- Author:
- Brian Polster (bpolster)
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Map<javax.money.CurrencyUnit,
javax.money.convert.ExchangeRate> buildExchangeRatesFromMap
(javax.money.CurrencyUnit targetCurrency, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate> baseExchangeRates) boolean
canCovert
(javax.money.CurrencyUnit from, javax.money.CurrencyUnit to) Determine if conversion support is available based on a currencyCode from and to.protected boolean
javax.money.MonetaryAmount
convert
(javax.money.MonetaryAmount fromAmount, javax.money.CurrencyUnit toCurrency) Converts the passed in MonetaryAmount to the requested currency.protected javax.money.convert.ExchangeRate
convertExchangeRate
(javax.money.convert.ExchangeRate fromBaseToSrc, javax.money.convert.ExchangeRate fromBaseToTarget, javax.money.NumberValue newFactor) boolean
protected javax.money.convert.ConversionContext
javax.money.CurrencyUnit
protected RoundingMode
protected int
int
hashCode()
void
init()
protected javax.money.convert.ExchangeRate
invertExchangeRate
(javax.money.convert.ExchangeRate origRate, javax.money.NumberValue newFactor) boolean
protected void
populateBaseExchangeRates
(ExchangeRateInfo exchangeRateInfo, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate> rates) protected void
populateOtherExchangeRatesFromBase
(javax.money.CurrencyUnit baseCurrency, Map<javax.money.CurrencyUnit, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate>> ratesMap) void
protected void
refreshExchangeRateDataByCurrency
(Optional<String> baseCurrency) void
setAllowMappingThroughBaseCurrency
(boolean allowMappingThroughBaseCurrency) void
setBaseCurrencies
(List<String> baseCurrencies) void
setDefaultCurrency
(javax.money.CurrencyUnit defaultCurrency) void
setExchangeMap
(Map<javax.money.CurrencyUnit, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate>> exchangeMap) void
setExchangeRateInfoProvider
(ExchangeRateInfoProvider exchangeRateInfoProvider) toString()
-
Constructor Details
-
DefaultCurrencyConversionService
-
-
Method Details
-
init
@PostConstruct public void init() -
canCovert
public boolean canCovert(javax.money.CurrencyUnit from, javax.money.CurrencyUnit to) Determine if conversion support is available based on a currencyCode from and to. By default, if both currencies are found in the- Specified by:
canCovert
in interfaceCurrencyConversionService
- Parameters:
from
- The currency to convert from.to
- The currency to convert to.- Returns:
-
convert
public javax.money.MonetaryAmount convert(javax.money.MonetaryAmount fromAmount, javax.money.CurrencyUnit toCurrency) Converts the passed in MonetaryAmount to the requested currency. The value will be rounded to the scale appropriate for the currency and as such, this method should not be used in intermediary calculations. Throws NullPointerException if the currencies cannot be converted. Call canConvert(from,to) before calling to insure support for the convert operation.- Specified by:
convert
in interfaceCurrencyConversionService
- Parameters:
fromAmount
-toCurrency
-- Returns:
-
refreshExchangeRateData
@Scheduled(fixedDelayString="${exchange.refresh.rate.in.milliseconds:86400000}") public void refreshExchangeRateData() -
refreshExchangeRateDataByCurrency
-
populateBaseExchangeRates
protected void populateBaseExchangeRates(ExchangeRateInfo exchangeRateInfo, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate> rates) -
populateOtherExchangeRatesFromBase
-
buildExchangeRatesFromMap
-
invertExchangeRate
protected javax.money.convert.ExchangeRate invertExchangeRate(javax.money.convert.ExchangeRate origRate, javax.money.NumberValue newFactor) -
getDefaultContext
protected javax.money.convert.ConversionContext getDefaultContext() -
convertExchangeRate
protected javax.money.convert.ExchangeRate convertExchangeRate(javax.money.convert.ExchangeRate fromBaseToSrc, javax.money.convert.ExchangeRate fromBaseToTarget, javax.money.NumberValue newFactor) -
getDefaultRoundingMode
-
getDefaultScale
protected int getDefaultScale() -
getDefaultCurrency
public javax.money.CurrencyUnit getDefaultCurrency() -
getExchangeRateInfoProvider
-
getExchangeMap
-
getBaseCurrencies
-
isAllowMappingThroughBaseCurrency
public boolean isAllowMappingThroughBaseCurrency() -
setDefaultCurrency
public void setDefaultCurrency(javax.money.CurrencyUnit defaultCurrency) -
setExchangeRateInfoProvider
-
setExchangeMap
-
setBaseCurrencies
-
setAllowMappingThroughBaseCurrency
public void setAllowMappingThroughBaseCurrency(boolean allowMappingThroughBaseCurrency) -
equals
-
canEqual
-
hashCode
public int hashCode() -
toString
-