/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention;
/**
* Visitor pattern interface used to access {@code Convention} instances.
*
* @param <T> the return type of the visitor query
*/
public interface FinancialConventionVisitor<T> {
/**
* Visits {@link BondConvention}s.
* @param convention The convention, not null
* @return The return value
*/
T visitBondConvention(BondConvention convention);
/**
* Visits {@link CMSLegConvention}s.
* @param convention The convention, not null
* @return The return value
*/
T visitCMSLegConvention(CMSLegConvention convention);
/**
* Visits {@link CompoundingIborLegConvention}s.
* @param convention The convention, not null
* @return The return value
*/
T visitCompoundingIborLegConvention(CompoundingIborLegConvention convention);
/**
* Visits {@link DepositConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitDepositConvention(DepositConvention convention);
/**
* Visits {@link EquityConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitEquityConvention(EquityConvention convention);
/**
* Visits {@link DeliverablePriceQuotedSwapFutureConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitDeliverablePriceQuotedSwapFutureConvention(DeliverablePriceQuotedSwapFutureConvention convention);
/**
* Visits {@link FederalFundsFutureConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFederalFundsFutureConvention(FederalFundsFutureConvention convention);
/**
* Visits {@link FixedInterestRateSwapLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFixedInterestRateSwapLegConvention(FixedInterestRateSwapLegConvention convention);
/**
* Visits {@link FloatingInterestRateSwapLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFloatingInterestRateSwapLegConvention(FloatingInterestRateSwapLegConvention convention);
/**
* Visits {@link FXForwardAndSwapConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFXForwardAndSwapConvention(FXForwardAndSwapConvention convention);
/**
* Visits {@link FXSpotConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFXSpotConvention(FXSpotConvention convention);
/**
* Visits {@link IborIndexConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitIborIndexConvention(IborIndexConvention convention);
/**
* Visits {@link RollDateFRAConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitIMMFRAConvention(RollDateFRAConvention convention);
/**
* Visits {@link RollDateSwapConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitIMMSwapConvention(RollDateSwapConvention convention);
/**
* Visits {@link InflationLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitInflationLegConvention(InflationLegConvention convention);
/**
* Visits {@link InterestRateFutureConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitInterestRateFutureConvention(InterestRateFutureConvention convention);
/**
* Visits {@link OISLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitOISLegConvention(OISLegConvention convention);
/**
* Visits {@link ONCompoundedLegRollDateConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitONCompoundedLegRollDateConvention(ONCompoundedLegRollDateConvention convention);
/**
* Visits {@link ONArithmeticAverageLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitONArithmeticAverageLegConvention(ONArithmeticAverageLegConvention convention);
/**
* Visits {@link OvernightIndexConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitOvernightIndexConvention(OvernightIndexConvention convention);
/**
* Visits {@link PriceIndexConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitPriceIndexConvention(PriceIndexConvention convention);
/**
* Visits {@link SwapConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitSwapConvention(SwapConvention convention);
/**
* Visits {@link SwapFixedLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitSwapFixedLegConvention(SwapFixedLegConvention convention);
/**
* Visits {@link FixedLegRollDateConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitFixedLegRollDateConvention(FixedLegRollDateConvention convention);
/**
* Visits {@link SwapIndexConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitSwapIndexConvention(SwapIndexConvention convention);
/**
* Visits {@link VanillaIborLegConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitVanillaIborLegConvention(VanillaIborLegConvention convention);
/**
* Visits {@link VanillaIborLegRollDateConvention}
* @param convention The convention, not null
* @return The return value
*/
T visitVanillaIborLegRollDateConvention(VanillaIborLegRollDateConvention convention);
}