Class FileExchangeRateProvider

java.lang.Object
org.apache.solr.schema.FileExchangeRateProvider
All Implemented Interfaces:
ExchangeRateProvider

public class FileExchangeRateProvider extends Object implements ExchangeRateProvider
Configuration for currency. Provides currency exchange rates.
  • Field Details

  • Constructor Details

    • FileExchangeRateProvider

      public FileExchangeRateProvider()
  • Method Details

    • getExchangeRate

      public double getExchangeRate(String sourceCurrencyCode, String targetCurrencyCode)
      Returns the currently known exchange rate between two currencies. If a direct rate has been loaded, it is used. Otherwise, if a rate is known to convert the target currency to the source, the inverse exchange rate is computed.
      Specified by:
      getExchangeRate in interface ExchangeRateProvider
      Parameters:
      sourceCurrencyCode - The source currency being converted from.
      targetCurrencyCode - The target currency being converted to.
      Returns:
      The exchange rate.
      Throws:
      org.apache.solr.common.SolrException - if the requested currency pair cannot be found
    • equals

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

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

      public String toString()
      Overrides:
      toString in class Object
    • listAvailableCurrencies

      public Set<String> listAvailableCurrencies()
      Description copied from interface: ExchangeRateProvider
      List all configured currency codes which are valid as source/target for this Provider
      Specified by:
      listAvailableCurrencies in interface ExchangeRateProvider
      Returns:
      a Set of ISO 4217 currency code strings
    • reload

      public boolean reload() throws org.apache.solr.common.SolrException
      Description copied from interface: ExchangeRateProvider
      Ask the currency provider to explicitly reload/refresh its configuration. If this does not make sense for a particular provider, simply do nothing
      Specified by:
      reload in interface ExchangeRateProvider
      Returns:
      true if reload of rates succeeded, else false
      Throws:
      org.apache.solr.common.SolrException - if there is a problem reloading
    • init

      public void init(Map<String,String> params) throws org.apache.solr.common.SolrException
      Description copied from interface: ExchangeRateProvider
      Initializes the provider by passing in a set of key/value configs as a map. Note that the map also contains other fieldType parameters, so make sure to avoid name clashes.

      Important: Custom config params must be removed from the map before returning

      Specified by:
      init in interface ExchangeRateProvider
      Parameters:
      params - a @Map of key/value config params to initialize the provider
      Throws:
      org.apache.solr.common.SolrException
    • inform

      public void inform(org.apache.lucene.util.ResourceLoader loader) throws org.apache.solr.common.SolrException
      Description copied from interface: ExchangeRateProvider
      Passes a ResourceLoader, used to read config files from e.g. ZooKeeper. Implementations not needing resource loader can implement this as NOOP.

      Typically called after init

      Specified by:
      inform in interface ExchangeRateProvider
      Parameters:
      loader - a @ResourceLoader instance
      Throws:
      org.apache.solr.common.SolrException