/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.future;
import com.opengamma.analytics.financial.commodity.derivative.AgricultureFuture;
import com.opengamma.analytics.financial.commodity.derivative.EnergyFuture;
import com.opengamma.analytics.financial.commodity.derivative.MetalFuture;
import com.opengamma.analytics.financial.equity.future.derivative.EquityFuture;
import com.opengamma.analytics.financial.equity.future.derivative.EquityIndexDividendFuture;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter;
/**
*
*/
public final class SettlementTimeCalculator extends InstrumentDerivativeVisitorAdapter<Object, Double> {
private static final SettlementTimeCalculator INSTANCE = new SettlementTimeCalculator();
public static SettlementTimeCalculator getInstance() {
return INSTANCE;
}
private SettlementTimeCalculator() {
}
@Override
public Double visitAgricultureFuture(final AgricultureFuture future) {
return future.getExpiry();
}
@Override
public Double visitEnergyFuture(final EnergyFuture future) {
return future.getExpiry();
}
@Override
public Double visitEquityFuture(final EquityFuture future) {
return future.getTimeToSettlement();
}
@Override
public Double visitEquityIndexDividendFuture(final EquityIndexDividendFuture future) {
return future.getTimeToSettlement();
}
@Override
public Double visitMetalFuture(final MetalFuture future) {
return future.getExpiry();
}
}