final VanillaSwap.ArgumentsImpl a = (VanillaSwap.ArgumentsImpl) arguments;
a.type = type;
a.nominal = nominal;
final Leg fixedCoupons = fixedLeg();
a.fixedResetDates = new ArrayList<Date>(fixedCoupons.size());
a.fixedPayDates = new ArrayList<Date>(fixedCoupons.size());
a.fixedCoupons = new ArrayList</*@Real*/ Double>(fixedCoupons.size());
for (int i=0; i<fixedCoupons.size(); i++) {
final FixedRateCoupon coupon = (FixedRateCoupon) fixedCoupons.get(i);
a.fixedPayDates.set(i, coupon.date());
a.fixedResetDates.set(i, coupon.accrualStartDate());
a.fixedCoupons.set(i, coupon.amount());
}
final Leg floatingCoupons = floatingLeg();
a.floatingResetDates = new ArrayList<Date>(floatingCoupons.size());
a.floatingPayDates = new ArrayList<Date>(floatingCoupons.size());
a.floatingFixingDates = new ArrayList<Date>(floatingCoupons.size());
a.floatingAccrualTimes = new ArrayList</*@Time*/ Double>(floatingCoupons.size());
a.floatingSpreads = new ArrayList</*@Spread*/ Double>(floatingCoupons.size());
a.floatingCoupons = new ArrayList</*@Real*/ Double>(floatingCoupons.size());
for (int i=0; i<floatingCoupons.size(); ++i) {
final IborCoupon coupon = (IborCoupon) floatingCoupons.get(i);
a.floatingResetDates.set(i, coupon.accrualStartDate());
a.floatingPayDates.set(i, coupon.date());
a.floatingFixingDates.set(i, coupon.fixingDate());