Package org.apache.solr.schema
Class OpenExchangeRatesOrgProvider
- java.lang.Object
- 
- org.apache.solr.schema.OpenExchangeRatesOrgProvider
 
- 
- All Implemented Interfaces:
- ExchangeRateProvider
 
 public class OpenExchangeRatesOrgProvider extends Object implements ExchangeRateProvider Exchange Rates Provider forCurrencyFieldandCurrencyFieldTypecapable of fetching & parsing the freely available exchange rates from openexchangerates.orgConfiguration Options: - ratesFileLocation- A file path or absolute URL specifying the JSON data to load (mandatory)
- refreshInterval- How frequently (in minutes) to reload the exchange rate data (default: 1440)
 Disclaimer: This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability or fitness for any purpose; use at your own risk. Other than that - have fun, and please share/watch/fork if you think data like this should be free! - See Also:
- openexchangerates.org JSON Data Format
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected static StringDEFAULT_REFRESH_INTERVALprotected static StringPARAM_RATES_FILE_LOCATIONprotected static StringPARAM_REFRESH_INTERVALprotected org.apache.solr.schema.OpenExchangeRatesOrgProvider.OpenExchangeRatesratesprotected StringratesFileLocationprotected intrefreshIntervalSecondsprotected org.apache.lucene.util.ResourceLoaderresourceLoader
 - 
Constructor SummaryConstructors Constructor Description OpenExchangeRatesOrgProvider()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)doublegetExchangeRate(String sourceCurrencyCode, String targetCurrencyCode)Returns the currently known exchange rate between two currencies.inthashCode()voidinform(org.apache.lucene.util.ResourceLoader loader)Passes a ResourceLoader, used to read config files from e.g.voidinit(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 Providerbooleanreload()Ask the currency provider to explicitly reload/refresh its configuration.StringtoString()
 
- 
- 
- 
Field Detail- 
PARAM_RATES_FILE_LOCATIONprotected static final String PARAM_RATES_FILE_LOCATION - See Also:
- Constant Field Values
 
 - 
PARAM_REFRESH_INTERVALprotected static final String PARAM_REFRESH_INTERVAL - See Also:
- Constant Field Values
 
 - 
DEFAULT_REFRESH_INTERVALprotected static final String DEFAULT_REFRESH_INTERVAL - See Also:
- Constant Field Values
 
 - 
ratesFileLocationprotected String ratesFileLocation 
 - 
refreshIntervalSecondsprotected int refreshIntervalSeconds 
 - 
resourceLoaderprotected org.apache.lucene.util.ResourceLoader resourceLoader 
 - 
ratesprotected org.apache.solr.schema.OpenExchangeRatesOrgProvider.OpenExchangeRates rates 
 
- 
 - 
Method Detail- 
getExchangeRatepublic double getExchangeRate(String sourceCurrencyCode, String targetCurrencyCode) Returns the currently known exchange rate between two currencies. The rates are fetched from the freely available OpenExchangeRates.org JSON, hourly updated. All rates are symmetrical with base currency being USD by default.- Specified by:
- getExchangeRatein 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
 
 - 
listAvailableCurrenciespublic Set<String> listAvailableCurrencies() Description copied from interface:ExchangeRateProviderList all configured currency codes which are valid as source/target for this Provider- Specified by:
- listAvailableCurrenciesin interface- ExchangeRateProvider
- Returns:
- a Set of ISO 4217 currency code strings
 
 - 
reloadpublic boolean reload() throws org.apache.solr.common.SolrExceptionDescription copied from interface:ExchangeRateProviderAsk the currency provider to explicitly reload/refresh its configuration. If this does not make sense for a particular provider, simply do nothing- Specified by:
- reloadin interface- ExchangeRateProvider
- Returns:
- true if reload of rates succeeded, else false
- Throws:
- org.apache.solr.common.SolrException- if there is a problem reloading
 
 - 
initpublic void init(Map<String,String> params) throws org.apache.solr.common.SolrException Description copied from interface:ExchangeRateProviderInitializes 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:
- initin interface- ExchangeRateProvider
- Parameters:
- params- a @Map of key/value config params to initialize the provider
- Throws:
- org.apache.solr.common.SolrException
 
 - 
informpublic void inform(org.apache.lucene.util.ResourceLoader loader) throws org.apache.solr.common.SolrExceptionDescription copied from interface:ExchangeRateProviderPasses 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:
- informin interface- ExchangeRateProvider
- Parameters:
- loader- a @ResourceLoader instance
- Throws:
- org.apache.solr.common.SolrException
 
 
- 
 
-