@Override public PortfolioItemSummary summarize() { // 6M USD 2mm Deposit 0.8% : 21Jan18-21Jul18 StringBuilder buf = new StringBuilder(64); buf.append(SummarizerUtils.datePeriod(product.getStartDate(), product.getEndDate())); buf.append(' '); buf.append(SummarizerUtils.amount(product.getCurrency(), product.getNotional())); buf.append(' '); buf.append(product.getBuySell() == BuySell.BUY ? "Deposit " : "Loan "); buf.append(SummarizerUtils.percent(product.getRate())); buf.append(" : "); buf.append(SummarizerUtils.dateRange(product.getStartDate(), product.getEndDate())); return SummarizerUtils.summary(this, ProductType.TERM_DEPOSIT, buf.toString(), product.getCurrency()); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(TermDeposit beanToCopy) { this.buySell = beanToCopy.getBuySell(); this.currency = beanToCopy.getCurrency(); this.notional = beanToCopy.getNotional(); this.startDate = beanToCopy.getStartDate(); this.endDate = beanToCopy.getEndDate(); this.businessDayAdjustment = beanToCopy.businessDayAdjustment; this.dayCount = beanToCopy.getDayCount(); this.rate = beanToCopy.getRate(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 244977400: // buySell return ((TermDeposit) bean).getBuySell(); case 575402001: // currency return ((TermDeposit) bean).getCurrency(); case 1585636160: // notional return ((TermDeposit) bean).getNotional(); case -2129778896: // startDate return ((TermDeposit) bean).getStartDate(); case -1607727319: // endDate return ((TermDeposit) bean).getEndDate(); case -1065319863: // businessDayAdjustment return ((TermDeposit) bean).businessDayAdjustment; case 1905311443: // dayCount return ((TermDeposit) bean).getDayCount(); case 3493088: // rate return ((TermDeposit) bean).getRate(); } return super.propertyGet(bean, propertyName, quiet); }
public void termDeposit() { String location = "classpath:com/opengamma/strata/loader/fpml/td-ex01-simple-term-deposit.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party1")).parseTrades(resource); assertEquals(trades.size(), 1); Trade trade = trades.get(0); assertEquals(trade.getClass(), TermDepositTrade.class); TermDepositTrade tdTrade = (TermDepositTrade) trade; assertEquals(tdTrade.getInfo().getTradeDate(), Optional.of(date(2002, 2, 14))); TermDeposit td = tdTrade.getProduct(); assertEquals(td.getBuySell(), BUY); assertEquals(td.getStartDate(), date(2002, 2, 14)); assertEquals(td.getEndDate(), date(2002, 2, 15)); assertEquals(td.getCurrency(), CHF); assertEquals(td.getNotional(), 25000000d); assertEquals(td.getRate(), 0.04); assertEquals(td.getDayCount(), ACT_360); }
public void test_builder() { TermDeposit test = TermDeposit.builder() .buySell(SELL) .startDate(START_DATE) .endDate(END_DATE) .businessDayAdjustment(BDA_MOD_FOLLOW) .dayCount(ACT_365F) .notional(NOTIONAL) .currency(GBP) .rate(RATE) .build(); assertEquals(test.getBuySell(), SELL); assertEquals(test.getStartDate(), START_DATE); assertEquals(test.getEndDate(), END_DATE); assertEquals(test.getBusinessDayAdjustment().get(), BDA_MOD_FOLLOW); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getNotional(), NOTIONAL); assertEquals(test.getRate(), RATE); assertEquals(test.getCurrency(), GBP); assertEquals(test.isCrossCurrency(), false); assertEquals(test.allPaymentCurrencies(), ImmutableSet.of(GBP)); assertEquals(test.allCurrencies(), ImmutableSet.of(GBP)); }
@Override public ResolvedTermDeposit resolve(ReferenceData refData) { DateAdjuster bda = getBusinessDayAdjustment().orElse(BusinessDayAdjustment.NONE).resolve(refData); LocalDate start = bda.adjust(startDate); LocalDate end = bda.adjust(endDate); double yearFraction = dayCount.yearFraction(start, end); return ResolvedTermDeposit.builder() .startDate(start) .endDate(end) .yearFraction(yearFraction) .currency(getCurrency()) .notional(buySell.normalize(notional)) .rate(rate) .build(); }