class SwapFuturesPriceDeliverableSecurityDefinition extends FuturesSecurityDefinition<SwapFuturesPriceDeliverableSecurity> {

  @Override
  public SwapFuturesPriceDeliverableSecurity toDerivative(final ZonedDateTime date) {
    final double lastTradingTime = TimeCalculator.getTimeBetween(date, getLastTradingDate());
    final double deliveryTime = TimeCalculator.getTimeBetween(date, _deliveryDate);
    final SwapFixedCoupon<? extends Coupon> underlyingSwap = _underlyingSwap.toDerivative(date);
    return new SwapFuturesPriceDeliverableSecurity(lastTradingTime, deliveryTime, underlyingSwap, _notional);
  }

  public  SwapFuturesPriceDeliverableSecurityDefinition(final ZonedDateTime lastTradingDate, final SwapFixedIborDefinition underlyingSwap, final double notional);

}