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

package ur_rna.RNAstructure.backend;

public class Thermodynamics {
  private transient long swigCPtr;
  protected transient boolean swigCMemOwn;

  protected Thermodynamics(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

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

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        RNABackendJNI.delete_Thermodynamics(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public Thermodynamics(boolean isRNA, String alphabetName, double temperature) {
    this(RNABackendJNI.new_Thermodynamics__SWIG_0(isRNA, alphabetName, temperature), true);
  }

  public Thermodynamics(boolean isRNA, String alphabetName) {
    this(RNABackendJNI.new_Thermodynamics__SWIG_1(isRNA, alphabetName), true);
  }

  public Thermodynamics(boolean isRNA) {
    this(RNABackendJNI.new_Thermodynamics__SWIG_2(isRNA), true);
  }

  public Thermodynamics() {
    this(RNABackendJNI.new_Thermodynamics__SWIG_3(), true);
  }

  public Thermodynamics(Thermodynamics copyThermo) {
    this(RNABackendJNI.new_Thermodynamics__SWIG_4(Thermodynamics.getCPtr(copyThermo), copyThermo), true);
  }

  public int SetTemperature(double temperature) {
    return RNABackendJNI.Thermodynamics_SetTemperature(swigCPtr, this, temperature);
  }

  public double GetTemperature() {
    return RNABackendJNI.Thermodynamics_GetTemperature(swigCPtr, this);
  }

  public String GetAlphabetName() {
    return RNABackendJNI.Thermodynamics_GetAlphabetName(swigCPtr, this);
  }

  public int ReadThermodynamic(String directory, String alphabet, double temperature) {
    return RNABackendJNI.Thermodynamics_ReadThermodynamic__SWIG_0(swigCPtr, this, directory, alphabet, temperature);
  }

  public int ReadThermodynamic(String directory, String alphabet) {
    return RNABackendJNI.Thermodynamics_ReadThermodynamic__SWIG_1(swigCPtr, this, directory, alphabet);
  }

  public int ReadThermodynamic(String directory) {
    return RNABackendJNI.Thermodynamics_ReadThermodynamic__SWIG_2(swigCPtr, this, directory);
  }

  public int ReadThermodynamic() {
    return RNABackendJNI.Thermodynamics_ReadThermodynamic__SWIG_3(swigCPtr, this);
  }

  public int ReloadDataTables(double new_temperature) {
    return RNABackendJNI.Thermodynamics_ReloadDataTables__SWIG_0(swigCPtr, this, new_temperature);
  }

  public int ReloadDataTables() {
    return RNABackendJNI.Thermodynamics_ReloadDataTables__SWIG_1(swigCPtr, this);
  }

  public boolean VerifyThermodynamic() {
    return RNABackendJNI.Thermodynamics_VerifyThermodynamic(swigCPtr, this);
  }

  public datatable GetDatatable() {
    long cPtr = RNABackendJNI.Thermodynamics_GetDatatable(swigCPtr, this);
    return (cPtr == 0) ? null : new datatable(cPtr, false);
  }

  public datatable GetEnthalpyTable(String alphabet) {
    long cPtr = RNABackendJNI.Thermodynamics_GetEnthalpyTable__SWIG_0(swigCPtr, this, alphabet);
    return (cPtr == 0) ? null : new datatable(cPtr, false);
  }

  public datatable GetEnthalpyTable() {
    long cPtr = RNABackendJNI.Thermodynamics_GetEnthalpyTable__SWIG_1(swigCPtr, this);
    return (cPtr == 0) ? null : new datatable(cPtr, false);
  }

  public void ClearEnergies() {
    RNABackendJNI.Thermodynamics_ClearEnergies(swigCPtr, this);
  }

  public void ClearEnthalpies() {
    RNABackendJNI.Thermodynamics_ClearEnthalpies(swigCPtr, this);
  }

  public boolean GetEnergyRead() {
    return RNABackendJNI.Thermodynamics_GetEnergyRead(swigCPtr, this);
  }

  public boolean IsAlphabetRead() {
    return RNABackendJNI.Thermodynamics_IsAlphabetRead(swigCPtr, this);
  }

  public void setIsrna(boolean value) {
    RNABackendJNI.Thermodynamics_isrna_set(swigCPtr, this, value);
  }

  public boolean getIsrna() {
    return RNABackendJNI.Thermodynamics_isrna_get(swigCPtr, this);
  }

}
