Package org.apache.solr.schema
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 Summary
Fields Modifier and Type Field Description protected static String
PARAM_CURRENCY_CONFIG
-
Constructor Summary
Constructors Constructor Description FileExchangeRateProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
double
getExchangeRate(String sourceCurrencyCode, String targetCurrencyCode)
Returns the currently known exchange rate between two currencies.int
hashCode()
void
inform(org.apache.lucene.util.ResourceLoader loader)
Passes a ResourceLoader, used to read config files from e.g.void
init(Map<String,String> params)
Initializes the provider by passing in a set of key/value configs as a map.Set<String>
listAvailableCurrencies()
List all configured currency codes which are valid as source/target for this Providerboolean
reload()
Ask the currency provider to explicitly reload/refresh its configuration.String
toString()
-
-
-
Field Detail
-
PARAM_CURRENCY_CONFIG
protected static final String PARAM_CURRENCY_CONFIG
- See Also:
- Constant Field Values
-
-
Method Detail
-
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 interfaceExchangeRateProvider
- 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
-
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 interfaceExchangeRateProvider
- 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 interfaceExchangeRateProvider
- 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 interfaceExchangeRateProvider
- 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 interfaceExchangeRateProvider
- Parameters:
loader
- a @ResourceLoader instance- Throws:
org.apache.solr.common.SolrException
-
-