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
Constructors -
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) booleancanCovert(javax.money.CurrencyUnit from, javax.money.CurrencyUnit to) Determine if conversion support is available based on a currencyCode from and to.protected booleanjavax.money.MonetaryAmountconvert(javax.money.MonetaryAmount fromAmount, javax.money.CurrencyUnit toCurrency) Converts the passed in MonetaryAmount to the requested currency.protected javax.money.convert.ExchangeRateconvertExchangeRate(javax.money.convert.ExchangeRate fromBaseToSrc, javax.money.convert.ExchangeRate fromBaseToTarget, javax.money.NumberValue newFactor) booleanprotected javax.money.convert.ConversionContextjavax.money.CurrencyUnitprotected RoundingModeprotected intinthashCode()voidinit()protected javax.money.convert.ExchangeRateinvertExchangeRate(javax.money.convert.ExchangeRate origRate, javax.money.NumberValue newFactor) booleanprotected voidpopulateBaseExchangeRates(ExchangeRateInfo exchangeRateInfo, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate> rates) protected voidpopulateOtherExchangeRatesFromBase(javax.money.CurrencyUnit baseCurrency, Map<javax.money.CurrencyUnit, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate>> ratesMap) voidprotected voidrefreshExchangeRateDataByCurrency(Optional<String> baseCurrency) voidsetAllowMappingThroughBaseCurrency(boolean allowMappingThroughBaseCurrency) voidsetBaseCurrencies(List<String> baseCurrencies) voidsetDefaultCurrency(javax.money.CurrencyUnit defaultCurrency) voidsetExchangeMap(Map<javax.money.CurrencyUnit, Map<javax.money.CurrencyUnit, javax.money.convert.ExchangeRate>> exchangeMap) voidsetExchangeRateInfoProvider(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:
canCovertin 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:
convertin 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
-