/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(RateCalculationSwapLeg beanToCopy) { this.payReceive = beanToCopy.getPayReceive(); this.accrualSchedule = beanToCopy.getAccrualSchedule(); this.paymentSchedule = beanToCopy.getPaymentSchedule(); this.notionalSchedule = beanToCopy.getNotionalSchedule(); this.calculation = beanToCopy.getCalculation(); }
private static SwapTrade adjustTrade( SwapTrade trade, Optional<RollConvention> rollConventionOpt, Optional<StubConvention> stubConventionOpt, Optional<LocalDate> firstRegularStartDateOpt, Optional<LocalDate> lastRegEndDateOpt, BusinessDayConvention dateCnv, Optional<HolidayCalendarId> dateCalOpt) { if (!rollConventionOpt.isPresent() && !stubConventionOpt.isPresent() && !firstRegularStartDateOpt.isPresent() && !lastRegEndDateOpt.isPresent() && !dateCalOpt.isPresent()) { return trade; } ImmutableList.Builder<SwapLeg> legBuilder = ImmutableList.builder(); for (SwapLeg leg : trade.getProduct().getLegs()) { RateCalculationSwapLeg swapLeg = (RateCalculationSwapLeg) leg; PeriodicSchedule.Builder scheduleBuilder = swapLeg.getAccrualSchedule().toBuilder(); rollConventionOpt.ifPresent(rc -> scheduleBuilder.rollConvention(rc)); stubConventionOpt.ifPresent(sc -> scheduleBuilder.stubConvention(sc)); firstRegularStartDateOpt.ifPresent(date -> scheduleBuilder.firstRegularStartDate(date)); lastRegEndDateOpt.ifPresent(date -> scheduleBuilder.lastRegularEndDate(date)); dateCalOpt.ifPresent(cal -> scheduleBuilder.businessDayAdjustment(BusinessDayAdjustment.of(dateCnv, cal))); legBuilder.add(swapLeg.toBuilder() .accrualSchedule(scheduleBuilder.build()) .build()); } return replaceLegs(trade, legBuilder.build()); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -885469925: // payReceive return ((RateCalculationSwapLeg) bean).getPayReceive(); case 304659814: // accrualSchedule return ((RateCalculationSwapLeg) bean).getAccrualSchedule(); case -1499086147: // paymentSchedule return ((RateCalculationSwapLeg) bean).getPaymentSchedule(); case 1447860727: // notionalSchedule return ((RateCalculationSwapLeg) bean).getNotionalSchedule(); case -934682935: // calculation return ((RateCalculationSwapLeg) bean).getCalculation(); case 3575610: // type return ((RateCalculationSwapLeg) bean).getType(); case -2129778896: // startDate return ((RateCalculationSwapLeg) bean).getStartDate(); case -1607727319: // endDate return ((RateCalculationSwapLeg) bean).getEndDate(); case 575402001: // currency return ((RateCalculationSwapLeg) bean).getCurrency(); } return super.propertyGet(bean, propertyName, quiet); }
assertEquals(test.getCurrency(), GBP); assertEquals(test.getPayReceive(), PAY); assertEquals(test.getAccrualSchedule(), accrualSchedule); assertEquals(test.getPaymentSchedule(), paymentSchedule); assertEquals(test.getNotionalSchedule(), notionalSchedule);
assertEquals(test.getCurrency(), GBP); assertEquals(test.getPayReceive(), PAY); assertEquals(test.getAccrualSchedule(), accrualSchedule); assertEquals(test.getPaymentSchedule(), paymentSchedule); assertEquals(test.getNotionalSchedule(), notionalSchedule);
assertEquals(test.getCurrency(), GBP); assertEquals(test.getPayReceive(), RECEIVE); assertEquals(test.getAccrualSchedule(), accrualSchedule); assertEquals(test.getPaymentSchedule(), paymentSchedule); assertEquals(test.getNotionalSchedule(), notionalSchedule);
assertEquals(test.getCurrency(), GBP); assertEquals(test.getPayReceive(), RECEIVE); assertEquals(test.getAccrualSchedule(), accrualSchedule); assertEquals(test.getPaymentSchedule(), paymentSchedule); assertEquals(test.getNotionalSchedule(), notionalSchedule);