@Override public IborFutureTrade createTrade( TradeInfo info, double quantity, double tradePrice, ReferenceData refData) { return new IborFutureTrade(info, createProduct(refData), quantity, tradePrice); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3237038: // info return ((IborFutureSecurity) bean).getInfo(); case 1585636160: // notional return ((IborFutureSecurity) bean).getNotional(); case -1041950404: // lastTradeDate return ((IborFutureSecurity) bean).getLastTradeDate(); case 100346066: // index return ((IborFutureSecurity) bean).getIndex(); case -142444: // rounding return ((IborFutureSecurity) bean).getRounding(); case 575402001: // currency return ((IborFutureSecurity) bean).getCurrency(); } return super.propertyGet(bean, propertyName, quiet); }
@Override public IborFutureSecurity build() { return new IborFutureSecurity( info, notional, lastTradeDate, index, rounding); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(IborFutureSecurity beanToCopy) { this.info = beanToCopy.getInfo(); this.notional = beanToCopy.getNotional(); this.lastTradeDate = beanToCopy.getLastTradeDate(); this.index = beanToCopy.getIndex(); this.rounding = beanToCopy.getRounding(); }
public void test_builder() { IborFutureSecurity test = sut(); assertEquals(test.getInfo(), INFO); assertEquals(test.getSecurityId(), PRODUCT.getSecurityId()); assertEquals(test.getCurrency(), PRODUCT.getCurrency()); assertEquals(test.getUnderlyingIds(), ImmutableSet.of()); }
public void test_createProduct() { IborFutureSecurity test = sut(); assertEquals(test.createProduct(ReferenceData.empty()), PRODUCT); TradeInfo tradeInfo = TradeInfo.of(date(2016, 6, 30)); IborFutureTrade expectedTrade = IborFutureTrade.builder() .info(tradeInfo) .product(PRODUCT) .quantity(100) .price(0.995) .build(); assertEquals(test.createTrade(tradeInfo, 100, 0.995, ReferenceData.empty()), expectedTrade); PositionInfo positionInfo = PositionInfo.empty(); IborFuturePosition expectedPosition1 = IborFuturePosition.builder() .info(positionInfo) .product(PRODUCT) .longQuantity(100) .build(); TestHelper.assertEqualsBean(test.createPosition(positionInfo, 100, ReferenceData.empty()), expectedPosition1); IborFuturePosition expectedPosition2 = IborFuturePosition.builder() .info(positionInfo) .product(PRODUCT) .longQuantity(100) .shortQuantity(50) .build(); assertEquals(test.createPosition(positionInfo, 100, 50, ReferenceData.empty()), expectedPosition2); }
@Override public IborFuture createProduct(ReferenceData refData) { return IborFuture.builder() .securityId(getSecurityId()) .notional(notional) .index(index) .lastTradeDate(lastTradeDate) .rounding(rounding) .build(); }
static IborFutureSecurity sut() { return IborFutureSecurity.builder() .info(INFO) .notional(PRODUCT.getNotional()) .index(PRODUCT.getIndex()) .lastTradeDate(PRODUCT.getLastTradeDate()) .rounding(PRODUCT.getRounding()) .build(); }
static IborFutureSecurity sut2() { return IborFutureSecurity.builder() .info(INFO2) .notional(PRODUCT2.getNotional()) .index(PRODUCT2.getIndex()) .lastTradeDate(PRODUCT2.getLastTradeDate()) .rounding(PRODUCT2.getRounding()) .build(); }
@Override public IborFuturePosition createPosition( PositionInfo positionInfo, double longQuantity, double shortQuantity, ReferenceData refData) { return IborFuturePosition.ofLongShort(positionInfo, createProduct(refData), longQuantity, shortQuantity); }
@Override public IborFutureOption createProduct(ReferenceData refData) { Security security = refData.getValue(underlyingFutureId); if (!(security instanceof IborFutureSecurity)) { throw new ClassCastException(Messages.format( "{} underlying future '{}' resolved to '{}' when '{}' was expected", IborFutureOptionSecurity.class.getSimpleName(), underlyingFutureId, security.getClass().getSimpleName(), IborFutureSecurity.class.getSimpleName())); } IborFutureSecurity futureSec = (IborFutureSecurity) security; IborFuture underlying = futureSec.createProduct(refData); return new IborFutureOption( getSecurityId(), putCall, strikePrice, expiryDate, expiryTime, expiryZone, premiumStyle, rounding, underlying); }