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

package com.java.helics;

/**
 *  enumeration of properties that apply to federates
 */
public final class helics_properties {
  /**
   *  the property controlling the minimum time delta for a federate
   */
  public final static helics_properties helics_property_time_delta = new helics_properties("helics_property_time_delta", helicsJNI.helics_property_time_delta_get());
  /**
   *  the property controlling the period for a federate
   */
  public final static helics_properties helics_property_time_period = new helics_properties("helics_property_time_period", helicsJNI.helics_property_time_period_get());
  /**
   *  the property controlling time offset for the period of federate
   */
  public final static helics_properties helics_property_time_offset = new helics_properties("helics_property_time_offset", helicsJNI.helics_property_time_offset_get());
  /**
   *  the property controlling real time lag for a federate the max time a federate can lag real<br>
   *        time
   */
  public final static helics_properties helics_property_time_rt_lag = new helics_properties("helics_property_time_rt_lag", helicsJNI.helics_property_time_rt_lag_get());
  /**
   *  the property controlling real time lead for a federate the max time a federate can be ahead<br>
   *        of real time
   */
  public final static helics_properties helics_property_time_rt_lead = new helics_properties("helics_property_time_rt_lead", helicsJNI.helics_property_time_rt_lead_get());
  /**
   *  the property controlling real time tolerance for a federate sets both rt_lag and rt_lead
   */
  public final static helics_properties helics_property_time_rt_tolerance = new helics_properties("helics_property_time_rt_tolerance", helicsJNI.helics_property_time_rt_tolerance_get());
  /**
   *  the property controlling input delay for a federate
   */
  public final static helics_properties helics_property_time_input_delay = new helics_properties("helics_property_time_input_delay", helicsJNI.helics_property_time_input_delay_get());
  /**
   *  the property controlling output delay for a federate
   */
  public final static helics_properties helics_property_time_output_delay = new helics_properties("helics_property_time_output_delay", helicsJNI.helics_property_time_output_delay_get());
  /**
   *  integer property controlling the maximum number of iterations in a federate
   */
  public final static helics_properties helics_property_int_max_iterations = new helics_properties("helics_property_int_max_iterations", helicsJNI.helics_property_int_max_iterations_get());
  /**
   *  integer property controlling the log level in a federate see <a href="#helics_log_levels">helics_log_levels</a>
   */
  public final static helics_properties helics_property_int_log_level = new helics_properties("helics_property_int_log_level", helicsJNI.helics_property_int_log_level_get());
  /**
   *  integer property controlling the log level for file logging in a federate see <br>
   *        helics_log_levels
   */
  public final static helics_properties helics_property_int_file_log_level = new helics_properties("helics_property_int_file_log_level", helicsJNI.helics_property_int_file_log_level_get());
  /**
   *  integer property controlling the log level for file logging in a federate see <br>
   *        helics_log_levels
   */
  public final static helics_properties helics_property_int_console_log_level = new helics_properties("helics_property_int_console_log_level", helicsJNI.helics_property_int_console_log_level_get());

  public final int swigValue() {
    return swigValue;
  }

  public String toString() {
    return swigName;
  }

  public static helics_properties swigToEnum(int swigValue) {
    if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
      return swigValues[swigValue];
    for (int i = 0; i < swigValues.length; i++)
      if (swigValues[i].swigValue == swigValue)
        return swigValues[i];
    throw new IllegalArgumentException("No enum " + helics_properties.class + " with value " + swigValue);
  }

  private helics_properties(String swigName) {
    this.swigName = swigName;
    this.swigValue = swigNext++;
  }

  private helics_properties(String swigName, int swigValue) {
    this.swigName = swigName;
    this.swigValue = swigValue;
    swigNext = swigValue+1;
  }

  private helics_properties(String swigName, helics_properties swigEnum) {
    this.swigName = swigName;
    this.swigValue = swigEnum.swigValue;
    swigNext = this.swigValue+1;
  }

  private static helics_properties[] swigValues = { helics_property_time_delta, helics_property_time_period, helics_property_time_offset, helics_property_time_rt_lag, helics_property_time_rt_lead, helics_property_time_rt_tolerance, helics_property_time_input_delay, helics_property_time_output_delay, helics_property_int_max_iterations, helics_property_int_log_level, helics_property_int_file_log_level, helics_property_int_console_log_level };
  private static int swigNext = 0;
  private final int swigValue;
  private final String swigName;
}

