/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.curve.exposure;
import java.util.Set;
import com.opengamma.OpenGammaRuntimeException;
import com.opengamma.core.position.Trade;
import com.opengamma.financial.analytics.curve.CurveConstructionConfiguration;
import com.opengamma.financial.security.FinancialSecurity;
/**
* Provides a set of names of {@link CurveConstructionConfiguration}s that are required to price
* a security for a given {@link ExposureFunction}.
*/
public interface InstrumentExposuresProvider {
/**
* Gets a list of relevant curve construction configurations for a given {@link ExposureFunction} and
* {@link FinancialSecurity}
* @param instrumentExposureConfigurationName The instrument exposure configuration name
* @param trade The trade to look up curve construction configurations against.
* @return A set of {@link CurveConstructionConfiguration} names
* @throws OpenGammaRuntimeException If no matching configuration(s) are found for the security
*/
Set<String> getCurveConstructionConfigurationsForConfig(String instrumentExposureConfigurationName,
Trade trade);
}