/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.provider.calculator.generic; import com.opengamma.analytics.financial.instrument.index.IndexDeposit; import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter; import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorSameValueAdapter; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponIbor; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponIborCompounding; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponIborGearing; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponIborSpread; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponON; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponONArithmeticAverage; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponONArithmeticAverageSpread; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponONArithmeticAverageSpreadSimplified; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponONCompounded; import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponONSpread; /** * Returns the Ibor index of a coupon. For averaging */ public final class IborIndexVisitor extends InstrumentDerivativeVisitorSameValueAdapter<Object, IndexDeposit> { private static final IborIndexVisitor SINGLETON = new IborIndexVisitor(); public static IborIndexVisitor getInstance() { return SINGLETON; } private IborIndexVisitor() { super(null); } @Override public IndexDeposit visitCouponIbor(CouponIbor payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponIborCompounding(CouponIborCompounding payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponIborGearing(CouponIborGearing payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponIborSpread(CouponIborSpread payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponOIS(CouponON payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponONArithmeticAverage(CouponONArithmeticAverage payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponONArithmeticAverageSpread(CouponONArithmeticAverageSpread payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponONArithmeticAverageSpreadSimplified(CouponONArithmeticAverageSpreadSimplified payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponONCompounded(CouponONCompounded payment) { return payment.getIndex(); } @Override public IndexDeposit visitCouponONSpread(CouponONSpread payment) { return payment.getIndex(); } }