/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 4.0.1
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */


#ifndef SWIGJAVA
#define SWIGJAVA
#endif


/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif


/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
  typedef long long __int64;
#endif

/* Fix for jlong on 64-bit x86 Solaris */
#if defined(__x86_64)
# ifdef _LP64
#   undef _LP64
# endif
#endif

#include <jni.h>
#include <stdlib.h>
#include <string.h>


/* Support for throwing Java exceptions */
typedef enum {
  SWIG_JavaOutOfMemoryError = 1,
  SWIG_JavaIOException,
  SWIG_JavaRuntimeException,
  SWIG_JavaIndexOutOfBoundsException,
  SWIG_JavaArithmeticException,
  SWIG_JavaIllegalArgumentException,
  SWIG_JavaNullPointerException,
  SWIG_JavaDirectorPureVirtual,
  SWIG_JavaUnknownError,
  SWIG_JavaIllegalStateException,
} SWIG_JavaExceptionCodes;

typedef struct {
  SWIG_JavaExceptionCodes code;
  const char *java_exception;
} SWIG_JavaExceptions_t;


static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
  jclass excep;
  static const SWIG_JavaExceptions_t java_exceptions[] = {
    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
    { SWIG_JavaIOException, "java/io/IOException" },
    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
    { SWIG_JavaIllegalStateException, "java/lang/IllegalStateException" },
    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" }
  };
  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;

  while (except_ptr->code != code && except_ptr->code)
    except_ptr++;

  (*jenv)->ExceptionClear(jenv);
  excep = (*jenv)->FindClass(jenv, except_ptr->java_exception);
  if (excep)
    (*jenv)->ThrowNew(jenv, excep, msg);
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else


  #include "api-data.h"



