/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.credit.snapshot; import java.util.Map; import com.opengamma.core.link.SnapshotLink; import com.opengamma.financial.analytics.isda.credit.CreditCurveData; import com.opengamma.financial.analytics.isda.credit.CreditCurveDataKey; import com.opengamma.financial.analytics.isda.credit.CreditCurveDataSnapshot; import com.opengamma.sesame.Environment; import com.opengamma.sesame.credit.curve.CreditCurveDataProviderFn; import com.opengamma.sesame.credit.curve.DefaultCreditCurveDataProviderFn; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.result.FailureStatus; import com.opengamma.util.result.Result; /** * @deprecated Use {@link DefaultCreditCurveDataProviderFn} * A provider function which, given a credit key, will return a valid {@link CreditCurveData} instance * via a snapshot link. */ @Deprecated public class SnapshotCreditCurveDataProviderFn implements CreditCurveDataProviderFn { private final SnapshotLink<CreditCurveDataSnapshot> _snapshotLink; /** * Creates an instance. * @param snapshotLink a link to the snapshot to source curve data from */ public SnapshotCreditCurveDataProviderFn(SnapshotLink<CreditCurveDataSnapshot> snapshotLink) { _snapshotLink = ArgumentChecker.notNull(snapshotLink, "snapshotLink"); } @Override public Result<CreditCurveData> retrieveCreditCurveData(Environment env, CreditCurveDataKey key) { CreditCurveDataSnapshot snapshotResult = _snapshotLink.resolve(); Map<CreditCurveDataKey, CreditCurveData> creditCurveDataMap = snapshotResult.getCreditCurves(); if (creditCurveDataMap.containsKey(key)) { return Result.success(creditCurveDataMap.get(key)); } else { return Result.failure(FailureStatus.MISSING_DATA, "Failed to load curve data for credit curve key {} in snapshot {}", key, snapshotResult.getName()); } } }