001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (https://www.swig.org).
003 * Version 4.1.1
004 *
005 * Do not make changes to this file unless you know what you are doing - modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package org.quantlib;
010
011public class CPISwap extends Swap implements org.quantlib.helpers.QuantLibJNIHelpers.AutoCloseable {
012  private transient long swigCPtr;
013  private transient boolean swigCMemOwnDerived;
014
015  protected CPISwap(long cPtr, boolean cMemoryOwn) {
016    super(QuantLibJNI.CPISwap_SWIGSmartPtrUpcast(cPtr), true);
017    swigCMemOwnDerived = cMemoryOwn;
018    swigCPtr = cPtr;
019  }
020
021  protected static long getCPtr(CPISwap obj) {
022    return (obj == null) ? 0 : obj.swigCPtr;
023  }
024
025  protected void swigSetCMemOwn(boolean own) {
026    swigCMemOwnDerived = own;
027    super.swigSetCMemOwn(own);
028  }
029
030  @SuppressWarnings("deprecation")
031  protected void finalize() {
032    delete();
033  }
034
035  public synchronized void delete() {
036    if (swigCPtr != 0) {
037      if (swigCMemOwnDerived) {
038        swigCMemOwnDerived = false;
039        QuantLibJNI.delete_CPISwap(swigCPtr);
040      }
041      swigCPtr = 0;
042    }
043    super.delete();
044  }
045
046  public CPISwap(Swap.Type type, double nominal, boolean subtractInflationNominal, double spread, DayCounter floatDayCount, Schedule floatSchedule, BusinessDayConvention floatRoll, long fixingDays, IborIndex floatIndex, double fixedRate, double baseCPI, DayCounter fixedDayCount, Schedule fixedSchedule, BusinessDayConvention fixedRoll, Period observationLag, ZeroInflationIndex fixedIndex, CPI.InterpolationType observationInterpolation, double inflationNominal) {
047    this(QuantLibJNI.new_CPISwap__SWIG_0(type.swigValue(), nominal, subtractInflationNominal, spread, DayCounter.getCPtr(floatDayCount), floatDayCount, Schedule.getCPtr(floatSchedule), floatSchedule, floatRoll.swigValue(), fixingDays, IborIndex.getCPtr(floatIndex), floatIndex, fixedRate, baseCPI, DayCounter.getCPtr(fixedDayCount), fixedDayCount, Schedule.getCPtr(fixedSchedule), fixedSchedule, fixedRoll.swigValue(), Period.getCPtr(observationLag), observationLag, ZeroInflationIndex.getCPtr(fixedIndex), fixedIndex, observationInterpolation.swigValue(), inflationNominal), true);
048  }
049
050  public CPISwap(Swap.Type type, double nominal, boolean subtractInflationNominal, double spread, DayCounter floatDayCount, Schedule floatSchedule, BusinessDayConvention floatRoll, long fixingDays, IborIndex floatIndex, double fixedRate, double baseCPI, DayCounter fixedDayCount, Schedule fixedSchedule, BusinessDayConvention fixedRoll, Period observationLag, ZeroInflationIndex fixedIndex, CPI.InterpolationType observationInterpolation) {
051    this(QuantLibJNI.new_CPISwap__SWIG_1(type.swigValue(), nominal, subtractInflationNominal, spread, DayCounter.getCPtr(floatDayCount), floatDayCount, Schedule.getCPtr(floatSchedule), floatSchedule, floatRoll.swigValue(), fixingDays, IborIndex.getCPtr(floatIndex), floatIndex, fixedRate, baseCPI, DayCounter.getCPtr(fixedDayCount), fixedDayCount, Schedule.getCPtr(fixedSchedule), fixedSchedule, fixedRoll.swigValue(), Period.getCPtr(observationLag), observationLag, ZeroInflationIndex.getCPtr(fixedIndex), fixedIndex, observationInterpolation.swigValue()), true);
052  }
053
054  public CPISwap(Swap.Type type, double nominal, boolean subtractInflationNominal, double spread, DayCounter floatDayCount, Schedule floatSchedule, BusinessDayConvention floatRoll, long fixingDays, IborIndex floatIndex, double fixedRate, double baseCPI, DayCounter fixedDayCount, Schedule fixedSchedule, BusinessDayConvention fixedRoll, Period observationLag, ZeroInflationIndex fixedIndex) {
055    this(QuantLibJNI.new_CPISwap__SWIG_2(type.swigValue(), nominal, subtractInflationNominal, spread, DayCounter.getCPtr(floatDayCount), floatDayCount, Schedule.getCPtr(floatSchedule), floatSchedule, floatRoll.swigValue(), fixingDays, IborIndex.getCPtr(floatIndex), floatIndex, fixedRate, baseCPI, DayCounter.getCPtr(fixedDayCount), fixedDayCount, Schedule.getCPtr(fixedSchedule), fixedSchedule, fixedRoll.swigValue(), Period.getCPtr(observationLag), observationLag, ZeroInflationIndex.getCPtr(fixedIndex), fixedIndex), true);
056  }
057
058  public double fairRate() {
059    return QuantLibJNI.CPISwap_fairRate(swigCPtr, this);
060  }
061
062  public double floatLegNPV() {
063    return QuantLibJNI.CPISwap_floatLegNPV(swigCPtr, this);
064  }
065
066  public double fairSpread() {
067    return QuantLibJNI.CPISwap_fairSpread(swigCPtr, this);
068  }
069
070  public double fixedLegNPV() {
071    return QuantLibJNI.CPISwap_fixedLegNPV(swigCPtr, this);
072  }
073
074  public Leg cpiLeg() {
075    return new Leg(QuantLibJNI.CPISwap_cpiLeg(swigCPtr, this), false);
076  }
077
078  public Leg floatLeg() {
079    return new Leg(QuantLibJNI.CPISwap_floatLeg(swigCPtr, this), false);
080  }
081
082}