/* ----------------------------------------------------------------------------
 * 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 allowable data types for publications and inputs
 */
public final class helics_data_type {
  /**
   *  a sequence of characters
   */
  public final static helics_data_type helics_data_type_string = new helics_data_type("helics_data_type_string", helicsJNI.helics_data_type_string_get());
  /**
   *  a double precision floating point number
   */
  public final static helics_data_type helics_data_type_double = new helics_data_type("helics_data_type_double", helicsJNI.helics_data_type_double_get());
  /**
   *  a 64 bit integer
   */
  public final static helics_data_type helics_data_type_int = new helics_data_type("helics_data_type_int", helicsJNI.helics_data_type_int_get());
  /**
   *  a pair of doubles representing a complex number
   */
  public final static helics_data_type helics_data_type_complex = new helics_data_type("helics_data_type_complex", helicsJNI.helics_data_type_complex_get());
  /**
   *  an array of doubles
   */
  public final static helics_data_type helics_data_type_vector = new helics_data_type("helics_data_type_vector", helicsJNI.helics_data_type_vector_get());
  /**
   *  a complex vector object
   */
  public final static helics_data_type helics_data_type_complex_vector = new helics_data_type("helics_data_type_complex_vector", helicsJNI.helics_data_type_complex_vector_get());
  /**
   *  a named point consisting of a string and a double
   */
  public final static helics_data_type helics_data_type_named_point = new helics_data_type("helics_data_type_named_point", helicsJNI.helics_data_type_named_point_get());
  /**
   *  a boolean data type
   */
  public final static helics_data_type helics_data_type_boolean = new helics_data_type("helics_data_type_boolean", helicsJNI.helics_data_type_boolean_get());
  /**
   *  time data type
   */
  public final static helics_data_type helics_data_type_time = new helics_data_type("helics_data_type_time", helicsJNI.helics_data_type_time_get());
  /**
   *  raw data type
   */
  public final static helics_data_type helics_data_type_raw = new helics_data_type("helics_data_type_raw", helicsJNI.helics_data_type_raw_get());
  /**
   *  the data type can change
   */
  public final static helics_data_type helics_data_type_multi = new helics_data_type("helics_data_type_multi", helicsJNI.helics_data_type_multi_get());
  /**
   *  open type that can be anything
   */
  public final static helics_data_type helics_data_type_any = new helics_data_type("helics_data_type_any", helicsJNI.helics_data_type_any_get());

  public final int swigValue() {
    return swigValue;
  }

  public String toString() {
    return swigName;
  }

  public static helics_data_type 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_data_type.class + " with value " + swigValue);
  }

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

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

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

  private static helics_data_type[] swigValues = { helics_data_type_string, helics_data_type_double, helics_data_type_int, helics_data_type_complex, helics_data_type_vector, helics_data_type_complex_vector, helics_data_type_named_point, helics_data_type_boolean, helics_data_type_time, helics_data_type_raw, helics_data_type_multi, helics_data_type_any };
  private static int swigNext = 0;
  private final int swigValue;
  private final String swigName;
}

