/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security.option;
/**
* Visitor for the {@code PayoffStyle} subclasses.
*
* @param <T> visitor method return type
*/
public interface PayoffStyleVisitor<T> {
T visitAssetOrNothingPayoffStyle(AssetOrNothingPayoffStyle payoffStyle);
T visitAsymmetricPoweredPayoffStyle(AsymmetricPoweredPayoffStyle payoffStyle);
T visitBarrierPayoffStyle(BarrierPayoffStyle payoffStyle);
T visitCappedPoweredPayoffStyle(CappedPoweredPayoffStyle payoffStyle);
T visitCashOrNothingPayoffStyle(CashOrNothingPayoffStyle payoffStyle);
T visitExtremeSpreadPayoffStyle(ExtremeSpreadPayoffStyle payoffStyle);
T visitFadeInPayoffStyle(FadeInPayoffStyle payoffStyle);
T visitFixedStrikeLookbackPayoffStyle(FixedStrikeLookbackPayoffStyle payoffStyle);
T visitFloatingStrikeLookbackPayoffStyle(FloatingStrikeLookbackPayoffStyle payoffStyle);
T visitGapPayoffStyle(GapPayoffStyle payoffStyle);
T visitPoweredPayoffStyle(PoweredPayoffStyle payoffStyle);
T visitSimpleChooserPayoffStyle(SimpleChooserPayoffStyle payoffStyle);
T visitSupersharePayoffStyle(SupersharePayoffStyle payoffStyle);
T visitVanillaPayoffStyle(VanillaPayoffStyle payoffStyle);
}