/** * 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.analytics.financial.forex.method.FXMatrix; import com.opengamma.core.position.Trade; import com.opengamma.financial.security.FinancialSecurity; import com.opengamma.util.result.Result; /** * Creates a multicurve bundle for curves by issuer. */ public interface IssuerProviderFn { /** * Returns the multicurve bundle for curves by issuer for a specified environment, security and FX matrix. This has been * deprecated because ExposureFunctions can be selected by trade details such as counterparty or trade attributes. * * * @param env the environment to return the multicurve bundle for. * @param security the security to return the multicurve bundle for. * @param fxMatrix the FX matrix to include inside the multicurve bundle. * @return the multicurve bundle for curves by issuer. * * @deprecated use {@link #getMulticurveBundle(Environment, Trade)} with the original trade. */ @Deprecated Result<IssuerProviderBundle> createBundle(Environment env, FinancialSecurity security, FXMatrix fxMatrix); /** * Returns the multicurve bundle for curves by issuer for a specified environment, trade and FX matrix. * * @param env the environment to return the multicurve bundle for. * @param trade the trade to return the multicurve bundle for. * @param fxMatrix the FX matrix to include inside the multicurve bundle. * @return the multicurve bundle for curves by issuer. * @deprecated use {@link #getMulticurveBundle(Environment, Trade)}. The FX matrix argument isn't used in * any implementation if this method and all the callers create an empty matrix just to satisfy the * method signature. Also this method can't be sensibly implemented for the case where pre-calibrated * curves are provided by the caller. */ @Deprecated Result<IssuerProviderBundle> createBundle(Environment env, Trade trade, FXMatrix fxMatrix); /** * Returns the multicurve bundle for curves by issuer for a trade. * * @param env the environment to return the multicurve bundle for. * @param trade the trade to return the multicurve bundle for. * @return the multicurve bundle for curves by issuer. */ Result<IssuerProviderBundle> getMulticurveBundle(Environment env, Trade trade); }