/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame;
import java.util.Map;
import com.opengamma.financial.analytics.curve.CurveConstructionConfiguration;
import com.opengamma.sesame.cache.CacheLifetime;
import com.opengamma.sesame.cache.Cacheable;
import com.opengamma.sesame.marketdata.MulticurveMarketDataBuilder;
import com.opengamma.util.result.Result;
/**
* Function capable of providing a discounting multi-curve bundle.
*
* @deprecated curves are built using {@link MulticurveMarketDataBuilder}.
*/
@Deprecated
public interface DiscountingMulticurveBundleFn {
/**
* Generates a multicurve bundle for the supplied curve config.
*
* @param env the environment
* @param curveConfig the curve to build the multicurve bundle for
* @param requiredCurves map of curves that are required to build the
* bundle (i.e. exogenous curves). If the map does not contain all
* the curves required, a failure will be returned
* @return result containing the multicurve data, if successful
*/
@Cacheable(CacheLifetime.NEXT_FUTURE_ROLL)
Result<MulticurveBundle> generateBundle(
Environment env,
CurveConstructionConfiguration curveConfig,
Map<CurveConstructionConfiguration, Result<MulticurveBundle>> requiredCurves);
/**
* 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
* @param builtCurves map of curves that are required to build the
* supplied curve (i.e. exogenous curves). If the map does not contain all
* the curves required, a failure will be returned
* @return result containing the implied deposit curve data, if successful
*
* TODO this should be moved to its own function
*/
@Cacheable(CacheLifetime.FOREVER)
Result<ImpliedDepositCurveData> extractImpliedDepositCurveData(
Environment env,
CurveConstructionConfiguration curveConfig,
Map<CurveConstructionConfiguration, Result<MulticurveBundle>> builtCurves);
}