/**
* 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.discounting;
import com.opengamma.analytics.financial.instrument.index.IndexDeposit;
import com.opengamma.analytics.financial.interestrate.payments.derivative.DepositIndexCoupon;
import com.opengamma.analytics.financial.interestrate.payments.derivative.InterpolatedStubCoupon;
import com.opengamma.analytics.financial.provider.description.interestrate.MulticurveProviderInterface;
import com.opengamma.util.ArgumentChecker;
/**
* Parameter object for interpolated stub instrument derivative visitor
*/
public final class InterpolatedStubData {
private final MulticurveProviderInterface _multicurve;
private final InterpolatedStubCoupon<? extends DepositIndexCoupon<? extends IndexDeposit>, ? extends IndexDeposit> _interpolatedStubCoupon;
private InterpolatedStubData(
final MulticurveProviderInterface multicurve,
final InterpolatedStubCoupon<? extends DepositIndexCoupon<? extends IndexDeposit>, ? extends IndexDeposit> interpolatedStubCoupon) {
ArgumentChecker.notNull(multicurve, "multicurve");
ArgumentChecker.notNull(interpolatedStubCoupon, "interpolatedStubCoupon");
_multicurve = multicurve;
_interpolatedStubCoupon = interpolatedStubCoupon;
}
public MulticurveProviderInterface getMulticurve() {
return _multicurve;
}
public InterpolatedStubCoupon<? extends DepositIndexCoupon<? extends IndexDeposit>, ? extends IndexDeposit> getInterpolatedStubCoupon() {
return _interpolatedStubCoupon;
}
public static InterpolatedStubData of(
final MulticurveProviderInterface multicurve,
final InterpolatedStubCoupon<? extends DepositIndexCoupon<? extends IndexDeposit>, ? extends IndexDeposit> interpolatedStubCoupon) {
return new InterpolatedStubData(multicurve, interpolatedStubCoupon);
}
}