/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.curve;
import com.opengamma.financial.analytics.ircurve.strips.BillNode;
import com.opengamma.financial.analytics.ircurve.strips.BondNode;
import com.opengamma.financial.analytics.ircurve.strips.CalendarSwapNode;
import com.opengamma.financial.analytics.ircurve.strips.CashNode;
import com.opengamma.financial.analytics.ircurve.strips.ContinuouslyCompoundedRateNode;
import com.opengamma.financial.analytics.ircurve.strips.CreditSpreadNode;
import com.opengamma.financial.analytics.ircurve.strips.CurveNodeVisitor;
import com.opengamma.financial.analytics.ircurve.strips.DeliverableSwapFutureNode;
import com.opengamma.financial.analytics.ircurve.strips.DiscountFactorNode;
import com.opengamma.financial.analytics.ircurve.strips.FRANode;
import com.opengamma.financial.analytics.ircurve.strips.FXForwardNode;
import com.opengamma.financial.analytics.ircurve.strips.FXSwapNode;
import com.opengamma.financial.analytics.ircurve.strips.PeriodicallyCompoundedRateNode;
import com.opengamma.financial.analytics.ircurve.strips.RateFutureNode;
import com.opengamma.financial.analytics.ircurve.strips.RollDateFRANode;
import com.opengamma.financial.analytics.ircurve.strips.RollDateSwapNode;
import com.opengamma.financial.analytics.ircurve.strips.SwapNode;
import com.opengamma.financial.analytics.ircurve.strips.ThreeLegBasisSwapNode;
import com.opengamma.financial.analytics.ircurve.strips.ZeroCouponInflationNode;
import com.opengamma.util.ArgumentChecker;
/**
* Delegate class for curve node visitors
*
* @param <T> The return type of the visitor.
*/
public class CurveNodeVisitorDelegate<T> implements CurveNodeVisitor<T> {
/** The delegate */
private final CurveNodeVisitor<T> _delegate;
/**
* @param delegate The delegate, not null
*/
public CurveNodeVisitorDelegate(final CurveNodeVisitor<T> delegate) {
ArgumentChecker.notNull(delegate, "delegate");
_delegate = delegate;
}
@Override
public T visitBillNode(final BillNode node) {
return _delegate.visitBillNode(node);
}
@Override
public T visitBondNode(final BondNode node) {
return _delegate.visitBondNode(node);
}
@Override
public T visitCalendarSwapNode(final CalendarSwapNode node) {
return _delegate.visitCalendarSwapNode(node);
}
@Override
public T visitCashNode(final CashNode node) {
return _delegate.visitCashNode(node);
}
@Override
public T visitContinuouslyCompoundedRateNode(final ContinuouslyCompoundedRateNode node) {
return _delegate.visitContinuouslyCompoundedRateNode(node);
}
@Override
public T visitPeriodicallyCompoundedRateNode(final PeriodicallyCompoundedRateNode node) {
return _delegate.visitPeriodicallyCompoundedRateNode(node);
}
@Override
public T visitCreditSpreadNode(final CreditSpreadNode node) {
return _delegate.visitCreditSpreadNode(node);
}
@Override
public T visitDeliverableSwapFutureNode(final DeliverableSwapFutureNode node) {
return _delegate.visitDeliverableSwapFutureNode(node);
}
@Override
public T visitDiscountFactorNode(final DiscountFactorNode node) {
return _delegate.visitDiscountFactorNode(node);
}
@Override
public T visitFRANode(final FRANode node) {
return _delegate.visitFRANode(node);
}
@Override
public T visitFXForwardNode(final FXForwardNode node) {
return _delegate.visitFXForwardNode(node);
}
@Override
public T visitFXSwapNode(FXSwapNode node) {
return _delegate.visitFXSwapNode(node);
}
@Override
public T visitRollDateFRANode(final RollDateFRANode node) {
return _delegate.visitRollDateFRANode(node);
}
@Override
public T visitRollDateSwapNode(final RollDateSwapNode node) {
return _delegate.visitRollDateSwapNode(node);
}
@Override
public T visitRateFutureNode(final RateFutureNode node) {
return _delegate.visitRateFutureNode(node);
}
@Override
public T visitSwapNode(final SwapNode node) {
return _delegate.visitSwapNode(node);
}
@Override
public T visitThreeLegBasisSwapNode(final ThreeLegBasisSwapNode node) {
return _delegate.visitThreeLegBasisSwapNode(node);
}
@Override
public T visitZeroCouponInflationNode(final ZeroCouponInflationNode node) {
return _delegate.visitZeroCouponInflationNode(node);
}
}