/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 4.0.2
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package org.quantlib;

public class ConvertibleFixedCouponBond extends Bond {
  private transient long swigCPtr;
  private transient boolean swigCMemOwnDerived;

  protected ConvertibleFixedCouponBond(long cPtr, boolean cMemoryOwn) {
    super(QuantLibJNI.ConvertibleFixedCouponBond_SWIGSmartPtrUpcast(cPtr), true);
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(ConvertibleFixedCouponBond obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void swigSetCMemOwn(boolean own) {
    swigCMemOwnDerived = own;
    super.swigSetCMemOwn(own);
  }

  @SuppressWarnings("deprecation")
  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwnDerived) {
        swigCMemOwnDerived = false;
        QuantLibJNI.delete_ConvertibleFixedCouponBond(swigCPtr);
      }
      swigCPtr = 0;
    }
    super.delete();
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule, double redemption, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, boolean exCouponEndOfMonth) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_0(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule, redemption, Period.getCPtr(exCouponPeriod), exCouponPeriod, Calendar.getCPtr(exCouponCalendar), exCouponCalendar, exCouponConvention.swigValue(), exCouponEndOfMonth), true);
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule, double redemption, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_1(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule, redemption, Period.getCPtr(exCouponPeriod), exCouponPeriod, Calendar.getCPtr(exCouponCalendar), exCouponCalendar, exCouponConvention.swigValue()), true);
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule, double redemption, Period exCouponPeriod, Calendar exCouponCalendar) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_2(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule, redemption, Period.getCPtr(exCouponPeriod), exCouponPeriod, Calendar.getCPtr(exCouponCalendar), exCouponCalendar), true);
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule, double redemption, Period exCouponPeriod) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_3(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule, redemption, Period.getCPtr(exCouponPeriod), exCouponPeriod), true);
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule, double redemption) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_4(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule, redemption), true);
  }

  public ConvertibleFixedCouponBond(Exercise exercise, double conversionRatio, DividendSchedule dividends, CallabilitySchedule callability, QuoteHandle creditSpread, Date issueDate, int settlementDays, DoubleVector coupons, DayCounter dayCounter, Schedule schedule) {
    this(QuantLibJNI.new_ConvertibleFixedCouponBond__SWIG_5(Exercise.getCPtr(exercise), exercise, conversionRatio, DividendSchedule.getCPtr(dividends), dividends, CallabilitySchedule.getCPtr(callability), callability, QuoteHandle.getCPtr(creditSpread), creditSpread, Date.getCPtr(issueDate), issueDate, settlementDays, DoubleVector.getCPtr(coupons), coupons, DayCounter.getCPtr(dayCounter), dayCounter, Schedule.getCPtr(schedule), schedule), true);
  }

}
