/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame;
import com.opengamma.financial.analytics.curve.CurveConstructionConfiguration;
import com.opengamma.sesame.cache.Cacheable;
import com.opengamma.sesame.function.Output;
import com.opengamma.sesame.marketdata.MulticurveMarketDataBuilder;
import com.opengamma.util.result.Result;
/**
* Function implementation that for a particular curve config, determines which
* curves need to go into a multicurve bundle and coordinates the building
* of them. This ensures that a particular curve only needs to get built once.
*
* @deprecated curves are built using {@link MulticurveMarketDataBuilder}.
*/
@Deprecated
public interface DiscountingMulticurveBundleResolverFn {
/**
* Generates a multicurve bundle for the supplied curve config.
*
* @param env the environment
* @param curveConfig the curve to build the multicurve bundle for
* @return result containing the multicurve data, if successful
*/
@Cacheable
@Output(OutputNames.DISCOUNTING_MULTICURVE_BUNDLE)
Result<MulticurveBundle> generateBundle(Environment env, CurveConstructionConfiguration curveConfig);
/**
* TODO what's this for? it's only used in one place. is ImpliedDepositCurveData a piece of market data?
* Extracts the implied deposit curve data for the supplied curve config.
*
* @param env the environment
* @param curveConfig the curve to extract the implied deposit curve data for
* @return result containing the implied deposit curve data, if successful
* @deprecated this doesn't belong here
*/
@Deprecated
@Cacheable
Result<ImpliedDepositCurveData> extractImpliedDepositCurveData(
Environment env, CurveConstructionConfiguration curveConfig);
}