/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.interestrate; import java.util.List; import java.util.Map; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.Validate; import com.opengamma.analytics.financial.provider.description.interestrate.ParameterProviderInterface; import com.opengamma.analytics.math.matrix.DoubleMatrix1D; import com.opengamma.util.tuple.DoublesPair; /** * Computes the sensitivity to the node in the curves. * @deprecated Use the calculators that reference {@link ParameterProviderInterface} */ @Deprecated public class PresentValueNodeSensitivityCalculator extends NodeYieldSensitivityCalculator { private static final PresentValueNodeSensitivityCalculator DEFAULT_INSTANCE = new PresentValueNodeSensitivityCalculator(); public static PresentValueNodeSensitivityCalculator getDefaultInstance() { return DEFAULT_INSTANCE; } public static PresentValueNodeSensitivityCalculator using(final InstrumentDerivativeVisitorAdapter<YieldCurveBundle, Map<String, List<DoublesPair>>> presentValueSensitivityCalculator) { Validate.notNull(presentValueSensitivityCalculator, "present value sensitivity calculator"); return new PresentValueNodeSensitivityCalculator(presentValueSensitivityCalculator); } private final InstrumentDerivativeVisitorAdapter<YieldCurveBundle, Map<String, List<DoublesPair>>> _presentValueSensitivityCalculator; public PresentValueNodeSensitivityCalculator() { _presentValueSensitivityCalculator = PresentValueCurveSensitivityCalculator.getInstance(); } public PresentValueNodeSensitivityCalculator(final InstrumentDerivativeVisitorAdapter<YieldCurveBundle, Map<String, List<DoublesPair>>> presentValueSensitivityCalculator) { Validate.notNull(presentValueSensitivityCalculator, "present value sensitivity calculator"); _presentValueSensitivityCalculator = presentValueSensitivityCalculator; } @Override public DoubleMatrix1D calculateSensitivities(final InstrumentDerivative ird, final YieldCurveBundle fixedCurves, final YieldCurveBundle interpolatedCurves) { return calculateSensitivities(ird, _presentValueSensitivityCalculator, fixedCurves, interpolatedCurves); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + _presentValueSensitivityCalculator.hashCode(); return result; } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final PresentValueNodeSensitivityCalculator other = (PresentValueNodeSensitivityCalculator) obj; return ObjectUtils.equals(_presentValueSensitivityCalculator, other._presentValueSensitivityCalculator); } }