final double fixingPeriodEndTime = TimeCalculator.getTimeBetween(valZdt, _fixingPeriodDate[_fixingPeriodDate.length - 1]);
double fixingAccrualFactorLeft = 0.0;
for (int loopperiod = fixedPeriod; loopperiod < _fixingPeriodAccrualFactor.length; loopperiod++) {
fixingAccrualFactorLeft += _fixingPeriodAccrualFactor[loopperiod];
}
final CouponON cpn = new CouponON(getCurrency(), paymentTime, yieldCurveNames[0], getPaymentYearFraction(), getNotional(), _index, fixingPeriodStartTime,
fixingPeriodEndTime, fixingAccrualFactorLeft, accruedNotional, yieldCurveNames[1]);
return cpn;
}
return new CouponFixed(getCurrency(), paymentTime, yieldCurveNames[0], getPaymentYearFraction(), getNotional(), (accruedNotional / getNotional() - 1.0)
/ getPaymentYearFraction());