class BondFutureSecurity implements Security, ImmutableBean, Serializable {

  @Override
  public BondFuture createProduct(ReferenceData refData) {
    List<FixedCouponBond> bonds = deliveryBasketIds.stream()
        .map(id -> resolveBond(id, refData))
        .collect(toImmutableList());
    return new BondFuture(
        getSecurityId(),
        bonds,
        conversionFactors,
        lastTradeDate,
        firstNoticeDate,
        lastNoticeDate,
        firstDeliveryDate,
        lastDeliveryDate,
        rounding);
  }

  private  BondFutureSecurity(
      SecurityInfo info,
      Currency currency,
      List<SecurityId> deliveryBasketIds,
      List<Double> conversionFactors,
      LocalDate lastTradeDate,
      LocalDate firstNoticeDate,
      LocalDate lastNoticeDate,
      LocalDate firstDeliveryDate,
      LocalDate lastDeliveryDate,
      Rounding rounding);

}