/**
* 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.EquityIndexOption;
import com.opengamma.analytics.financial.equity.variance.EquityVarianceSwap;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter;
import com.opengamma.analytics.financial.varianceswap.VarianceSwap;
import com.opengamma.util.ArgumentChecker;
/**
* Gets the time (in years) to settlement of an instrument
*/
public final class SettlementTimeCalculator extends InstrumentDerivativeVisitorAdapter<Object, Double> {
/** The static instance */
private static final SettlementTimeCalculator INSTANCE = new SettlementTimeCalculator();
/**
* Gets the static instance
* @return A static instance
*/
public static SettlementTimeCalculator getInstance() {
return INSTANCE;
}
private SettlementTimeCalculator() {
}
@Override
public Double visitEquityIndexOption(final EquityIndexOption option) {
ArgumentChecker.notNull(option, "option");
return option.getTimeToSettlement();
}
@Override
public Double visitEquityIndexOption(final EquityIndexOption option, final Object data) {
ArgumentChecker.notNull(option, "option");
return option.getTimeToSettlement();
}
@Override
public Double visitEquityVarianceSwap(final EquityVarianceSwap varianceSwap) {
ArgumentChecker.notNull(varianceSwap, "variance swap");
return varianceSwap.getTimeToSettlement();
}
@Override
public Double visitEquityVarianceSwap(final EquityVarianceSwap varianceSwap, final Object data) {
ArgumentChecker.notNull(varianceSwap, "variance swap");
return varianceSwap.getTimeToSettlement();
}
@Override
public Double visitVarianceSwap(final VarianceSwap varianceSwap) {
ArgumentChecker.notNull(varianceSwap, "variance swap");
return varianceSwap.getTimeToSettlement();
}
@Override
public Double visitVarianceSwap(final VarianceSwap varianceSwap, final Object data) {
ArgumentChecker.notNull(varianceSwap, "variance swap");
return varianceSwap.getTimeToSettlement();
}
}