public void test_builder_withers() { TradeInfo test = TradeInfo.builder() .counterparty(COUNTERPARTY) .build() .withId(ID) .withAttribute(AttributeType.DESCRIPTION, "A"); assertEquals(test.getId(), Optional.of(ID)); assertEquals(test.getCounterparty(), Optional.of(COUNTERPARTY)); assertEquals(test.getTradeDate(), Optional.empty()); assertEquals(test.getTradeTime(), Optional.empty()); assertEquals(test.getZone(), Optional.empty()); assertEquals(test.getSettlementDate(), Optional.empty()); assertEquals(test.getAttributeTypes(), ImmutableSet.of(AttributeType.DESCRIPTION)); assertEquals(test.getAttributes(), ImmutableMap.of(AttributeType.DESCRIPTION, "A")); assertEquals(test.getAttribute(AttributeType.DESCRIPTION), "A"); assertEquals(test.findAttribute(AttributeType.DESCRIPTION), Optional.of("A")); }
@ImmutableDefaults private static void applyDefaults(Builder builder) { builder.info = TradeInfo.empty(); }
private LocalDate calculateSettlementDate(ReferenceData refData) { if (info.getSettlementDate().isPresent()) { return info.getSettlementDate().get(); } if (info.getTradeDate().isPresent()) { LocalDate tradeDate = info.getTradeDate().get(); return product.getSettlementDateOffset().adjust(tradeDate, refData); } throw new IllegalStateException("CapitalIndexedBondTrade.resolve() requires either trade date or settlement date"); }
public void test_toBuilder() { TradeInfo test = TradeInfo.builder() .counterparty(COUNTERPARTY) .build() .toBuilder() .id(ID) .build(); assertEquals(test.getId(), Optional.of(ID)); assertEquals(test.getCounterparty(), Optional.of(COUNTERPARTY)); }
private TradeInfo parseTradeInfo(CsvRow row) { TradeInfoBuilder infoBuilder = TradeInfo.builder(); String scheme = row.findField(ID_SCHEME_FIELD).orElse(DEFAULT_TRADE_SCHEME); row.findValue(ID_FIELD).ifPresent(id -> infoBuilder.id(StandardId.of(scheme, id))); String schemeCpty = row.findValue(CPTY_SCHEME_FIELD).orElse(DEFAULT_CPTY_SCHEME); row.findValue(CPTY_FIELD).ifPresent(cpty -> infoBuilder.counterparty(StandardId.of(schemeCpty, cpty))); row.findValue(TRADE_DATE_FIELD).ifPresent(dateStr -> infoBuilder.tradeDate(LoaderUtils.parseDate(dateStr))); row.findValue(TRADE_TIME_FIELD).ifPresent(timeStr -> infoBuilder.tradeTime(LoaderUtils.parseTime(timeStr))); row.findValue(TRADE_ZONE_FIELD).ifPresent(zoneStr -> infoBuilder.zone(ZoneId.of(zoneStr))); row.findValue(SETTLEMENT_DATE_FIELD).ifPresent(dateStr -> infoBuilder.settlementDate(LoaderUtils.parseDate(dateStr))); resolver.parseTradeInfo(row, infoBuilder); return infoBuilder.build(); }
@Override public ResolvedBondFutureTrade resolve(ReferenceData refData) { if (!info.getTradeDate().isPresent()) { throw new IllegalArgumentException("Trade date on TradeInfo must be present"); } ResolvedBondFuture resolved = getProduct().resolve(refData); TradedPrice tradedPrice = TradedPrice.of(info.getTradeDate().get(), price); return new ResolvedBondFutureTrade(info, resolved, quantity, tradedPrice); }
public void test_summarize() { DsfTrade trade = sut(); PortfolioItemSummary expected = PortfolioItemSummary.builder() .id(TRADE_INFO.getId().orElse(null)) .portfolioItemType(PortfolioItemType.TRADE) .productType(ProductType.DSF) .currencies(Currency.USD) .description("DSF x 100") .build(); assertEquals(trade.summarize(), expected); }
private LocalDate calculateSettlementDate( ResolvedCdsIndexTrade trade, CreditRatesProvider ratesProvider, ReferenceData refData) { return trade.getInfo().getSettlementDate() .orElse(trade.getProduct().calculateSettlementDateFromValuation(ratesProvider.getValuationDate(), refData)); }
@Override public <T> T getAttribute(AttributeType<T> type) { return findAttribute(type).orElseThrow(() -> new IllegalArgumentException( Messages.format("Attribute not found for type '{}'", type))); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3355: // id return ((TradeInfo) bean).id; case -1651301782: // counterparty return ((TradeInfo) bean).counterparty; case 752419634: // tradeDate return ((TradeInfo) bean).tradeDate; case 752903761: // tradeTime return ((TradeInfo) bean).tradeTime; case 3744684: // zone return ((TradeInfo) bean).zone; case -295948169: // settlementDate return ((TradeInfo) bean).settlementDate; case 405645655: // attributes return ((TradeInfo) bean).getAttributes(); } return super.propertyGet(bean, propertyName, quiet); }
String payerPartyReference = baseEl.getChild("payerPartyReference").getAttribute(HREF); String receiverPartyReference = baseEl.getChild("receiverPartyReference").getAttribute(HREF); Object currentCounterparty = tradeInfoBuilder.build().getCounterparty().orElse(null);
@Override public TradeInfo getInfo() { return TradeInfo.builder().id(id).build(); }
@Override public ResolvedIborFutureTrade resolve(ReferenceData refData) { if (!info.getTradeDate().isPresent()) { throw new IllegalArgumentException("Trade date on TradeInfo must be present"); } ResolvedIborFuture resolved = getProduct().resolve(refData); TradedPrice tradedPrice = TradedPrice.of(info.getTradeDate().get(), price); return new ResolvedIborFutureTrade(info, resolved, quantity, tradedPrice); }
private LocalDate calculateSettlementDate(ReferenceData refData) { if (info.getSettlementDate().isPresent()) { return info.getSettlementDate().get(); } if (info.getTradeDate().isPresent()) { LocalDate tradeDate = info.getTradeDate().get(); return product.getSettlementDateOffset().adjust(tradeDate, refData); } throw new IllegalStateException("FixedCouponBondTrade.resolve() requires either trade date or settlement date"); }
public void test_summarize() { CapitalIndexedBondTrade trade = sut(); PortfolioItemSummary expected = PortfolioItemSummary.builder() .id(TRADE_INFO.getId().orElse(null)) .portfolioItemType(PortfolioItemType.TRADE) .productType(ProductType.BOND) .currencies(Currency.USD) .description("Bond x 10") .build(); assertEquals(trade.summarize(), expected); }
private LocalDate calculateSettlementDate( ResolvedCdsTrade trade, CreditRatesProvider ratesProvider, ReferenceData refData) { return trade.getInfo().getSettlementDate() .orElse(trade.getProduct().calculateSettlementDateFromValuation(ratesProvider.getValuationDate(), refData)); }
public void test_builder() { TradeInfo test = TradeInfo.builder() .counterparty(COUNTERPARTY) .build(); assertEquals(test.getId(), Optional.empty()); assertEquals(test.getCounterparty(), Optional.of(COUNTERPARTY)); assertEquals(test.getTradeDate(), Optional.empty()); assertEquals(test.getTradeTime(), Optional.empty()); assertEquals(test.getZone(), Optional.empty()); assertEquals(test.getSettlementDate(), Optional.empty()); assertEquals(test.getAttributeTypes(), ImmutableSet.of()); assertEquals(test.getAttributes(), ImmutableMap.of()); assertThrowsIllegalArg(() -> test.getAttribute(AttributeType.DESCRIPTION)); assertEquals(test.findAttribute(AttributeType.DESCRIPTION), Optional.empty()); }
public void test_of_yield_settledate() { assertThrows(() -> BillTrade.ofYield(TradeInfo.builder().tradeDate(TRADE_DATE).build(), PRODUCT, QUANTITY, YIELD), IllegalArgumentException.class); }
@Override public ResolvedDsfTrade resolve(ReferenceData refData) { if (!info.getTradeDate().isPresent()) { throw new IllegalArgumentException("Trade date on TradeInfo must be present"); } ResolvedDsf resolved = getProduct().resolve(refData); TradedPrice tradedPrice = TradedPrice.of(info.getTradeDate().get(), price); return new ResolvedDsfTrade(info, resolved, quantity, tradedPrice); }
private LocalDate calculateSettlementDate(ReferenceData refData) { if (info.getSettlementDate().isPresent()) { return info.getSettlementDate().get(); } LocalDate tradeDate = info.getTradeDate().get(); return product.getSettlementDateOffset().adjust(tradeDate, refData); }