/** * 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.YieldCurveData; import com.opengamma.sesame.Environment; import com.opengamma.sesame.marketdata.IsdaYieldCurveDataId; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.money.Currency; import com.opengamma.util.result.Result; /** * A provider function which, given a yield key, will return a valid {@link YieldCurveData} instance * via the market data environment. */ public class DefaultYieldCurveDataProviderFn implements YieldCurveDataProviderFn { private final String _yieldCurveDataName; /** * Creates an instance. * @param yieldCurveDataName the name of the curve data snapshot to source curve data from */ public DefaultYieldCurveDataProviderFn(String yieldCurveDataName) { _yieldCurveDataName = ArgumentChecker.notNull(yieldCurveDataName, "yieldCurveDataName"); } @Override public Result<YieldCurveData> retrieveYieldCurveData(Environment env, Currency currency) { IsdaYieldCurveDataId yieldCurveDataId = IsdaYieldCurveDataId.of(_yieldCurveDataName, currency); return env.getMarketDataBundle().get(yieldCurveDataId, YieldCurveData.class); } }