Interface ScenarioFxRateProvider
-
public interface ScenarioFxRateProvider
A provider of FX rates for scenarios.This provides the ability to obtain a set of FX rates, one for each scenario. The interface does not mandate when the rate applies, however it typically represents the current rate.
This is the multi-scenario version of
FxRateProvider
.Implementations do not have to be immutable, but calls to the methods must be thread-safe.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default double
convert(double amount, Currency fromCurrency, Currency toCurrency, int scenarioIndex)
Converts an amount in a currency to an amount in a different currency using a rate from this provider.default double
fxRate(Currency baseCurrency, Currency counterCurrency, int scenarioIndex)
Gets the FX rate for the specified currency pair and scenario index.FxRateProvider
fxRateProvider(int scenarioIndex)
Gets the FX rate provider for the specified scenario index.int
getScenarioCount()
Gets the number of scenarios.static ScenarioFxRateProvider
of(ScenarioMarketData marketData)
Returns a scenario FX rate provider which takes its data from the provided market data.static ScenarioFxRateProvider
of(ScenarioMarketData marketData, ObservableSource source)
Returns a scenario FX rate provider which takes its data from the provided market data.
-
-
-
Method Detail
-
of
static ScenarioFxRateProvider of(ScenarioMarketData marketData)
Returns a scenario FX rate provider which takes its data from the provided market data.- Parameters:
marketData
- market data containing FX rates- Returns:
- a scenario FX rate provider which takes its data from the provided market data
-
of
static ScenarioFxRateProvider of(ScenarioMarketData marketData, ObservableSource source)
Returns a scenario FX rate provider which takes its data from the provided market data.- Parameters:
marketData
- market data containing FX ratessource
- the source of the FX rates- Returns:
- a scenario FX rate provider which takes its data from the provided market data
-
getScenarioCount
int getScenarioCount()
Gets the number of scenarios.- Returns:
- the number of scenarios
-
convert
default double convert(double amount, Currency fromCurrency, Currency toCurrency, int scenarioIndex)
Converts an amount in a currency to an amount in a different currency using a rate from this provider.- Parameters:
amount
- an amount infromCurrency
fromCurrency
- the currency of the amounttoCurrency
- the currency into which the amount should be convertedscenarioIndex
- the scenario index- Returns:
- the amount converted into
toCurrency
- Throws:
IllegalArgumentException
- if either of the currencies aren't included in the currency pair of this rate
-
fxRate
default double fxRate(Currency baseCurrency, Currency counterCurrency, int scenarioIndex)
Gets the FX rate for the specified currency pair and scenario index.The rate returned is the rate from the base currency to the counter currency as defined by this formula:
(1 * baseCurrency = fxRate * counterCurrency)
. This will return 1 if the two input currencies are the same.- Parameters:
baseCurrency
- the base currency, to convert fromcounterCurrency
- the counter currency, to convert toscenarioIndex
- the scenario index- Returns:
- the FX rate for the currency pair
- Throws:
RuntimeException
- if no FX rate could be found
-
fxRateProvider
FxRateProvider fxRateProvider(int scenarioIndex)
Gets the FX rate provider for the specified scenario index.- Parameters:
scenarioIndex
- the scenario index- Returns:
- the FX rate for the currency pair
- Throws:
RuntimeException
- if no FX rate could be found
-
-