@Override public TermDepositTrade toTrade( TradeInfo tradeInfo, LocalDate startDate, LocalDate endDate, BuySell buySell, double notional, double rate) { Optional<LocalDate> tradeDate = tradeInfo.getTradeDate(); if (tradeDate.isPresent()) { ArgChecker.inOrderOrEqual(tradeDate.get(), startDate, "tradeDate", "startDate"); } return TermDepositTrade.builder() .info(tradeInfo) .product(TermDeposit.builder() .buySell(buySell) .currency(currency) .notional(notional) .startDate(startDate) .endDate(endDate) .businessDayAdjustment(businessDayAdjustment) .rate(rate) .dayCount(dayCount) .build()) .build(); }
public void test_summarize() { TermDepositTrade trade = TermDepositTrade.builder() .product(DEPOSIT) .info(TRADE_INFO) .build(); PortfolioItemSummary expected = PortfolioItemSummary.builder() .id(TRADE_INFO.getId().orElse(null)) .portfolioItemType(PortfolioItemType.TRADE) .productType(ProductType.TERM_DEPOSIT) .currencies(Currency.GBP) .description("6M GBP 100mm Deposit 2.5% : 19Jan15-19Jul15") .build(); assertEquals(trade.summarize(), expected); }
private static TermDepositTrade adjustTrade( TermDepositTrade trade, BusinessDayConvention dateCnv, Optional<HolidayCalendarId> dateCalOpt) { if (!dateCalOpt.isPresent()) { return trade; } TermDeposit.Builder builder = trade.getProduct().toBuilder(); dateCalOpt.ifPresent(cal -> builder.businessDayAdjustment(BusinessDayAdjustment.of(dateCnv, cal))); return trade.toBuilder() .product(builder.build()) .build(); }
/** * Returns a builder used to create an instance of the bean. * @return the builder, not null */ public static TermDepositTrade.Builder builder() { return new TermDepositTrade.Builder(); }
@Override public TermDepositTrade.Builder builder() { return new TermDepositTrade.Builder(); }
/** * Returns a builder that allows this bean to be mutated. * @return the mutable builder, not null */ public Builder toBuilder() { return new Builder(this); }