/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.security.swap; /** * Visitor for the {@code SwapLeg} subclasses. * * @param <T> visitor method return type */ public interface SwapLegVisitor<T> { /** * Visits a fixed interest rate leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitFixedInterestRateLeg(FixedInterestRateLeg swapLeg); /** * Visits a floating interest rate leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitFloatingInterestRateLeg(FloatingInterestRateLeg swapLeg); /** * Visits a floating interest rate leg with spread. * @param swapLeg The swap leg, not null * @return The return value */ T visitFloatingSpreadIRLeg(FloatingSpreadIRLeg swapLeg); /** * Visits a floating interest rate leg with gearing. * @param swapLeg The swap leg, not null * @return The return value */ T visitFloatingGearingIRLeg(FloatingGearingIRLeg swapLeg); /** * Visits a fixed variance swap leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitFixedVarianceSwapLeg(FixedVarianceSwapLeg swapLeg); /** * Visits a floating variance swap leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitFloatingVarianceSwapLeg(FloatingVarianceSwapLeg swapLeg); /** * Visits a fixed inflation swap leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitFixedInflationSwapLeg(FixedInflationSwapLeg swapLeg); /** * Visits a index-linked inflation swap leg. * @param swapLeg The swap leg, not null * @return The return value */ T visitInflationIndexSwapLeg(InflationIndexSwapLeg swapLeg); }