Class DefaultCurrencyConversionService

java.lang.Object
com.broadleafcommerce.pricing.service.DefaultCurrencyConversionService
All Implemented Interfaces:
CurrencyConversionService

public class DefaultCurrencyConversionService extends Object implements 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 Details

  • 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 interface CurrencyConversionService
      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 interface CurrencyConversionService
      Parameters:
      fromAmount -
      toCurrency -
      Returns:
    • refreshExchangeRateData

      @Scheduled(fixedDelayString="${exchange.refresh.rate.in.milliseconds:86400000}") public void refreshExchangeRateData()
    • refreshExchangeRateDataByCurrency

      protected void refreshExchangeRateDataByCurrency(Optional<String> baseCurrency)
    • populateBaseExchangeRates

      protected void populateBaseExchangeRates(ExchangeRateInfo exchangeRateInfo, Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate> rates)
    • populateOtherExchangeRatesFromBase

      protected void populateOtherExchangeRatesFromBase(javax.money.CurrencyUnit baseCurrency, Map<javax.money.CurrencyUnit,Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate>> ratesMap)
    • buildExchangeRatesFromMap

      protected Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate> buildExchangeRatesFromMap(javax.money.CurrencyUnit targetCurrency, Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate> baseExchangeRates)
    • 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

      protected RoundingMode getDefaultRoundingMode()
    • getDefaultScale

      protected int getDefaultScale()
    • getDefaultCurrency

      public javax.money.CurrencyUnit getDefaultCurrency()
    • getExchangeRateInfoProvider

      public ExchangeRateInfoProvider getExchangeRateInfoProvider()
    • getExchangeMap

      public Map<javax.money.CurrencyUnit,Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate>> getExchangeMap()
    • getBaseCurrencies

      public List<String> getBaseCurrencies()
    • isAllowMappingThroughBaseCurrency

      public boolean isAllowMappingThroughBaseCurrency()
    • setDefaultCurrency

      public void setDefaultCurrency(javax.money.CurrencyUnit defaultCurrency)
    • setExchangeRateInfoProvider

      public void setExchangeRateInfoProvider(ExchangeRateInfoProvider exchangeRateInfoProvider)
    • setExchangeMap

      public void setExchangeMap(Map<javax.money.CurrencyUnit,Map<javax.money.CurrencyUnit,javax.money.convert.ExchangeRate>> exchangeMap)
    • setBaseCurrencies

      public void setBaseCurrencies(List<String> baseCurrencies)
    • setAllowMappingThroughBaseCurrency

      public void setAllowMappingThroughBaseCurrency(boolean allowMappingThroughBaseCurrency)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object