/**
* Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.data.scenario;
import java.io.Serializable;
import com.opengamma.strata.basics.currency.FxRateProvider;
import com.opengamma.strata.data.MarketDataFxRateProvider;
import com.opengamma.strata.data.ObservableSource;
/**
* A provider of FX rates which takes its data from one scenario in a set of data for multiple scenarios.
*/
class DefaultScenarioFxRateProvider
implements ScenarioFxRateProvider, Serializable {
/** Serialization version. */
private static final long serialVersionUID = 1L;
/**
* The market data for a set of scenarios.
*/
private final ScenarioMarketData marketData;
/**
* The source of the FX rates.
*/
private final ObservableSource source;
// creates an instance
DefaultScenarioFxRateProvider(ScenarioMarketData marketData, ObservableSource source) {
this.marketData = marketData;
this.source = source;
}
@Override
public int getScenarioCount() {
return marketData.getScenarioCount();
}
@Override
public FxRateProvider fxRateProvider(int scenarioIndex) {
return MarketDataFxRateProvider.of(marketData.scenario(scenarioIndex), source);
}
}