/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.29
 *
 * 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 FloatingRateBond extends Bond {
  private long swigCPtr;

  protected FloatingRateBond(long cPtr, boolean cMemoryOwn) {
    super(QuantLibJNI.SWIGFloatingRateBondUpcast(cPtr), cMemoryOwn);
    swigCPtr = cPtr;
  }

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

  protected void finalize() {
    delete();
  }

  public void delete() {
    if(swigCPtr != 0 && swigCMemOwn) {
      swigCMemOwn = false;
      QuantLibJNI.delete_FloatingRateBond(swigCPtr);
    }
    swigCPtr = 0;
    super.delete();
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, YieldTermStructureHandle discountCurve, Date stub, boolean fromEnd) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_0(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue(), paymentConvention.swigValue(), redemption, YieldTermStructureHandle.getCPtr(discountCurve), Date.getCPtr(stub), fromEnd), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, YieldTermStructureHandle discountCurve, Date stub) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_1(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue(), paymentConvention.swigValue(), redemption, YieldTermStructureHandle.getCPtr(discountCurve), Date.getCPtr(stub)), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, YieldTermStructureHandle discountCurve) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_2(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue(), paymentConvention.swigValue(), redemption, YieldTermStructureHandle.getCPtr(discountCurve)), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_3(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue(), paymentConvention.swigValue(), redemption), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_4(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue(), paymentConvention.swigValue()), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter, BusinessDayConvention accrualConvention) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_5(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter), accrualConvention.swigValue()), true);
  }

  public FloatingRateBond(Date issueDate, Date datedDate, Date maturityDate, int settlementDays, Xibor index, int fixingDays, DoubleVector spreads, Frequency couponFrequency, Calendar calendar, DayCounter dayCounter) {
    this(QuantLibJNI.new_FloatingRateBond__SWIG_6(Date.getCPtr(issueDate), Date.getCPtr(datedDate), Date.getCPtr(maturityDate), settlementDays, Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads), couponFrequency.swigValue(), Calendar.getCPtr(calendar), DayCounter.getCPtr(dayCounter)), true);
  }

}