#include "ValueFederate.h"
#include "MessageFederate.h"
#include "MessageFilters.h"


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1default_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_default;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1zmq_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_zmq;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1mpi_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_mpi;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1test_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_test;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1interprocess_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_interprocess;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1ipc_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_ipc;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1tcp_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_tcp;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1udp_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_udp;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1zmq_1test_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_zmq_test;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1nng_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_nng;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1tcp_1ss_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_tcp_ss;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1http_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_http;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1websocket_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_websocket;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1inproc_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_inproc;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1core_1type_1null_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_core_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_core_type)helics_core_type_null;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1string_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_string;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1double_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_double;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1int_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_int;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1complex_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_complex;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1vector_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_vector;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1complex_1vector_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_complex_vector;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1named_1point_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_named_point;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1boolean_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_boolean;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1time_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_time;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1raw_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_raw;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1multi_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_multi;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1data_1type_1any_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_data_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_data_type)helics_data_type_any;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1observer_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_observer;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1uninterruptible_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_uninterruptible;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1interruptible_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_interruptible;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1source_1only_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_source_only;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1only_1transmit_1on_1change_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_only_transmit_on_change;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1only_1update_1on_1change_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_only_update_on_change;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1wait_1for_1current_1time_1update_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_wait_for_current_time_update;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1restrictive_1time_1policy_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_restrictive_time_policy;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1rollback_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_rollback;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1forward_1compute_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_forward_compute;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1realtime_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_realtime;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1single_1thread_1federate_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_single_thread_federate;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1slow_1responding_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_slow_responding;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1delay_1init_1entry_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_delay_init_entry;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1enable_1init_1entry_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_enable_init_entry;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1ignore_1time_1mismatch_1warnings_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_ignore_time_mismatch_warnings;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1flag_1terminate_1on_1error_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_flags result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_flags)helics_flag_terminate_on_error;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1no_1print_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_no_print;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1error_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_error;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1warning_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_warning;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1summary_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_summary;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1connections_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_connections;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1interfaces_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_interfaces;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1timing_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_timing;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1data_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_data;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1log_1level_1trace_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_log_levels result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_log_levels)helics_log_level_trace;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1fatal_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_fatal;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1external_1type_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_external_type;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1other_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_other;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1insufficient_1space_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_insufficient_space;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1execution_1failure_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_execution_failure;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1invalid_1function_1call_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_invalid_function_call;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1invalid_1state_1transition_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_invalid_state_transition;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1warning_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_warning;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1system_1failure_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_system_failure;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1discard_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_discard;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1invalid_1argument_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_invalid_argument;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1invalid_1object_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_invalid_object;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1connection_1failure_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_connection_failure;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1error_1registration_1failure_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_error_registration_failure;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1ok_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_error_types result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_error_types)helics_ok;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1delta_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_delta;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1period_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_period;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1offset_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_offset;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1rt_1lag_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_rt_lag;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1rt_1lead_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_rt_lead;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1rt_1tolerance_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_rt_tolerance;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1input_1delay_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_input_delay;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1time_1output_1delay_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_time_output_delay;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1int_1max_1iterations_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_int_max_iterations;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1int_1log_1level_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_int_log_level;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1int_1file_1log_1level_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_int_file_log_level;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1property_1int_1console_1log_1level_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_properties result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_properties)helics_property_int_console_log_level;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1no_1op_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_no_op;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1vectorize_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_vectorize_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1and_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_and_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1or_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_or_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1sum_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_sum_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1diff_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_diff_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1max_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_max_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1min_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_min_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1multi_1input_1average_1operation_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_multi_input_mode result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_multi_input_mode)helics_multi_input_average_operation;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1connection_1required_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_connection_required;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1connection_1optional_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_connection_optional;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1single_1connection_1only_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_single_connection_only;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1multiple_1connections_1allowed_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_multiple_connections_allowed;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1buffer_1data_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_buffer_data;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1strict_1type_1checking_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_strict_type_checking;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1ignore_1unit_1mismatch_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_ignore_unit_mismatch;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1only_1transmit_1on_1change_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_only_transmit_on_change;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1only_1update_1on_1change_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_only_update_on_change;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1ignore_1interrupts_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_ignore_interrupts;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1multi_1input_1handling_1method_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_multi_input_handling_method;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1input_1priority_1location_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_input_priority_location;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1clear_1priority_1list_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_clear_priority_list;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1handle_1option_1connections_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_handle_options result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_handle_options)helics_handle_option_connections;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1custom_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_custom;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1delay_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_delay;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1random_1delay_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_random_delay;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1random_1drop_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_random_drop;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1reroute_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_reroute;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1clone_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_clone;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1filter_1type_1firewall_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_filter_type result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_filter_type)helics_filter_type_firewall;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1time_1zero_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_time)(helics_time)helics_time_zero;
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1time_1epsilon_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_time)(helics_time)helics_time_epsilon;
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1time_1invalid_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_time)(helics_time)helics_time_invalid;
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1time_1maxtime_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_time)(helics_time)helics_time_maxtime;
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1true_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_bool)(helics_bool)helics_true;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1false_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_bool)(helics_bool)helics_false;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helics_1state_1startup_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  helics_federate_state result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_state)helics_state_startup;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1complex_1real_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  struct helics_complex *arg1 = (struct helics_complex *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_complex **)&jarg1; 
  arg2 = (double)jarg2; 
  if (arg1) (arg1)->real = arg2;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1complex_1real_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  struct helics_complex *arg1 = (struct helics_complex *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_complex **)&jarg1; 
  result = (double) ((arg1)->real);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1complex_1imag_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  struct helics_complex *arg1 = (struct helics_complex *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_complex **)&jarg1; 
  arg2 = (double)jarg2; 
  if (arg1) (arg1)->imag = arg2;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1complex_1imag_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  struct helics_complex *arg1 = (struct helics_complex *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_complex **)&jarg1; 
  result = (double) ((arg1)->imag);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_new_1helics_1complex(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  struct helics_complex *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (struct helics_complex *)calloc(1, sizeof(struct helics_complex));
  *(struct helics_complex **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_delete_1helics_1complex(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  struct helics_complex *arg1 = (struct helics_complex *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(struct helics_complex **)&jarg1; 
  free((char *) arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1time_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  helics_time arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = (helics_time)jarg2; 
  if (arg1) (arg1)->time = arg2;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helics_1message_1time_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (helics_time) ((arg1)->time);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1data_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->data = (char const *) malloc(strlen((const char *)arg2)+1);
      strcpy((char *)arg1->data, (const char *)arg2);
    } else {
      arg1->data = 0;
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helics_1message_1data_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (char *) ((arg1)->data);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1length_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int64_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = (int64_t)jarg2; 
  if (arg1) (arg1)->length = arg2;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helics_1message_1length_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int64_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result =  ((arg1)->length);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1messageID_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int32_t arg2 ;
  int32_t *argp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  argp2 = *(int32_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null int32_t");
    return ;
  }
  arg2 = *argp2; 
  if (arg1) (arg1)->messageID = arg2;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helics_1message_1messageID_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result =  ((arg1)->messageID);
  {
    int32_t * resultptr = (int32_t *) malloc(sizeof(int32_t));
    memmove(resultptr, &result, sizeof(int32_t));
    *(int32_t **)&jresult = resultptr;
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1flags_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int16_t arg2 ;
  int16_t *argp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  argp2 = *(int16_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null int16_t");
    return ;
  }
  arg2 = *argp2; 
  if (arg1) (arg1)->flags = arg2;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helics_1message_1flags_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  int16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result =  ((arg1)->flags);
  {
    int16_t * resultptr = (int16_t *) malloc(sizeof(int16_t));
    memmove(resultptr, &result, sizeof(int16_t));
    *(int16_t **)&jresult = resultptr;
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1original_1source_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->original_source = (char const *) malloc(strlen((const char *)arg2)+1);
      strcpy((char *)arg1->original_source, (const char *)arg2);
    } else {
      arg1->original_source = 0;
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helics_1message_1original_1source_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (char *) ((arg1)->original_source);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1source_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->source = (char const *) malloc(strlen((const char *)arg2)+1);
      strcpy((char *)arg1->source, (const char *)arg2);
    } else {
      arg1->source = 0;
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helics_1message_1source_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (char *) ((arg1)->source);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1dest_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->dest = (char const *) malloc(strlen((const char *)arg2)+1);
      strcpy((char *)arg1->dest, (const char *)arg2);
    } else {
      arg1->dest = 0;
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helics_1message_1dest_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (char *) ((arg1)->dest);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helics_1message_1original_1dest_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->original_dest = (char const *) malloc(strlen((const char *)arg2)+1);
      strcpy((char *)arg1->original_dest, (const char *)arg2);
    } else {
      arg1->original_dest = 0;
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helics_1message_1original_1dest_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(struct helics_message **)&jarg1; 
  result = (char *) ((arg1)->original_dest);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_new_1helics_1message(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  struct helics_message *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (struct helics_message *)calloc(1, sizeof(struct helics_message));
  *(struct helics_message **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_delete_1helics_1message(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  struct helics_message *arg1 = (struct helics_message *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(struct helics_message **)&jarg1; 
  free((char *) arg1);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsGetVersion(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)helicsGetVersion();
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsGetBuildFlags(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)helicsGetBuildFlags();
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsGetCompilerVersion(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)helicsGetCompilerVersion();
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsIsCoreTypeAvailable(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (helics_bool)helicsIsCoreTypeAvailable((char const *)arg1);
  jresult = (jint)result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateCore(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_core result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_core)helicsCreateCore((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4);
  *(helics_core *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateCoreFromArgs(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jobjectArray jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  char **arg4 = (char **) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_core result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  {
    int i = 0;
    arg3=(*jenv)->GetArrayLength(jenv, jarg3);
    arg4 = (char **) malloc((arg3+1)*sizeof(char *));
    /* make a copy of each string */
    for (i = 0; i<arg3; i++) {
      jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, jarg3, i);
      const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0);
      arg4[i] = malloc((strlen(c_string)+1)*sizeof(char));
      strcpy(arg4[i], c_string);
      (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string);
      (*jenv)->DeleteLocalRef(jenv, j_string);
    }
    arg4[i] = 0;
  }
  result = (helics_core)helicsCreateCoreFromArgs((char const *)arg1,(char const *)arg2,arg3,(char const *const *)arg4,arg5);
  *(helics_core *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    int i;
    for (i=0; i<arg3-1; i++)
    free(arg4[i]);
    free(arg4);
  }
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCoreClone(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_core result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_core *)&jarg1; 
  result = (helics_core)helicsCoreClone(arg1,arg2);
  *(helics_core *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsCoreIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  result = (helics_bool)helicsCoreIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateBroker(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_broker result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_broker)helicsCreateBroker((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4);
  *(helics_broker *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateBrokerFromArgs(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jobjectArray jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  char **arg4 = (char **) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_broker result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  {
    int i = 0;
    arg3=(*jenv)->GetArrayLength(jenv, jarg3);
    arg4 = (char **) malloc((arg3+1)*sizeof(char *));
    /* make a copy of each string */
    for (i = 0; i<arg3; i++) {
      jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, jarg3, i);
      const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0);
      arg4[i] = malloc((strlen(c_string)+1)*sizeof(char));
      strcpy(arg4[i], c_string);
      (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string);
      (*jenv)->DeleteLocalRef(jenv, j_string);
    }
    arg4[i] = 0;
  }
  result = (helics_broker)helicsCreateBrokerFromArgs((char const *)arg1,(char const *)arg2,arg3,(char const *const *)arg4,arg5);
  *(helics_broker *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    int i;
    for (i=0; i<arg3-1; i++)
    free(arg4[i]);
    free(arg4);
  }
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsBrokerClone(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_broker result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_broker *)&jarg1; 
  result = (helics_broker)helicsBrokerClone(arg1,arg2);
  *(helics_broker *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsBrokerIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  result = (helics_bool)helicsBrokerIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsBrokerIsConnected(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  result = (helics_bool)helicsBrokerIsConnected(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerDataLink(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsBrokerDataLink(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerAddSourceFilterToEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsBrokerAddSourceFilterToEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerAddDestinationFilterToEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsBrokerAddDestinationFilterToEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerMakeConnections(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsBrokerMakeConnections(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsCoreWaitForDisconnect(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_bool)helicsCoreWaitForDisconnect(arg1,arg2,arg3);
  jresult = (jint)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsBrokerWaitForDisconnect(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_bool)helicsBrokerWaitForDisconnect(arg1,arg2,arg3);
  jresult = (jint)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsCoreIsConnected(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  result = (helics_bool)helicsCoreIsConnected(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreDataLink(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsCoreDataLink(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreAddSourceFilterToEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsCoreAddSourceFilterToEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreAddDestinationFilterToEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsCoreAddDestinationFilterToEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreMakeConnections(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsCoreMakeConnections(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsBrokerGetIdentifier(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  result = (char *)helicsBrokerGetIdentifier(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsCoreGetIdentifier(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  result = (char *)helicsCoreGetIdentifier(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsBrokerGetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_broker arg1 = (helics_broker) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  result = (char *)helicsBrokerGetAddress(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsCoreGetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  result = (char *)helicsCoreGetAddress(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreSetReadyToInit(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_core arg1 = (helics_core) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_core *)&jarg1; 
  helicsCoreSetReadyToInit(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsCoreConnect(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_core *)&jarg1; 
  result = (helics_bool)helicsCoreConnect(arg1,arg2);
  jresult = (jint)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreDisconnect(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_core arg1 = (helics_core) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_core *)&jarg1; 
  helicsCoreDisconnect(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsGetFederateByName(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (helics_federate)helicsGetFederateByName((char const *)arg1,arg2);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerDisconnect(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_broker arg1 = (helics_broker) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_broker *)&jarg1; 
  helicsBrokerDisconnect(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateDestroy(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateDestroy(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerDestroy(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_broker arg1 = (helics_broker) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  helicsBrokerDestroy(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreDestroy(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_core arg1 = (helics_core) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  helicsCoreDestroy(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_core arg1 = (helics_core) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_core *)&jarg1; 
  helicsCoreFree(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_broker arg1 = (helics_broker) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_broker *)&jarg1; 
  helicsBrokerFree(arg1);
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateValueFederate(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_federate_info arg2 = (helics_federate_info) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(helics_federate_info *)&jarg2; 
  result = (helics_federate)helicsCreateValueFederate((char const *)arg1,arg2,arg3);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateValueFederateFromConfig(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (helics_federate)helicsCreateValueFederateFromConfig((char const *)arg1,arg2);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateMessageFederate(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_federate_info arg2 = (helics_federate_info) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(helics_federate_info *)&jarg2; 
  result = (helics_federate)helicsCreateMessageFederate((char const *)arg1,arg2,arg3);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateMessageFederateFromConfig(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (helics_federate)helicsCreateMessageFederateFromConfig((char const *)arg1,arg2);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateCombinationFederate(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_federate_info arg2 = (helics_federate_info) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(helics_federate_info *)&jarg2; 
  result = (helics_federate)helicsCreateCombinationFederate((char const *)arg1,arg2,arg3);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateCombinationFederateFromConfig(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (helics_federate)helicsCreateCombinationFederateFromConfig((char const *)arg1,arg2);
  *(helics_federate *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateClone(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_federate)helicsFederateClone(arg1,arg2);
  *(helics_federate *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateFederateInfo(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  helics_federate_info result;
  
  (void)jenv;
  (void)jcls;
  result = (helics_federate_info)helicsCreateFederateInfo();
  *(helics_federate_info *)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoClone(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate_info result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  result = (helics_federate_info)helicsFederateInfoClone(arg1,arg2);
  *(helics_federate_info *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoLoadFromArgs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobjectArray jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  char **arg3 = (char **) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  {
    int i = 0;
    arg2=(*jenv)->GetArrayLength(jenv, jarg2);
    arg3 = (char **) malloc((arg2+1)*sizeof(char *));
    /* make a copy of each string */
    for (i = 0; i<arg2; i++) {
      jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, jarg2, i);
      const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0);
      arg3[i] = malloc((strlen(c_string)+1)*sizeof(char));
      strcpy(arg3[i], c_string);
      (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string);
      (*jenv)->DeleteLocalRef(jenv, j_string);
    }
    arg3[i] = 0;
  }
  helicsFederateInfoLoadFromArgs(arg1,arg2,(char const *const *)arg3,arg4);
  {
    int i;
    for (i=0; i<arg2-1; i++)
    free(arg3[i]);
    free(arg3);
  }
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate_info *)&jarg1; 
  helicsFederateInfoFree(arg1);
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_bool)helicsFederateIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetCoreName(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetCoreName(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetCoreInitString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetCoreInitString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetBrokerInitString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetBrokerInitString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetCoreType(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (int)jarg2; 
  helicsFederateInfoSetCoreType(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetCoreTypeFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetCoreTypeFromString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetBroker(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetBroker(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetBrokerKey(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetBrokerKey(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetBrokerPort(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (int)jarg2; 
  helicsFederateInfoSetBrokerPort(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetLocalPort(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateInfoSetLocalPort(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsGetPropertyIndex(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  char *arg1 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (int)helicsGetPropertyIndex((char const *)arg1);
  jresult = (jint)result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsGetFlagIndex(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  char *arg1 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (int)helicsGetFlagIndex((char const *)arg1);
  jresult = (jint)result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsGetOptionIndex(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  char *arg1 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (int)helicsGetOptionIndex((char const *)arg1);
  jresult = (jint)result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsGetOptionValue(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  char *arg1 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  result = (int)helicsGetOptionValue((char const *)arg1);
  jresult = (jint)result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetFlagOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  helics_bool arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (helics_bool)jarg3; 
  helicsFederateInfoSetFlagOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetSeparator(JNIEnv *jenv, jclass jcls, jlong jarg1, jchar jarg2) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  char arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (char)jarg2; 
  helicsFederateInfoSetSeparator(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetTimeProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jdouble jarg3) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  helics_time arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (helics_time)jarg3; 
  helicsFederateInfoSetTimeProperty(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateInfoSetIntegerProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_federate_info arg1 = (helics_federate_info) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate_info *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsFederateInfoSetIntegerProperty(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterInterfaces(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateRegisterInterfaces(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateGlobalError(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  char *arg3 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsFederateGlobalError(arg1,arg2,(char const *)arg3);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLocalError(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  char *arg3 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsFederateLocalError(arg1,arg2,(char const *)arg3);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateFinalize(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateFinalize(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateFinalizeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateFinalizeAsync(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateFinalizeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateFinalizeComplete(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateFree(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCloseLibrary(JNIEnv *jenv, jclass jcls) {
  (void)jenv;
  (void)jcls;
  helicsCloseLibrary();
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterInitializingMode(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterInitializingMode(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterInitializingModeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterInitializingModeAsync(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateIsAsyncOperationCompleted(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_bool)helicsFederateIsAsyncOperationCompleted(arg1,arg2);
  jresult = (jint)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterInitializingModeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterInitializingModeComplete(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingMode(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterExecutingMode(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingModeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterExecutingModeAsync(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingModeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateEnterExecutingModeComplete(arg1,arg2);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingModeIterative(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_iteration_request arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_iteration_result result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_iteration_request)jarg2; 
  result = (helics_iteration_result)helicsFederateEnterExecutingModeIterative(arg1,arg2,arg3);
  jresult = (jint)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingModeIterativeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_iteration_request arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_iteration_request)jarg2; 
  helicsFederateEnterExecutingModeIterativeAsync(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateEnterExecutingModeIterativeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_iteration_result result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_iteration_result)helicsFederateEnterExecutingModeIterativeComplete(arg1,arg2);
  jresult = (jint)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetState(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_federate_state result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_federate_state)helicsFederateGetState(arg1,arg2);
  jresult = (jint)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetCoreObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_core result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_core)helicsFederateGetCoreObject(arg1,arg2);
  *(helics_core *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  result = (helics_time)helicsFederateRequestTime(arg1,arg2,arg3);
  jresult = (jdouble)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeAdvance(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  result = (helics_time)helicsFederateRequestTimeAdvance(arg1,arg2,arg3);
  jresult = (jdouble)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestNextStep(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_time)helicsFederateRequestNextStep(arg1,arg2);
  jresult = (jdouble)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeIterative(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2, jint jarg3, jintArray jarg4) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_time arg2 ;
  helics_iteration_request arg3 ;
  helics_iteration_result *arg4 = (helics_iteration_result *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_iteration_result temp4 ;
  helics_error etemp5 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  arg3 = (helics_iteration_request)jarg3; 
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return 0;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return 0;
    }
    temp4 = (helics_iteration_result)0;
    arg4 = &temp4; 
  }
  result = (helics_time)helicsFederateRequestTimeIterative(arg1,arg2,arg3,arg4,arg5);
  jresult = (jdouble)result; 
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  helicsFederateRequestTimeAsync(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_time)helicsFederateRequestTimeComplete(arg1,arg2);
  jresult = (jdouble)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeIterativeAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2, jint jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  helics_time arg2 ;
  helics_iteration_request arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  arg3 = (helics_iteration_request)jarg3; 
  helicsFederateRequestTimeIterativeAsync(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateRequestTimeIterativeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jintArray jarg2) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_iteration_result *arg2 = (helics_iteration_result *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_iteration_result temp2 ;
  helics_error etemp3 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return 0;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return 0;
    }
    temp2 = (helics_iteration_result)0;
    arg2 = &temp2; 
  }
  result = (helics_time)helicsFederateRequestTimeIterativeComplete(arg1,arg2,arg3);
  jresult = (jdouble)result; 
  {
    jint jvalue = (jint)temp2;
    (*jenv)->SetIntArrayRegion(jenv, jarg2, 0, 1, &jvalue);
  }
  
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetName(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (char *)helicsFederateGetName(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetTimeProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jdouble jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_time arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (helics_time)jarg3; 
  helicsFederateSetTimeProperty(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetFlagOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_bool arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (helics_bool)jarg3; 
  helicsFederateSetFlagOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetSeparator(JNIEnv *jenv, jclass jcls, jlong jarg1, jchar jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (char)jarg2; 
  helicsFederateSetSeparator(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetIntegerProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsFederateSetIntegerProperty(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetTimeProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_time)helicsFederateGetTimeProperty(arg1,arg2,arg3);
  jresult = (jdouble)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetFlagOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_bool)helicsFederateGetFlagOption(arg1,arg2,arg3);
  jresult = (jint)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetIntegerProperty(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)helicsFederateGetIntegerProperty(arg1,arg2,arg3);
  jresult = (jint)result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetCurrentTime(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_time)helicsFederateGetCurrentTime(arg1,arg2);
  jresult = (jdouble)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetGlobal(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsFederateSetGlobal(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateAddDependency(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateAddDependency(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateSetLogFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateSetLogFile(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLogErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateLogErrorMessage(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLogWarningMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateLogWarningMessage(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLogInfoMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateLogInfoMessage(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLogDebugMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateLogDebugMessage(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateLogLevelMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsFederateLogLevelMessage(arg1,arg2,(char const *)arg3,arg4);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreSetGlobal(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsCoreSetGlobal(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerSetGlobal(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsBrokerSetGlobal(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCoreSetLogFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsCoreSetLogFile(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsBrokerSetLogFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_broker arg1 = (helics_broker) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_broker *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsBrokerSetLogFile(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCreateQuery(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  helics_query result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_query)helicsCreateQuery((char const *)arg1,(char const *)arg2);
  *(helics_query *)&jresult = result; 
  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsQueryExecute(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jstring jresult = 0 ;
  helics_query arg1 = (helics_query) 0 ;
  helics_federate arg2 = (helics_federate) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = *(helics_federate *)&jarg2; 
  result = (char *)helicsQueryExecute(arg1,arg2,arg3);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsQueryCoreExecute(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jstring jresult = 0 ;
  helics_query arg1 = (helics_query) 0 ;
  helics_core arg2 = (helics_core) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = *(helics_core *)&jarg2; 
  result = (char *)helicsQueryCoreExecute(arg1,arg2,arg3);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsQueryBrokerExecute(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jstring jresult = 0 ;
  helics_query arg1 = (helics_query) 0 ;
  helics_broker arg2 = (helics_broker) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = *(helics_broker *)&jarg2; 
  result = (char *)helicsQueryBrokerExecute(arg1,arg2,arg3);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsQueryExecuteAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_query arg1 = (helics_query) 0 ;
  helics_federate arg2 = (helics_federate) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = *(helics_federate *)&jarg2; 
  helicsQueryExecuteAsync(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsQueryExecuteComplete(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_query arg1 = (helics_query) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_query *)&jarg1; 
  result = (char *)helicsQueryExecuteComplete(arg1,arg2);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsQueryIsCompleted(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_query arg1 = (helics_query) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_query *)&jarg1; 
  result = (helics_bool)helicsQueryIsCompleted(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsQuerySetTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_query arg1 = (helics_query) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsQuerySetTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsQuerySetQueryString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_query arg1 = (helics_query) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_query *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsQuerySetQueryString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsQueryFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_query arg1 = (helics_query) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_query *)&jarg1; 
  helicsQueryFree(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsCleanupLibrary(JNIEnv *jenv, jclass jcls) {
  (void)jenv;
  (void)jcls;
  helicsCleanupLibrary();
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterSubscription(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_input)helicsFederateRegisterSubscription(arg1,(char const *)arg2,(char const *)arg3,arg4);
  *(helics_input *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterPublication(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_data_type arg3 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (helics_data_type)jarg3; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterPublication(arg1,(char const *)arg2,arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterTypePublication(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterTypePublication(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalPublication(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_data_type arg3 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (helics_data_type)jarg3; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterGlobalPublication(arg1,(char const *)arg2,arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalTypePublication(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterGlobalTypePublication(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_data_type arg3 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (helics_data_type)jarg3; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_input)helicsFederateRegisterInput(arg1,(char const *)arg2,arg3,(char const *)arg4,arg5);
  *(helics_input *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterTypeInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_input)helicsFederateRegisterTypeInput(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5);
  *(helics_input *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_data_type arg3 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (helics_data_type)jarg3; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterGlobalInput(arg1,(char const *)arg2,arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalTypeInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0);
    if (!arg4) return 0;
  }
  result = (helics_publication)helicsFederateRegisterGlobalTypeInput(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, (const char *)arg4);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetPublication(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_publication)helicsFederateGetPublication(arg1,(char const *)arg2,arg3);
  *(helics_publication *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetPublicationByIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_publication result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_publication)helicsFederateGetPublicationByIndex(arg1,arg2,arg3);
  *(helics_publication *)&jresult = result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_input)helicsFederateGetInput(arg1,(char const *)arg2,arg3);
  *(helics_input *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetInputByIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_input)helicsFederateGetInputByIndex(arg1,arg2,arg3);
  *(helics_input *)&jresult = result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetSubscription(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_input result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_input)helicsFederateGetSubscription(arg1,(char const *)arg2,arg3);
  *(helics_input *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateClearUpdates(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateClearUpdates(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterFromPublicationJSON(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederateRegisterFromPublicationJSON(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederatePublishJSON(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFederatePublishJSON(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsPublicationIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  result = (helics_bool)helicsPublicationIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishRaw(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) {
  helics_publication arg1 = (helics_publication) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  helicsPublicationPublishRaw(arg1,(void const *)arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsPublicationPublishString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishInteger(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  int64_t arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (int64_t)jarg2; 
  helicsPublicationPublishInteger(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishBoolean(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  helics_bool arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (helics_bool)jarg2; 
  helicsPublicationPublishBoolean(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  double arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (double)jarg2; 
  helicsPublicationPublishDouble(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  helicsPublicationPublishTime(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishChar(JNIEnv *jenv, jclass jcls, jlong jarg1, jchar jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  char arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (char)jarg2; 
  helicsPublicationPublishChar(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishComplex(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2, jdouble jarg3) {
  helics_publication arg1 = (helics_publication) 0 ;
  double arg2 ;
  double arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  helicsPublicationPublishComplex(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishVector(JNIEnv *jenv, jclass jcls, jlong jarg1, jdoubleArray jarg2, jint jarg3) {
  helics_publication arg1 = (helics_publication) 0 ;
  double *arg2 = (double *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  double temp2 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_publication *)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp2 = (double)0;
    arg2 = &temp2; 
  }
  arg3 = (int)jarg3; 
  helicsPublicationPublishVector(arg1,(double const *)arg2,arg3,arg4);
  {
    jdouble jvalue = (jdouble)temp2;
    (*jenv)->SetDoubleArrayRegion(jenv, jarg2, 0, 1, &jvalue);
  }
  
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationPublishNamedPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jdouble jarg3) {
  helics_publication arg1 = (helics_publication) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = (double)jarg3; 
  helicsPublicationPublishNamedPoint(arg1,(char const *)arg2,arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationAddTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsPublicationAddTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (helics_bool)helicsInputIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputAddTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsInputAddTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputGetRawValueSize(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (int)helicsInputGetRawValueSize(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputGetRawValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3, jintArray jarg4) {
  helics_input arg1 = (helics_input) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  int *arg4 = (int *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  int temp4 ;
  helics_error etemp5 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp4 = (int)0;
    arg4 = &temp4; 
  }
  helicsInputGetRawValue(arg1,arg2,arg3,arg4,arg5);
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputGetStringSize(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (int)helicsInputGetStringSize(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputGetString(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jintArray jarg4) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  int *arg4 = (int *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  int temp4 ;
  helics_error etemp5 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_input *)&jarg1; 
  {
    arg2 = (char*)(*jenv)->GetByteArrayElements(jenv, jarg2, 0);
    arg3 = (int)(*jenv)->GetArrayLength(jenv, jarg2);
  }
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp4 = (int)0;
    arg4 = &temp4; 
  }
  helicsInputGetString(arg1,arg2,arg3,arg4,arg5);
  {
    (*jenv)->ReleaseByteArrayElements(jenv, jarg2, (jbyte*)arg2, 0);
  }
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsInputGetInteger(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  int64_t result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = helicsInputGetInteger(arg1,arg2);
  jresult = (jlong)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputGetBoolean(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = (helics_bool)helicsInputGetBoolean(arg1,arg2);
  jresult = (jint)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsInputGetDouble(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = (double)helicsInputGetDouble(arg1,arg2);
  jresult = (jdouble)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsInputGetTime(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = (helics_time)helicsInputGetTime(arg1,arg2);
  jresult = (jdouble)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jchar JNICALL Java_com_java_helics_helicsJNI_helicsInputGetChar(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jchar jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  char result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = (char)helicsInputGetChar(arg1,arg2);
  jresult = (jchar)result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsInputGetComplexObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_complex result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_input *)&jarg1; 
  result = helicsInputGetComplexObject(arg1,arg2);
  {
    helics_complex * resultptr = (helics_complex *) malloc(sizeof(helics_complex));
    memmove(resultptr, &result, sizeof(helics_complex));
    *(helics_complex **)&jresult = resultptr;
  }
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputGetComplex(JNIEnv *jenv, jclass jcls, jlong jarg1, jdoubleArray jarg2, jdoubleArray jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  double *arg2 = (double *) 0 ;
  double *arg3 = (double *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  double temp2 ;
  double temp3 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp2 = (double)0;
    arg2 = &temp2; 
  }
  {
    if (!jarg3) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp3 = (double)0;
    arg3 = &temp3; 
  }
  helicsInputGetComplex(arg1,arg2,arg3,arg4);
  {
    jdouble jvalue = (jdouble)temp2;
    (*jenv)->SetDoubleArrayRegion(jenv, jarg2, 0, 1, &jvalue);
  }
  {
    jdouble jvalue = (jdouble)temp3;
    (*jenv)->SetDoubleArrayRegion(jenv, jarg3, 0, 1, &jvalue);
  }
  
  
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputGetVectorSize(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (int)helicsInputGetVectorSize(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputGetVector(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3, jintArray jarg4) {
  helics_input arg1 = (helics_input) 0 ;
  double *arg2 ;
  int arg3 ;
  int *arg4 = (int *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  int temp4 ;
  helics_error etemp5 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = *(double **)&jarg2; 
  arg3 = (int)jarg3; 
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp4 = (int)0;
    arg4 = &temp4; 
  }
  helicsInputGetVector(arg1,arg2,arg3,arg4,arg5);
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  
  
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputGetNamedPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jintArray jarg4, jdoubleArray jarg5) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  int *arg4 = (int *) 0 ;
  double *arg5 = (double *) 0 ;
  helics_error *arg6 = (helics_error *) 0 ;
  int temp4 ;
  double temp5 ;
  helics_error etemp6 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp6=helicsErrorInitialize();
    arg6=&etemp6;
  }
  arg1 = *(helics_input *)&jarg1; 
  {
    arg2 = (char*)(*jenv)->GetByteArrayElements(jenv, jarg2, 0);
    arg3 = (int)(*jenv)->GetArrayLength(jenv, jarg2);
  }
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp4 = (int)0;
    arg4 = &temp4; 
  }
  {
    if (!jarg5) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg5) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp5 = (double)0;
    arg5 = &temp5; 
  }
  helicsInputGetNamedPoint(arg1,arg2,arg3,arg4,arg5,arg6);
  {
    (*jenv)->ReleaseByteArrayElements(jenv, jarg2, (jbyte*)arg2, 0);
  }
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  {
    jdouble jvalue = (jdouble)temp5;
    (*jenv)->SetDoubleArrayRegion(jenv, jarg5, 0, 1, &jvalue);
  }
  
  
  {
    if (arg6->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg6->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultRaw(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  helicsInputSetDefaultRaw(arg1,(void const *)arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsInputSetDefaultString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultInteger(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  int64_t arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (int64_t)jarg2; 
  helicsInputSetDefaultInteger(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultBoolean(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  helics_bool arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (helics_bool)jarg2; 
  helicsInputSetDefaultBoolean(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  helicsInputSetDefaultTime(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultChar(JNIEnv *jenv, jclass jcls, jlong jarg1, jchar jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  char arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (char)jarg2; 
  helicsInputSetDefaultChar(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  double arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (double)jarg2; 
  helicsInputSetDefaultDouble(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultComplex(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2, jdouble jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  double arg2 ;
  double arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  helicsInputSetDefaultComplex(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultVector(JNIEnv *jenv, jclass jcls, jlong jarg1, jdoubleArray jarg2, jint jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  double *arg2 = (double *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  double temp2 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp2 = (double)0;
    arg2 = &temp2; 
  }
  arg3 = (int)jarg3; 
  helicsInputSetDefaultVector(arg1,(double const *)arg2,arg3,arg4);
  {
    jdouble jvalue = (jdouble)temp2;
    (*jenv)->SetDoubleArrayRegion(jenv, jarg2, 0, 1, &jvalue);
  }
  
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetDefaultNamedPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jdouble jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = (double)jarg3; 
  helicsInputSetDefaultNamedPoint(arg1,(char const *)arg2,arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetType(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetType(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetPublicationType(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetPublicationType(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsPublicationGetType(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  result = (char *)helicsPublicationGetType(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetKey(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsSubscriptionGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsSubscriptionGetKey(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsPublicationGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  result = (char *)helicsPublicationGetKey(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetUnits(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetUnits(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetInjectionUnits(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetInjectionUnits(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetExtractionUnits(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetExtractionUnits(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsPublicationGetUnits(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  result = (char *)helicsPublicationGetUnits(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsInputGetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (char *)helicsInputGetInfo(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsInputSetInfo(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsPublicationGetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  result = (char *)helicsPublicationGetInfo(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationSetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsPublicationSetInfo(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputGetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)helicsInputGetOption(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_input arg1 = (helics_input) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsInputSetOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsPublicationGetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_publication arg1 = (helics_publication) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)helicsPublicationGetOption(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationSetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_publication arg1 = (helics_publication) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsPublicationSetOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsPublicationSetMinimumChange(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_publication arg1 = (helics_publication) 0 ;
  double arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_publication *)&jarg1; 
  arg2 = (double)jarg2; 
  helicsPublicationSetMinimumChange(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputSetMinimumChange(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_input arg1 = (helics_input) 0 ;
  double arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_input *)&jarg1; 
  arg2 = (double)jarg2; 
  helicsInputSetMinimumChange(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsInputIsUpdated(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (helics_bool)helicsInputIsUpdated(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsInputLastUpdateTime(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_input arg1 = (helics_input) 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  result = (helics_time)helicsInputLastUpdateTime(arg1);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsInputClearUpdate(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_input arg1 = (helics_input) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_input *)&jarg1; 
  helicsInputClearUpdate(arg1);
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetPublicationCount(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (int)helicsFederateGetPublicationCount(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetInputCount(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (int)helicsFederateGetInputCount(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_endpoint result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_endpoint)helicsFederateRegisterEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  *(helics_endpoint *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_endpoint result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_endpoint)helicsFederateRegisterGlobalEndpoint(arg1,(char const *)arg2,(char const *)arg3,arg4);
  *(helics_endpoint *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_endpoint result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_endpoint)helicsFederateGetEndpoint(arg1,(char const *)arg2,arg3);
  *(helics_endpoint *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetEndpointByIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_endpoint result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_endpoint)helicsFederateGetEndpointByIndex(arg1,arg2,arg3);
  *(helics_endpoint *)&jresult = result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsEndpointIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (helics_bool)helicsEndpointIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSetDefaultDestination(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsEndpointSetDefaultDestination(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetDefaultDestination(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (char *)helicsEndpointGetDefaultDestination(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSendMessageRaw(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jlong jarg3, jint jarg4) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  int arg4 ;
  helics_error *arg5 = (helics_error *) 0 ;
  helics_error etemp5 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = *(void **)&jarg3; 
  arg4 = (int)jarg4; 
  helicsEndpointSendMessageRaw(arg1,(char const *)arg2,(void const *)arg3,arg4,arg5);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSendEventRaw(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jlong jarg3, jint jarg4, jdouble jarg5) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  int arg4 ;
  helics_time arg5 ;
  helics_error *arg6 = (helics_error *) 0 ;
  helics_error etemp6 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp6=helicsErrorInitialize();
    arg6=&etemp6;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = *(void **)&jarg3; 
  arg4 = (int)jarg4; 
  arg5 = (helics_time)jarg5; 
  helicsEndpointSendEventRaw(arg1,(char const *)arg2,(void const *)arg3,arg4,arg5,arg6);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg6->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg6->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSendMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_message *arg2 = (helics_message *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  (void)jarg2_;
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = *(helics_message **)&jarg2; 
  helicsEndpointSendMessage(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSendMessageObject(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_message_object arg2 = (helics_message_object) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = *(helics_message_object *)&jarg2; 
  helicsEndpointSendMessageObject(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSendMessageObjectZeroCopy(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_message_object arg2 = (helics_message_object) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = *(helics_message_object *)&jarg2; 
  helicsEndpointSendMessageObjectZeroCopy(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSubscribe(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsEndpointSubscribe(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateHasMessage(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_bool)helicsFederateHasMessage(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsEndpointHasMessage(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (helics_bool)helicsEndpointHasMessage(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederatePendingMessages(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (int)helicsFederatePendingMessages(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsEndpointPendingMessages(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (int)helicsEndpointPendingMessages(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetMessage(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_message result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = helicsEndpointGetMessage(arg1);
  {
    helics_message * resultptr = (helics_message *) malloc(sizeof(helics_message));
    memmove(resultptr, &result, sizeof(helics_message));
    *(helics_message **)&jresult = resultptr;
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetMessageObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_message_object result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (helics_message_object)helicsEndpointGetMessageObject(arg1);
  *(helics_message_object *)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsEndpointCreateMessageObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_message_object result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (helics_message_object)helicsEndpointCreateMessageObject(arg1,arg2);
  *(helics_message_object *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetMessage(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_message result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = helicsFederateGetMessage(arg1);
  {
    helics_message * resultptr = (helics_message *) malloc(sizeof(helics_message));
    memmove(resultptr, &result, sizeof(helics_message));
    *(helics_message **)&jresult = resultptr;
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetMessageObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_message_object result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_message_object)helicsFederateGetMessageObject(arg1);
  *(helics_message_object *)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateCreateMessageObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_message_object result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_federate *)&jarg1; 
  result = (helics_message_object)helicsFederateCreateMessageObject(arg1,arg2);
  *(helics_message_object *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFederateClearMessages(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_federate arg1 = (helics_federate) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  helicsFederateClearMessages(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointClearMessages(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  helicsEndpointClearMessages(arg1);
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetType(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (char *)helicsEndpointGetType(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetName(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (char *)helicsEndpointGetName(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetEndpointCount(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (int)helicsFederateGetEndpointCount(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  result = (char *)helicsEndpointGetInfo(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsEndpointSetInfo(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsEndpointSetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsEndpointSetOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsEndpointGetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_endpoint arg1 = (helics_endpoint) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_endpoint *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)helicsEndpointGetOption(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetSource(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (char *)helicsMessageGetSource(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetDestination(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (char *)helicsMessageGetDestination(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetOriginalSource(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (char *)helicsMessageGetOriginalSource(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetOriginalDestination(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (char *)helicsMessageGetOriginalDestination(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetTime(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jdouble jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  helics_time result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (helics_time)helicsMessageGetTime(arg1);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetString(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (char *)helicsMessageGetString(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetMessageID(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (int)helicsMessageGetMessageID(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsMessageCheckFlag(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  int arg2 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_bool)helicsMessageCheckFlag(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetRawDataSize(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (int)helicsMessageGetRawDataSize(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageGetRawData(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3, jintArray jarg4) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  int *arg4 = (int *) 0 ;
  helics_error *arg5 = (helics_error *) 0 ;
  int temp4 ;
  helics_error etemp5 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp5=helicsErrorInitialize();
    arg5=&etemp5;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    temp4 = (int)0;
    arg4 = &temp4; 
  }
  helicsMessageGetRawData(arg1,arg2,arg3,arg4,arg5);
  {
    jint jvalue = (jint)temp4;
    (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
  }
  
  {
    if (arg5->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg5->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsMessageIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  result = (helics_bool)helicsMessageIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetSource(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsMessageSetSource(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetDestination(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsMessageSetDestination(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetOriginalSource(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsMessageSetOriginalSource(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetOriginalDestination(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsMessageSetOriginalDestination(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jdouble jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  helics_time arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = (helics_time)jarg2; 
  helicsMessageSetTime(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageReserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = (int)jarg2; 
  helicsMessageReserve(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetMessageID(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  int32_t arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  int32_t *argp2 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  argp2 = *(int32_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null int32_t");
    return ;
  }
  arg2 = *argp2; 
  helicsMessageSetMessageID(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageClearFlags(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  helicsMessageClearFlags(arg1);
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetFlagOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  int arg2 ;
  helics_bool arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (helics_bool)jarg3; 
  helicsMessageSetFlagOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsMessageSetString(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageSetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  helicsMessageSetData(arg1,(void const *)arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageAppendData(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  void *arg2 = (void *) 0 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = *(void **)&jarg2; 
  arg3 = (int)jarg3; 
  helicsMessageAppendData(arg1,(void const *)arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageCopy(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  helics_message_object arg2 = (helics_message_object) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  arg2 = *(helics_message_object *)&jarg2; 
  helicsMessageCopy(arg1,arg2,arg3);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsMessageClone(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  helics_message_object arg1 = (helics_message_object) 0 ;
  helics_error *arg2 = (helics_error *) 0 ;
  helics_error etemp2 ;
  helics_message_object result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp2=helicsErrorInitialize();
    arg2=&etemp2;
  }
  arg1 = *(helics_message_object *)&jarg1; 
  result = (helics_message_object)helicsMessageClone(arg1,arg2);
  *(helics_message_object *)&jresult = result; 
  {
    if (arg2->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg2->message);
    }
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsMessageFree(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  helics_message_object arg1 = (helics_message_object) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_message_object *)&jarg1; 
  helicsMessageFree(arg1);
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_filter_type arg2 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_filter_type)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_filter)helicsFederateRegisterFilter(arg1,arg2,(char const *)arg3,arg4);
  *(helics_filter *)&jresult = result; 
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  helics_filter_type arg2 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (helics_filter_type)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_filter)helicsFederateRegisterGlobalFilter(arg1,arg2,(char const *)arg3,arg4);
  *(helics_filter *)&jresult = result; 
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterCloningFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_filter)helicsFederateRegisterCloningFilter(arg1,(char const *)arg2,arg3);
  *(helics_filter *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateRegisterGlobalCloningFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_filter)helicsFederateRegisterGlobalCloningFilter(arg1,(char const *)arg2,arg3);
  *(helics_filter *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCoreRegisterFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  helics_filter_type arg2 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = (helics_filter_type)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return 0;
  }
  result = (helics_filter)helicsCoreRegisterFilter(arg1,arg2,(char const *)arg3,arg4);
  *(helics_filter *)&jresult = result; 
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsCoreRegisterCloningFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_core arg1 = (helics_core) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_core *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_filter)helicsCoreRegisterCloningFilter(arg1,(char const *)arg2,arg3);
  *(helics_filter *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetFilterCount(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_federate *)&jarg1; 
  result = (int)helicsFederateGetFilterCount(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return 0;
  }
  result = (helics_filter)helicsFederateGetFilter(arg1,(char const *)arg2,arg3);
  *(helics_filter *)&jresult = result; 
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_java_helics_helicsJNI_helicsFederateGetFilterByIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jlong jresult = 0 ;
  helics_federate arg1 = (helics_federate) 0 ;
  int arg2 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  helics_filter result;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_federate *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (helics_filter)helicsFederateGetFilterByIndex(arg1,arg2,arg3);
  *(helics_filter *)&jresult = result; 
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFilterIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jint jresult = 0 ;
  helics_filter arg1 = (helics_filter) 0 ;
  helics_bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_filter *)&jarg1; 
  result = (helics_bool)helicsFilterIsValid(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsFilterGetName(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_filter arg1 = (helics_filter) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_filter *)&jarg1; 
  result = (char *)helicsFilterGetName(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jdouble jarg3) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = (double)jarg3; 
  helicsFilterSet(arg1,(char const *)arg2,arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterSetString(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0);
    if (!arg3) return ;
  }
  helicsFilterSetString(arg1,(char const *)arg2,(char const *)arg3,arg4);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, (const char *)arg3);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterAddDestinationTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterAddDestinationTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterAddSourceTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterAddSourceTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterAddDeliveryEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterAddDeliveryEndpoint(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterRemoveTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterRemoveTarget(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterRemoveDeliveryEndpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterRemoveDeliveryEndpoint(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_java_helics_helicsJNI_helicsFilterGetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  helics_filter arg1 = (helics_filter) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_filter *)&jarg1; 
  result = (char *)helicsFilterGetInfo(arg1);
  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterSetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  helics_filter arg1 = (helics_filter) 0 ;
  char *arg2 = (char *) 0 ;
  helics_error *arg3 = (helics_error *) 0 ;
  helics_error etemp3 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp3=helicsErrorInitialize();
    arg3=&etemp3;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  helicsFilterSetInfo(arg1,(char const *)arg2,arg3);
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
  {
    if (arg3->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg3->message);
    }
  }
}


SWIGEXPORT void JNICALL Java_com_java_helics_helicsJNI_helicsFilterSetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) {
  helics_filter arg1 = (helics_filter) 0 ;
  int arg2 ;
  int arg3 ;
  helics_error *arg4 = (helics_error *) 0 ;
  helics_error etemp4 ;
  
  (void)jenv;
  (void)jcls;
  {
    etemp4=helicsErrorInitialize();
    arg4=&etemp4;
  }
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  helicsFilterSetOption(arg1,arg2,arg3,arg4);
  {
    if (arg4->error_code!=helics_ok)
    {
      jclass clazz = (*jenv)->FindClass(jenv, "java/lang/Exception");
      (*jenv)->ThrowNew(jenv, clazz, arg4->message);
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_java_helics_helicsJNI_helicsFilterGetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
  jint jresult = 0 ;
  helics_filter arg1 = (helics_filter) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(helics_filter *)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)helicsFilterGetOption(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


#ifdef __cplusplus
}
#endif

