/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.model.fixedincome; import java.util.List; import java.util.Map; import java.util.Set; import com.opengamma.OpenGammaRuntimeException; import com.opengamma.analytics.financial.interestrate.InstrumentDerivative; import com.opengamma.analytics.financial.interestrate.ParRateCurveSensitivityCalculator; import com.opengamma.analytics.financial.interestrate.YieldCurveBundle; import com.opengamma.engine.ComputationTarget; import com.opengamma.engine.function.FunctionInputs; import com.opengamma.engine.value.ComputedValue; import com.opengamma.engine.value.ValueRequirementNames; import com.opengamma.engine.value.ValueSpecification; import com.opengamma.financial.analytics.model.YieldCurveNodeSensitivitiesHelper; import com.opengamma.util.tuple.DoublesPair; /** * Function that calculates the sensitivity to the pricing curves of the par rate. * @deprecated The parent function is deprecated */ @Deprecated public class InterestRateInstrumentParRateCurveSensitivityFunction extends InterestRateInstrumentCurveSpecificFunction { private static final ParRateCurveSensitivityCalculator CALCULATOR = ParRateCurveSensitivityCalculator.getInstance(); public InterestRateInstrumentParRateCurveSensitivityFunction() { super(ValueRequirementNames.PAR_RATE_CURVE_SENSITIVITY); } @Override public Set<ComputedValue> getResults(final InstrumentDerivative derivative, final String curveName, final YieldCurveBundle curves, final String curveCalculationConfigName, final String curveCalculationMethod, final FunctionInputs inputs, final ComputationTarget target, final ValueSpecification resultSpec) { final Map<String, List<DoublesPair>> sensitivities = derivative.accept(CALCULATOR, curves); if (!sensitivities.containsKey(curveName)) { throw new OpenGammaRuntimeException("Could not get par rate curve sensitivities for curve named " + curveName + "; should never happen"); } final List<DoublesPair> resultList = sensitivities.get(curveName); return YieldCurveNodeSensitivitiesHelper.getTimeLabelledSensitivitiesForCurve(resultList, resultSpec); } }