/** * Gets the currency that the security is traded in. * * @return the trading currency */ public default Currency getCurrency() { return getInfo().getPriceInfo().getCurrency(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3355: // id return ((SecurityInfo) bean).getId(); case -2126070377: // priceInfo return ((SecurityInfo) bean).getPriceInfo(); case 405645655: // attributes return ((SecurityInfo) bean).getAttributes(); } return super.propertyGet(bean, propertyName, quiet); }
@Override public Set<String> tokens(Security security) { MetaBean metaBean = MetaBean.of(security.getClass()); return Sets.union( Sets.union(metaBean.metaPropertyMap().keySet(), security.getInfo().propertyNames()), security.getInfo().getPriceInfo().propertyNames()); }
Optional<String> securityPriceInfoPropertyName = security.getInfo().getPriceInfo().propertyNames().stream() .filter(p -> p.equalsIgnoreCase(firstToken)) .findFirst(); if (securityPriceInfoPropertyName.isPresent()) { Object propertyValue = security.getInfo().getPriceInfo().property(securityPriceInfoPropertyName.get()).get(); return propertyValue != null ? EvaluationResult.success(propertyValue, remainingTokens) :
public void test_of_priceInfo() { SecurityInfo test = SecurityInfo.of(ID, PRICE_INFO); assertEquals(test.getId(), ID); assertEquals(test.getPriceInfo(), PRICE_INFO); assertEquals(test.getAttributes(), ImmutableMap.of()); assertThrowsIllegalArg(() -> test.getAttribute(AttributeType.NAME)); assertEquals(test.findAttribute(AttributeType.NAME), Optional.empty()); }
public void createFutureAutoId() { EtdFutureSecurity security = FUTURE_CONTRACT.createFuture(YearMonth.of(2015, 6), EtdVariant.MONTHLY); assertThat(security.getSecurityId()).isEqualTo(SecurityId.of(EtdIdUtils.ETD_SCHEME, "F-ECAG-FOO-201506")); assertThat(security.getExpiry()).isEqualTo(YearMonth.of(2015, 6)); assertThat(security.getContractSpecId()).isEqualTo(FUTURE_CONTRACT.getId()); assertThat(security.getVariant()).isEqualTo(EtdVariant.MONTHLY); assertThat(security.getInfo().getPriceInfo()).isEqualTo(FUTURE_CONTRACT.getPriceInfo()); }
public void test_of_priceInfoFields() { SecurityInfo test = SecurityInfo.of(ID, PRICE_INFO.getTickSize(), PRICE_INFO.getTickValue()); assertEquals(test.getId(), ID); assertEquals(test.getPriceInfo(), PRICE_INFO); assertEquals(test.getAttributes(), ImmutableMap.of()); assertThrowsIllegalArg(() -> test.getAttribute(AttributeType.NAME)); assertEquals(test.findAttribute(AttributeType.NAME), Optional.empty()); }
public void test_of_withAdditionalInfo() { SecurityInfo test = SecurityInfo.of(ID, PRICE_INFO) .withAttribute(AttributeType.NAME, "B") .withAttribute(AttributeType.NAME, "A"); // overwrites "B" assertEquals(test.getId(), ID); assertEquals(test.getPriceInfo(), PRICE_INFO); assertEquals(test.getAttributes(), INFO_MAP); assertEquals(test.getAttribute(AttributeType.NAME), "A"); assertEquals(test.findAttribute(AttributeType.NAME), Optional.of("A")); }
public void createOptionAutoId() { EtdOptionSecurity security = OPTION_CONTRACT.createOption(YearMonth.of(2015, 6), EtdVariant.MONTHLY, 0, PutCall.CALL, 123.45); assertThat(security.getSecurityId()).isEqualTo(SecurityId.of(EtdIdUtils.ETD_SCHEME, "O-IFEN-BAR-201506-C123.45")); assertThat(security.getExpiry()).isEqualTo(YearMonth.of(2015, 6)); assertThat(security.getContractSpecId()).isEqualTo(OPTION_CONTRACT.getId()); assertThat(security.getVariant()).isEqualTo(EtdVariant.MONTHLY); assertThat(security.getPutCall()).isEqualTo(PutCall.CALL); assertThat(security.getStrikePrice()).isEqualTo(123.45); assertThat(security.getUnderlyingExpiryMonth()).isEmpty(); assertThat(security.getInfo().getPriceInfo()).isEqualTo(OPTION_CONTRACT.getPriceInfo()); }
public void createOptionWithUnderlyingAutoId() { EtdOptionSecurity security = OPTION_CONTRACT.createOption( YearMonth.of(2015, 6), EtdVariant.MONTHLY, 0, PutCall.CALL, 123.45, YearMonth.of(2015, 9)); assertThat(security.getSecurityId()).isEqualTo(SecurityId.of(EtdIdUtils.ETD_SCHEME, "O-IFEN-BAR-201506-C123.45-U201509")); assertThat(security.getExpiry()).isEqualTo(YearMonth.of(2015, 6)); assertThat(security.getContractSpecId()).isEqualTo(OPTION_CONTRACT.getId()); assertThat(security.getVariant()).isEqualTo(EtdVariant.MONTHLY); assertThat(security.getPutCall()).isEqualTo(PutCall.CALL); assertThat(security.getStrikePrice()).isEqualTo(123.45); assertThat(security.getUnderlyingExpiryMonth()).hasValue(YearMonth.of(2015, 9)); assertThat(security.getInfo().getPriceInfo()).isEqualTo(OPTION_CONTRACT.getPriceInfo()); }
public void test_builder() { SecurityInfo test = SecurityInfo.builder() .id(ID) .priceInfo(PRICE_INFO) .addAttribute(AttributeType.NAME, "B") .addAttribute(AttributeType.NAME, "A") // overwrites "B" .build(); assertEquals(test.getId(), ID); assertEquals(test.getPriceInfo(), PRICE_INFO); assertEquals(test.getAttributes(), INFO_MAP); assertEquals(test.getAttribute(AttributeType.NAME), "A"); assertEquals(test.findAttribute(AttributeType.NAME), Optional.of("A")); }
public void test_of() { GenericSecurity test = sut(); assertEquals(test.getInfo(), INFO); assertEquals(test.getSecurityId(), INFO.getId()); assertEquals(test.getCurrency(), INFO.getPriceInfo().getCurrency()); assertEquals(test.getUnderlyingIds(), ImmutableSet.of()); assertEquals(test, GenericSecurity.of(INFO)); assertEquals(test.createProduct(ReferenceData.empty()), test); assertEquals( test.createTrade(TradeInfo.empty(), 1, 2, ReferenceData.empty()), GenericSecurityTrade.of(TradeInfo.empty(), GenericSecurity.of(INFO), 1, 2)); assertEquals( test.createPosition(PositionInfo.empty(), 1, ReferenceData.empty()), GenericSecurityPosition.ofNet(PositionInfo.empty(), GenericSecurity.of(INFO), 1)); assertEquals( test.createPosition(PositionInfo.empty(), 1, 2, ReferenceData.empty()), GenericSecurityPosition.ofLongShort(PositionInfo.empty(), GenericSecurity.of(INFO), 1, 2)); }
static CapitalIndexedBondSecurity createSecurity(CapitalIndexedBond product) { return CapitalIndexedBondSecurity.builder() .info(SecurityInfo.of(product.getSecurityId(), INFO.getPriceInfo())) .currency(product.getCurrency()) .notional(product.getNotional()) .accrualSchedule(product.getAccrualSchedule()) .rateCalculation(product.getRateCalculation()) .dayCount(product.getDayCount()) .yieldConvention(product.getYieldConvention()) .legalEntityId(product.getLegalEntityId()) .settlementDateOffset(product.getSettlementDateOffset()) .exCouponPeriod(product.getExCouponPeriod()) .build(); }
static FixedCouponBondSecurity createSecurity(FixedCouponBond product) { return FixedCouponBondSecurity.builder() .info(SecurityInfo.of(product.getSecurityId(), INFO.getPriceInfo())) .currency(product.getCurrency()) .notional(product.getNotional()) .accrualSchedule(product.getAccrualSchedule()) .fixedRate(product.getFixedRate()) .dayCount(product.getDayCount()) .yieldConvention(product.getYieldConvention()) .legalEntityId(product.getLegalEntityId()) .settlementDateOffset(product.getSettlementDateOffset()) .exCouponPeriod(product.getExCouponPeriod()) .build(); }