/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.credit.curve;
import com.opengamma.financial.analytics.isda.credit.CreditCurveData;
import com.opengamma.financial.analytics.isda.credit.CreditCurveDataKey;
import com.opengamma.sesame.Environment;
import com.opengamma.sesame.marketdata.CreditCurveDataId;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.result.Result;
/**
* A provider function which, given a credit key, will return a valid {@link CreditCurveData} instance
* via the market data environment.
*/
public class DefaultCreditCurveDataProviderFn implements CreditCurveDataProviderFn {
private final String _creditCurveDataName;
/**
* Creates an instance.
* @param creditCurveDataName the name of the curve data snapshot to source curve data from
*/
public DefaultCreditCurveDataProviderFn(String creditCurveDataName) {
_creditCurveDataName = ArgumentChecker.notNull(creditCurveDataName, "creditCurveDataName");
}
@Override
public Result<CreditCurveData> retrieveCreditCurveData(Environment env, CreditCurveDataKey key) {
CreditCurveDataId curveDataId = CreditCurveDataId.of(_creditCurveDataName, key);
return env.getMarketDataBundle().get(curveDataId, CreditCurveData.class);
}
}