/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model;
import com.opengamma.financial.security.FinancialSecurityVisitorAdapter;
import com.opengamma.financial.security.option.BondFutureOptionSecurity;
import com.opengamma.financial.security.option.CommodityFutureOptionSecurity;
import com.opengamma.financial.security.option.EquityIndexDividendFutureOptionSecurity;
import com.opengamma.financial.security.option.EquityIndexFutureOptionSecurity;
import com.opengamma.financial.security.option.EquityIndexOptionSecurity;
import com.opengamma.financial.security.option.EquityOptionSecurity;
import com.opengamma.financial.security.option.ExerciseType;
import com.opengamma.financial.security.option.FXOptionSecurity;
import com.opengamma.financial.security.option.FxFutureOptionSecurity;
import com.opengamma.financial.security.option.IRFutureOptionSecurity;
import com.opengamma.financial.security.option.NonDeliverableFXOptionSecurity;
/**
* Gets the exercise type (e.g. European, American) of options.
*/
public class SecurityExerciseTypeVisitor extends FinancialSecurityVisitorAdapter<ExerciseType> {
/**
* Default constructor
*/
public SecurityExerciseTypeVisitor() {
}
@Override
public ExerciseType visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitFxFutureOptionSecurity(final FxFutureOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitBondFutureOptionSecurity(final BondFutureOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitEquityOptionSecurity(final EquityOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitFXOptionSecurity(final FXOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) {
return security.getExerciseType();
}
@Override
public ExerciseType visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) {
return security.getExerciseType();
}
}