/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.forex.calculator;
import com.opengamma.analytics.financial.forex.method.PresentValueForexBlackVolatilityQuoteSensitivityDataBundle;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivative;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorSameMethodAdapter;
import com.opengamma.analytics.financial.interestrate.YieldCurveBundle;
import com.opengamma.analytics.financial.model.option.definition.SmileDeltaTermStructureDataBundle;
/**
* @deprecated Curve builders that use and populate {@link YieldCurveBundle}s are deprecated.
*/
@Deprecated
public final class PresentValueBlackVolatilityQuoteSensitivityForexCalculator extends
InstrumentDerivativeVisitorSameMethodAdapter<SmileDeltaTermStructureDataBundle, PresentValueForexBlackVolatilityQuoteSensitivityDataBundle> {
/**
* The unique instance of the calculator.
*/
private static final PresentValueBlackVolatilityQuoteSensitivityForexCalculator INSTANCE = new PresentValueBlackVolatilityQuoteSensitivityForexCalculator();
/**
* Gets the calculator instance.
* @return The calculator.
*/
public static PresentValueBlackVolatilityQuoteSensitivityForexCalculator getInstance() {
return INSTANCE;
}
/**
* Constructor.
*/
private PresentValueBlackVolatilityQuoteSensitivityForexCalculator() {
}
/**
* The calculator used to compute the vega with respect to the volatilities by strikes.
*/
private static final PresentValueBlackVolatilityNodeSensitivityBlackForexCalculator VEGA_CALCULATOR = PresentValueBlackVolatilityNodeSensitivityBlackForexCalculator.getInstance();
@Override
public PresentValueForexBlackVolatilityQuoteSensitivityDataBundle visit(final InstrumentDerivative derivative, final SmileDeltaTermStructureDataBundle data) {
return derivative.accept(VEGA_CALCULATOR, data).quoteSensitivity();
}
@Override
public PresentValueForexBlackVolatilityQuoteSensitivityDataBundle visit(final InstrumentDerivative derivative) {
throw new UnsupportedOperationException("Need curves and volatility data");
}
}