/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.equity;
import com.opengamma.analytics.financial.equity.option.EquityIndexFutureOption;
import com.opengamma.analytics.financial.equity.option.EquityIndexFutureOptionBlackMethod;
import com.opengamma.analytics.financial.equity.option.EquityIndexOption;
import com.opengamma.analytics.financial.equity.option.EquityIndexOptionBlackMethod;
import com.opengamma.analytics.financial.equity.option.EquityOption;
import com.opengamma.analytics.financial.equity.option.EquityOptionBlackMethod;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter;
/**
* Calculates the present value of equity options using the Black method.
*/
public final class EquityOptionBlackPresentValueCalculator extends InstrumentDerivativeVisitorAdapter<StaticReplicationDataBundle, Double> {
/** A static instance */
private static final EquityOptionBlackPresentValueCalculator INSTANCE = new EquityOptionBlackPresentValueCalculator();
/**
* Gets the static instance
* @return The static instance
*/
public static EquityOptionBlackPresentValueCalculator getInstance() {
return INSTANCE;
}
private EquityOptionBlackPresentValueCalculator() {
}
@Override
public Double visitEquityIndexOption(final EquityIndexOption option, final StaticReplicationDataBundle data) {
return EquityIndexOptionBlackMethod.getInstance().presentValue(option, data);
}
@Override
public Double visitEquityOption(final EquityOption option, final StaticReplicationDataBundle data) {
return EquityOptionBlackMethod.getInstance().presentValue(option, data);
}
@Override
public Double visitEquityIndexFutureOption(final EquityIndexFutureOption option, final StaticReplicationDataBundle data) {
return EquityIndexFutureOptionBlackMethod.getInstance().presentValue(option, data);
}
}