class SwapXCcyIborIborDefinition extends SwapDefinition {

  public static SwapXCcyIborIborDefinition from(final ZonedDateTime settlementDate, final Period tenor, final GeneratorSwapXCcyIborIbor generator, final double notional1, final double notional2,
      final double spread, final boolean isPayer, final Calendar calendar1, final Calendar calendar2) {
    ArgumentChecker.notNull(settlementDate, "settlement date");
    ArgumentChecker.notNull(tenor, "Tenor");
    ArgumentChecker.notNull(generator, "Swap generator");
    // TODO: create a mechanism for the simultaneous payments on both legs, i.e. joint calendar
    final ZonedDateTime maturityDate = settlementDate.plus(tenor);
    return from(settlementDate, maturityDate, generator, notional1, notional2, spread, 0.0, isPayer);
  }

  public  SwapXCcyIborIborDefinition(final AnnuityDefinition<CouponDefinition> firstLeg, final AnnuityDefinition<CouponDefinition> secondLeg);

}