/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.6
 * 
 * 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. 
 * ----------------------------------------------------------------------------- */

#define SWIGCSHARP
#define SWIG_DIRECTORS


#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#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 (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#  ifndef GCC_HASCLASSVISIBILITY
#    define GCC_HASCLASSVISIBILITY
#  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



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


/* Support for throwing C# exceptions from C/C++. There are two types: 
 * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */
typedef enum {
  SWIG_CSharpApplicationException,
  SWIG_CSharpArithmeticException,
  SWIG_CSharpDivideByZeroException,
  SWIG_CSharpIndexOutOfRangeException,
  SWIG_CSharpInvalidCastException,
  SWIG_CSharpInvalidOperationException,
  SWIG_CSharpIOException,
  SWIG_CSharpNullReferenceException,
  SWIG_CSharpOutOfMemoryException,
  SWIG_CSharpOverflowException,
  SWIG_CSharpSystemException
} SWIG_CSharpExceptionCodes;

typedef enum {
  SWIG_CSharpArgumentException,
  SWIG_CSharpArgumentNullException,
  SWIG_CSharpArgumentOutOfRangeException
} SWIG_CSharpExceptionArgumentCodes;

typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *);
typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *);

typedef struct {
  SWIG_CSharpExceptionCodes code;
  SWIG_CSharpExceptionCallback_t callback;
} SWIG_CSharpException_t;

typedef struct {
  SWIG_CSharpExceptionArgumentCodes code;
  SWIG_CSharpExceptionArgumentCallback_t callback;
} SWIG_CSharpExceptionArgument_t;

static SWIG_CSharpException_t SWIG_csharp_exceptions[] = {
  { SWIG_CSharpApplicationException, NULL },
  { SWIG_CSharpArithmeticException, NULL },
  { SWIG_CSharpDivideByZeroException, NULL },
  { SWIG_CSharpIndexOutOfRangeException, NULL },
  { SWIG_CSharpInvalidCastException, NULL },
  { SWIG_CSharpInvalidOperationException, NULL },
  { SWIG_CSharpIOException, NULL },
  { SWIG_CSharpNullReferenceException, NULL },
  { SWIG_CSharpOutOfMemoryException, NULL },
  { SWIG_CSharpOverflowException, NULL },
  { SWIG_CSharpSystemException, NULL }
};

static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = {
  { SWIG_CSharpArgumentException, NULL },
  { SWIG_CSharpArgumentNullException, NULL },
  { SWIG_CSharpArgumentOutOfRangeException, NULL }
};

static void SWIGUNUSED SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
  SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
  if ((size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
    callback = SWIG_csharp_exceptions[code].callback;
  }
  callback(msg);
}

static void SWIGUNUSED SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
  SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
  if ((size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) {
    callback = SWIG_csharp_exceptions_argument[code].callback;
  }
  callback(msg, param_name);
}


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_libsbml(
                                                SWIG_CSharpExceptionCallback_t applicationCallback,
                                                SWIG_CSharpExceptionCallback_t arithmeticCallback,
                                                SWIG_CSharpExceptionCallback_t divideByZeroCallback, 
                                                SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, 
                                                SWIG_CSharpExceptionCallback_t invalidCastCallback,
                                                SWIG_CSharpExceptionCallback_t invalidOperationCallback,
                                                SWIG_CSharpExceptionCallback_t ioCallback,
                                                SWIG_CSharpExceptionCallback_t nullReferenceCallback,
                                                SWIG_CSharpExceptionCallback_t outOfMemoryCallback, 
                                                SWIG_CSharpExceptionCallback_t overflowCallback, 
                                                SWIG_CSharpExceptionCallback_t systemCallback) {
  SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback;
  SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback;
  SWIG_csharp_exceptions[SWIG_CSharpInvalidCastException].callback = invalidCastCallback;
  SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback;
  SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback;
  SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback;
}

#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_libsbml(
                                                SWIG_CSharpExceptionArgumentCallback_t argumentCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) {
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback;
}


/* Callback for returning strings to C# without leaking memory */
typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *);
static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL;


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_libsbml(SWIG_CSharpStringHelperCallback callback) {
  SWIG_csharp_string_callback = callback;
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else

/*  Errors in SWIG */
#define  SWIG_UnknownError    	   -1 
#define  SWIG_IOError        	   -2 
#define  SWIG_RuntimeError   	   -3 
#define  SWIG_IndexError     	   -4 
#define  SWIG_TypeError      	   -5 
#define  SWIG_DivisionByZero 	   -6 
#define  SWIG_OverflowError  	   -7 
#define  SWIG_SyntaxError    	   -8 
#define  SWIG_ValueError     	   -9 
#define  SWIG_SystemError    	   -10
#define  SWIG_AttributeError 	   -11
#define  SWIG_MemoryError    	   -12 
#define  SWIG_NullReferenceError   -13




/* Callback for returning strings to C# without leaking memory */
typedef void * (SWIGSTDCALL* SWIG_CSharpWStringHelperCallback)(const wchar_t *);
static SWIG_CSharpWStringHelperCallback SWIG_csharp_wstring_callback = NULL;


#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterWStringCallback_libsbml(SWIG_CSharpWStringHelperCallback callback) {
  SWIG_csharp_wstring_callback = callback;
}


  // Code to handle throwing of C# CustomApplicationException from C/C++ code.
  // The equivalent delegate to the callback, CSharpExceptionCallback_t, is CustomExceptionDelegate
  // and the equivalent customExceptionCallback instance is customDelegate
  typedef void (SWIGSTDCALL* CSharpExceptionCallback_t)(const char *, int);
  CSharpExceptionCallback_t customExceptionCallback = NULL;

  extern "C" SWIGEXPORT
  void SWIGSTDCALL CustomExceptionRegisterCallback(CSharpExceptionCallback_t customCallback) {
    customExceptionCallback = customCallback;
  }

  // Note that SWIG detects any method calls named starting with
  // SWIG_CSharpSetPendingException for warning 845
  static void SWIG_CSharpSetPendingExceptionCustom(const char *msg, int type) {
    customExceptionCallback(msg, type);
  }

/* -----------------------------------------------------------------------------
 * director.swg
 *
 * This file contains support for director classes so that C# proxy 
 * methods can be called from C++.
 * ----------------------------------------------------------------------------- */

#ifdef __cplusplus

#if defined(DEBUG_DIRECTOR_OWNED)
#include <iostream>
#endif
#include <string>

namespace Swig {
  /* Director base class - not currently used in C# directors */
  class Director {
  };

  /* Base class for director exceptions */
  class DirectorException {
  protected:
    std::string swig_msg;

  public:
    DirectorException(const char* msg) : swig_msg(msg) {
    }
    DirectorException(const std::string &msg) : swig_msg(msg) {
    }
    const std::string& what() const {
      return swig_msg;
    }
    virtual ~DirectorException() {
    }
  };

  /* Pure virtual method exception */
  class DirectorPureVirtualException : public Swig::DirectorException {
  public:
    DirectorPureVirtualException(const char* msg) : DirectorException(std::string("Attempt to invoke pure virtual method ") + msg) {
    }
  };
}

#endif /* __cplusplus */



#include "libsbml.h"

LIBSBML_CPP_NAMESPACE_USE

#include "../swig/libsbml-packages.h"
	
#include "local.cpp"


#include <string>


#include <string>


SWIGINTERN void SWIG_CSharpException(int code, const char *msg) {
  if (code == SWIG_ValueError) {
    SWIG_CSharpExceptionArgumentCodes exception_code = SWIG_CSharpArgumentOutOfRangeException;
    SWIG_CSharpSetPendingExceptionArgument(exception_code, msg, 0);
  } else {
    SWIG_CSharpExceptionCodes exception_code = SWIG_CSharpApplicationException;
    switch(code) {
    case SWIG_MemoryError:
      exception_code = SWIG_CSharpOutOfMemoryException;
      break;
    case SWIG_IndexError:
      exception_code = SWIG_CSharpIndexOutOfRangeException;
      break;
    case SWIG_DivisionByZero:
      exception_code = SWIG_CSharpDivideByZeroException;
      break;
    case SWIG_IOError:
      exception_code = SWIG_CSharpIOException;
      break;
    case SWIG_OverflowError:
      exception_code = SWIG_CSharpOverflowException;
      break;
    case SWIG_RuntimeError:
    case SWIG_TypeError:
    case SWIG_SyntaxError:
    case SWIG_SystemError:
    case SWIG_UnknownError:
    default:
      exception_code = SWIG_CSharpApplicationException;
      break;
    }
    SWIG_CSharpSetPendingException(exception_code, msg);
  }
}


#include <stdexcept>


#include "OStream.cpp"

SWIGINTERN ListWrapper< SBase > *SBase_getListOfAllElements__SWIG_0(SBase *self,ElementFilter *filter=NULL){
		List* list = self->getAllElements(filter);
		return new ListWrapper<SBase>(list);
	}
SWIGINTERN ListWrapper< SBase > *SBase_getListOfAllElementsFromPlugins__SWIG_0(SBase *self,ElementFilter *filter=NULL){
		List* list = self->getAllElementsFromPlugins(filter);
		return new ListWrapper<SBase>(list);
	}
SWIGINTERN void Model_renameIDs(Model *self,ListWrapper< SBase > *elements,IdentifierTransformer *idTransformer){
		if (!elements) return;

		List *list = elements->getList();
		self->renameIDs(list, idTransformer);
   }
SWIGINTERN void RDFAnnotationParser_parseRDFAnnotation__SWIG_3(XMLNode const *annotation,ListWrapper< CVTerm > *CVTerms){
    if (!CVTerms) return;

    List *list = CVTerms->getList();
    RDFAnnotationParser::parseRDFAnnotation(annotation,list);
  }
SWIGINTERN void RDFAnnotationParser_parseRDFAnnotation__SWIG_4(XMLNode const *annotation,ListWrapper< CVTerm > *CVTerms,char const *metaId=NULL,XMLInputStream *stream=NULL){
    if (!CVTerms) return;

    List *list = CVTerms->getList();
    RDFAnnotationParser::parseRDFAnnotation(annotation,list, metaId, stream);
  }
SWIGINTERN ListWrapper< SBase > *SBasePlugin_getListOfAllElements__SWIG_0(SBasePlugin *self,ElementFilter *filter=NULL){
		List* list = self->getAllElements(filter);
		return new ListWrapper<SBase>(list);
	}


#include <sbml/common/libsbml-config-common.h>

#ifndef LIBSBML_USE_LEGACY_MATH

#include <sbml/math/ASTTypes.h>
#include <sbml/math/ASTBase.h>
//#include <sbml/math/ASTBinaryFunctionNode.h>
//#include <sbml/math/ASTCiFunctionNode.h>
//#include <sbml/math/ASTCiNumberNode.h>
//#include <sbml/math/ASTCnBase.h>
//#include <sbml/math/ASTCnExponentialNode.h>
//#include <sbml/math/ASTCnIntegerNode.h>
//#include <sbml/math/ASTCnRationalNode.h>
//#include <sbml/math/ASTCnRealNode.h>
//#include <sbml/math/ASTConstantNumberNode.h>
//#include <sbml/math/ASTCSymbol.h>
//#include <sbml/math/ASTCSymbolAvogadroNode.h>
//#include <sbml/math/ASTCSymbolDelayNode.h>
//#include <sbml/math/ASTCSymbolTimeNode.h>
//#include <sbml/math/ASTFunction.h>
//#include <sbml/math/ASTFunctionBase.h>
//#include <sbml/math/ASTLambdaFunctionNode.h>
//#include <sbml/math/ASTNaryFunctionNode.h>
//#include <sbml/math/ASTNumber.h>
//#include <sbml/math/ASTPiecewiseFunctionNode.h>
//#include <sbml/math/ASTQualifierNode.h>
//#include <sbml/math/ASTSemanticsNode.h>
//#include <sbml/math/ASTUnaryFunctionNode.h>

#include <sbml/math/ASTNode.h>
#include <sbml/math/MathML.h>
#include <sbml/math/L3FormulaFormatter.h>
#include <sbml/math/FormulaFormatter.h>
#include <sbml/math/FormulaParser.h>
#include <sbml/math/L3Parser.h>
#include <sbml/math/L3ParserSettings.h>

#else

#ifdef LIBSBML_COMPILED_IN_SRC

#include <sbml/math-legacy/ASTNode.h>
#include <sbml/math-legacy/MathML.h>
#include <sbml/math-legacy/L3FormulaFormatter.h>
#include <sbml/math-legacy/FormulaFormatter.h>
#include <sbml/math-legacy/FormulaParser.h>
#include <sbml/math-legacy/L3Parser.h>
#include <sbml/math-legacy/L3ParserSettings.h>

#else 

#include <sbml/math/ASTNode.h>
#include <sbml/math/MathML.h>
#include <sbml/math/L3FormulaFormatter.h>
#include <sbml/math/FormulaFormatter.h>
#include <sbml/math/FormulaParser.h>
#include <sbml/math/L3Parser.h>
#include <sbml/math/L3ParserSettings.h>

#endif

#endif



SWIGINTERN ListWrapper< ASTNode > *ASTNode_getListOfNodes(ASTNode *self){
    List *list = self->getListOfNodes(ASTNode_true);
    return new ListWrapper<ASTNode>(list);
  }


/* ---------------------------------------------------
 * C++ director class methods
 * --------------------------------------------------- */

#include "libsbml_wrap-win.h"

SwigDirector_IdentifierTransformer::SwigDirector_IdentifierTransformer() : IdentifierTransformer(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_IdentifierTransformer::~SwigDirector_IdentifierTransformer() {
  
}


int SwigDirector_IdentifierTransformer::transform(SBase *element) {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  void * jelement = 0 ;
  
  if (!swig_callbacktransform) {
    return IdentifierTransformer::transform(element);
  } else {
    jelement = (void *) element; 
    jresult = (int) swig_callbacktransform(jelement);
    c_result = (int)jresult; 
  }
  return c_result;
}

void SwigDirector_IdentifierTransformer::swig_connect_director(SWIG_Callback0_t callbacktransform) {
  swig_callbacktransform = callbacktransform;
}

void SwigDirector_IdentifierTransformer::swig_init_callbacks() {
  swig_callbacktransform = 0;
}

SwigDirector_ElementFilter::SwigDirector_ElementFilter() : ElementFilter(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_ElementFilter::~SwigDirector_ElementFilter() {
  
}


bool SwigDirector_ElementFilter::filter(SBase const *element) {
  bool c_result = SwigValueInit< bool >() ;
  unsigned int jresult = 0 ;
  void * jelement = 0 ;
  
  if (!swig_callbackfilter) {
    return ElementFilter::filter(element);
  } else {
    jelement = (void *) element; 
    jresult = (unsigned int) swig_callbackfilter(jelement);
    c_result = jresult ? true : false; 
  }
  return c_result;
}

void SwigDirector_ElementFilter::swig_connect_director(SWIG_Callback0_t callbackfilter) {
  swig_callbackfilter = callbackfilter;
}

void SwigDirector_ElementFilter::swig_init_callbacks() {
  swig_callbackfilter = 0;
}

SwigDirector_SBMLConverter::SwigDirector_SBMLConverter() : SBMLConverter(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_SBMLConverter::SwigDirector_SBMLConverter(std::string const &name) : SBMLConverter(name), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_SBMLConverter::SwigDirector_SBMLConverter(SBMLConverter const &orig) : SBMLConverter(orig), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_SBMLConverter::~SwigDirector_SBMLConverter() {
  
}


SBMLConverter *SwigDirector_SBMLConverter::clone() const {
  SBMLConverter *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackclone) {
    return SBMLConverter::clone();
  } else {
    jresult = (void *) swig_callbackclone();
    c_result = (SBMLConverter *)jresult; 
  }
  return c_result;
}

SBMLDocument *SwigDirector_SBMLConverter::getDocument() {
  SBMLDocument *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetDocument__SWIG_0) {
    return SBMLConverter::getDocument();
  } else {
    jresult = (void *) swig_callbackgetDocument__SWIG_0();
    c_result = (SBMLDocument *)jresult; 
  }
  return c_result;
}

SBMLDocument const *SwigDirector_SBMLConverter::getDocument() const {
  SBMLDocument *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetDocument__SWIG_1) {
    return SBMLConverter::getDocument();
  } else {
    jresult = (void *) swig_callbackgetDocument__SWIG_1();
    c_result = (SBMLDocument *)jresult; 
  }
  return (SBMLDocument const *)c_result;
}

ConversionProperties SwigDirector_SBMLConverter::getDefaultProperties() const {
  ConversionProperties c_result ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetDefaultProperties) {
    return SBMLConverter::getDefaultProperties();
  } else {
    jresult = (void *) swig_callbackgetDefaultProperties();
    if (!jresult) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Unexpected null return for type ConversionProperties", 0);
      return c_result;
    }
    c_result = *(ConversionProperties *)jresult; 
  }
  return c_result;
}

SBMLNamespaces *SwigDirector_SBMLConverter::getTargetNamespaces() {
  SBMLNamespaces *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetTargetNamespaces) {
    return SBMLConverter::getTargetNamespaces();
  } else {
    jresult = (void *) swig_callbackgetTargetNamespaces();
    c_result = (SBMLNamespaces *)jresult; 
  }
  return c_result;
}

bool SwigDirector_SBMLConverter::matchesProperties(ConversionProperties const &props) const {
  bool c_result = SwigValueInit< bool >() ;
  unsigned int jresult = 0 ;
  void * jprops = 0 ;
  
  if (!swig_callbackmatchesProperties) {
    return SBMLConverter::matchesProperties(props);
  } else {
    jprops = (ConversionProperties *) &props; 
    jresult = (unsigned int) swig_callbackmatchesProperties(jprops);
    c_result = jresult ? true : false; 
  }
  return c_result;
}

int SwigDirector_SBMLConverter::setDocument(SBMLDocument const *doc) {
  return SBMLConverter::setDocument(doc);
}

int SwigDirector_SBMLConverter::setDocument(SBMLDocument *doc) {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  void * jdoc = 0 ;
  
  if (!swig_callbacksetDocument) {
    return SBMLConverter::setDocument(doc);
  } else {
    jdoc = (void *) doc; 
    jresult = (int) swig_callbacksetDocument(jdoc);
    c_result = (int)jresult; 
  }
  return c_result;
}

int SwigDirector_SBMLConverter::setProperties(ConversionProperties const *props) {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  void * jprops = 0 ;
  
  if (!swig_callbacksetProperties) {
    return SBMLConverter::setProperties(props);
  } else {
    jprops = (void *) props; 
    jresult = (int) swig_callbacksetProperties(jprops);
    c_result = (int)jresult; 
  }
  return c_result;
}

ConversionProperties *SwigDirector_SBMLConverter::getProperties() const {
  ConversionProperties *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetProperties) {
    return SBMLConverter::getProperties();
  } else {
    jresult = (void *) swig_callbackgetProperties();
    c_result = (ConversionProperties *)jresult; 
  }
  return c_result;
}

int SwigDirector_SBMLConverter::convert() {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  
  if (!swig_callbackconvert) {
    return SBMLConverter::convert();
  } else {
    jresult = (int) swig_callbackconvert();
    c_result = (int)jresult; 
  }
  return c_result;
}

void SwigDirector_SBMLConverter::swig_connect_director(SWIG_Callback0_t callbackclone, SWIG_Callback1_t callbackgetDocument__SWIG_0, SWIG_Callback2_t callbackgetDocument__SWIG_1, SWIG_Callback3_t callbackgetDefaultProperties, SWIG_Callback4_t callbackgetTargetNamespaces, SWIG_Callback5_t callbackmatchesProperties, SWIG_Callback6_t callbacksetDocument, SWIG_Callback7_t callbacksetProperties, SWIG_Callback8_t callbackgetProperties, SWIG_Callback9_t callbackconvert) {
  swig_callbackclone = callbackclone;
  swig_callbackgetDocument__SWIG_0 = callbackgetDocument__SWIG_0;
  swig_callbackgetDocument__SWIG_1 = callbackgetDocument__SWIG_1;
  swig_callbackgetDefaultProperties = callbackgetDefaultProperties;
  swig_callbackgetTargetNamespaces = callbackgetTargetNamespaces;
  swig_callbackmatchesProperties = callbackmatchesProperties;
  swig_callbacksetDocument = callbacksetDocument;
  swig_callbacksetProperties = callbacksetProperties;
  swig_callbackgetProperties = callbackgetProperties;
  swig_callbackconvert = callbackconvert;
}

void SwigDirector_SBMLConverter::swig_init_callbacks() {
  swig_callbackclone = 0;
  swig_callbackgetDocument__SWIG_0 = 0;
  swig_callbackgetDocument__SWIG_1 = 0;
  swig_callbackgetDefaultProperties = 0;
  swig_callbackgetTargetNamespaces = 0;
  swig_callbackmatchesProperties = 0;
  swig_callbacksetDocument = 0;
  swig_callbacksetProperties = 0;
  swig_callbackgetProperties = 0;
  swig_callbackconvert = 0;
}

SwigDirector_SBMLValidator::SwigDirector_SBMLValidator() : SBMLValidator(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_SBMLValidator::SwigDirector_SBMLValidator(SBMLValidator const &orig) : SBMLValidator(orig), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_SBMLValidator::~SwigDirector_SBMLValidator() {
  
}


SBMLValidator *SwigDirector_SBMLValidator::clone() const {
  SBMLValidator *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackclone) {
    return SBMLValidator::clone();
  } else {
    jresult = (void *) swig_callbackclone();
    c_result = (SBMLValidator *)jresult; 
  }
  return c_result;
}

SBMLDocument *SwigDirector_SBMLValidator::getDocument() {
  SBMLDocument *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetDocument__SWIG_0) {
    return SBMLValidator::getDocument();
  } else {
    jresult = (void *) swig_callbackgetDocument__SWIG_0();
    c_result = (SBMLDocument *)jresult; 
  }
  return c_result;
}

SBMLDocument const *SwigDirector_SBMLValidator::getDocument() const {
  SBMLDocument *c_result = 0 ;
  void * jresult = 0 ;
  
  if (!swig_callbackgetDocument__SWIG_1) {
    return SBMLValidator::getDocument();
  } else {
    jresult = (void *) swig_callbackgetDocument__SWIG_1();
    c_result = (SBMLDocument *)jresult; 
  }
  return (SBMLDocument const *)c_result;
}

int SwigDirector_SBMLValidator::setDocument(SBMLDocument const *doc) {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  void * jdoc = 0 ;
  
  if (!swig_callbacksetDocument) {
    return SBMLValidator::setDocument(doc);
  } else {
    jdoc = (void *) doc; 
    jresult = (int) swig_callbacksetDocument(jdoc);
    c_result = (int)jresult; 
  }
  return c_result;
}

unsigned int SwigDirector_SBMLValidator::validate() {
  unsigned int c_result = SwigValueInit< unsigned int >() ;
  long long jresult = 0 ;
  
  if (!swig_callbackvalidate__SWIG_0) {
    return SBMLValidator::validate();
  } else {
    jresult = (long long) swig_callbackvalidate__SWIG_0();
    c_result = (unsigned int)jresult; 
  }
  return c_result;
}

void SwigDirector_SBMLValidator::clearFailures() {
  if (!swig_callbackclearFailures) {
    SBMLValidator::clearFailures();
    return;
  } else {
    swig_callbackclearFailures();
  }
}

void SwigDirector_SBMLValidator::swig_connect_director(SWIG_Callback0_t callbackclone, SWIG_Callback1_t callbackgetDocument__SWIG_0, SWIG_Callback2_t callbackgetDocument__SWIG_1, SWIG_Callback3_t callbacksetDocument, SWIG_Callback4_t callbackvalidate__SWIG_0, SWIG_Callback5_t callbackclearFailures) {
  swig_callbackclone = callbackclone;
  swig_callbackgetDocument__SWIG_0 = callbackgetDocument__SWIG_0;
  swig_callbackgetDocument__SWIG_1 = callbackgetDocument__SWIG_1;
  swig_callbacksetDocument = callbacksetDocument;
  swig_callbackvalidate__SWIG_0 = callbackvalidate__SWIG_0;
  swig_callbackclearFailures = callbackclearFailures;
}

void SwigDirector_SBMLValidator::swig_init_callbacks() {
  swig_callbackclone = 0;
  swig_callbackgetDocument__SWIG_0 = 0;
  swig_callbackgetDocument__SWIG_1 = 0;
  swig_callbacksetDocument = 0;
  swig_callbackvalidate__SWIG_0 = 0;
  swig_callbackclearFailures = 0;
}


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelCreatorList() {
  void * jresult ;
  ListWrapper< ModelCreator > *result = 0 ;
  
  result = (ListWrapper< ModelCreator > *)new ListWrapper< ModelCreator >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ModelCreatorList(void * jarg1) {
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ModelCreatorList_add(void * jarg1, void * jarg2) {
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  ModelCreator *arg2 = (ModelCreator *) 0 ;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  arg2 = (ModelCreator *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelCreatorList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  unsigned int arg2 ;
  ModelCreator *result = 0 ;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (ModelCreator *)((ListWrapper< ModelCreator > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ModelCreatorList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  ModelCreator *arg2 = (ModelCreator *) 0 ;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  arg2 = (ModelCreator *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelCreatorList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  unsigned int arg2 ;
  ModelCreator *result = 0 ;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (ModelCreator *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreatorList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< ModelCreator > *arg1 = (ListWrapper< ModelCreator > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< ModelCreator > *)jarg1; 
  result = (unsigned int)((ListWrapper< ModelCreator > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_DateList() {
  void * jresult ;
  ListWrapper< Date > *result = 0 ;
  
  result = (ListWrapper< Date > *)new ListWrapper< Date >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_DateList(void * jarg1) {
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_DateList_add(void * jarg1, void * jarg2) {
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  Date *arg2 = (Date *) 0 ;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  arg2 = (Date *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_DateList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  unsigned int arg2 ;
  Date *result = 0 ;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (Date *)((ListWrapper< Date > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_DateList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  Date *arg2 = (Date *) 0 ;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  arg2 = (Date *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_DateList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  unsigned int arg2 ;
  Date *result = 0 ;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (Date *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_DateList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< Date > *arg1 = (ListWrapper< Date > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< Date > *)jarg1; 
  result = (unsigned int)((ListWrapper< Date > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CVTermList() {
  void * jresult ;
  ListWrapper< CVTerm > *result = 0 ;
  
  result = (ListWrapper< CVTerm > *)new ListWrapper< CVTerm >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CVTermList(void * jarg1) {
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_CVTermList_add(void * jarg1, void * jarg2) {
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  CVTerm *arg2 = (CVTerm *) 0 ;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  arg2 = (CVTerm *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTermList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  unsigned int arg2 ;
  CVTerm *result = 0 ;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (CVTerm *)((ListWrapper< CVTerm > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_CVTermList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  CVTerm *arg2 = (CVTerm *) 0 ;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  arg2 = (CVTerm *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTermList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  unsigned int arg2 ;
  CVTerm *result = 0 ;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (CVTerm *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CVTermList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< CVTerm > *arg1 = (ListWrapper< CVTerm > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< CVTerm > *)jarg1; 
  result = (unsigned int)((ListWrapper< CVTerm > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNodeList() {
  void * jresult ;
  ListWrapper< ASTNode > *result = 0 ;
  
  result = (ListWrapper< ASTNode > *)new ListWrapper< ASTNode >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ASTNodeList(void * jarg1) {
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNodeList_add(void * jarg1, void * jarg2) {
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNodeList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  unsigned int arg2 ;
  ASTNode *result = 0 ;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (ASTNode *)((ListWrapper< ASTNode > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNodeList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNodeList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  unsigned int arg2 ;
  ASTNode *result = 0 ;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (ASTNode *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNodeList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< ASTNode > *arg1 = (ListWrapper< ASTNode > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< ASTNode > *)jarg1; 
  result = (unsigned int)((ListWrapper< ASTNode > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespacesList() {
  void * jresult ;
  ListWrapper< SBMLNamespaces > *result = 0 ;
  
  result = (ListWrapper< SBMLNamespaces > *)new ListWrapper< SBMLNamespaces >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLNamespacesList(void * jarg1) {
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLNamespacesList_add(void * jarg1, void * jarg2) {
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLNamespacesList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  unsigned int arg2 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (SBMLNamespaces *)((ListWrapper< SBMLNamespaces > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLNamespacesList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLNamespacesList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  unsigned int arg2 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (SBMLNamespaces *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLNamespacesList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< SBMLNamespaces > *arg1 = (ListWrapper< SBMLNamespaces > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< SBMLNamespaces > *)jarg1; 
  result = (unsigned int)((ListWrapper< SBMLNamespaces > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBaseList() {
  void * jresult ;
  ListWrapper< SBase > *result = 0 ;
  
  result = (ListWrapper< SBase > *)new ListWrapper< SBase >();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBaseList(void * jarg1) {
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBaseList_add(void * jarg1, void * jarg2) {
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  arg2 = (SBase *)jarg2; 
  (arg1)->add(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBaseList_get(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  unsigned int arg2 ;
  SBase *result = 0 ;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (SBase *)((ListWrapper< SBase > const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBaseList_prepend(void * jarg1, void * jarg2) {
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  arg2 = (SBase *)jarg2; 
  (arg1)->prepend(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBaseList_remove(void * jarg1, unsigned int jarg2) {
  void * jresult ;
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  unsigned int arg2 ;
  SBase *result = 0 ;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (SBase *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBaseList_getSize(void * jarg1) {
  unsigned int jresult ;
  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
  unsigned int result;
  
  arg1 = (ListWrapper< SBase > *)jarg1; 
  result = (unsigned int)((ListWrapper< SBase > const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_OStream__SWIG_0(int jarg1) {
  void * jresult ;
  OStream::StdOSType arg1 ;
  OStream *result = 0 ;
  
  arg1 = (OStream::StdOSType)jarg1; 
  result = (OStream *)new OStream(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_OStream__SWIG_1() {
  void * jresult ;
  OStream *result = 0 ;
  
  result = (OStream *)new OStream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_OStream(void * jarg1) {
  OStream *arg1 = (OStream *) 0 ;
  
  arg1 = (OStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_OStream_get_ostream(void * jarg1) {
  void * jresult ;
  OStream *arg1 = (OStream *) 0 ;
  std::ostream *result = 0 ;
  
  arg1 = (OStream *)jarg1; 
  result = (std::ostream *)(arg1)->get_ostream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_OStream_endl(void * jarg1) {
  OStream *arg1 = (OStream *) 0 ;
  
  arg1 = (OStream *)jarg1; 
  (arg1)->endl();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_OFStream__SWIG_0(wchar_t* jarg1, unsigned int jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string arg_str1 ;
  OFStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  result = (OFStream *)new OFStream((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_OFStream__SWIG_1(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  OFStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (OFStream *)new OFStream((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_OFStream(void * jarg1) {
  OFStream *arg1 = (OFStream *) 0 ;
  
  arg1 = (OFStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_OFStream_open__SWIG_0(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  OFStream *arg1 = (OFStream *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  
  arg1 = (OFStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToACP(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  (arg1)->open((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_OFStream_open__SWIG_1(void * jarg1, wchar_t* jarg2) {
  OFStream *arg1 = (OFStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (OFStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToACP(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->open((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_OFStream_close(void * jarg1) {
  OFStream *arg1 = (OFStream *) 0 ;
  
  arg1 = (OFStream *)jarg1; 
  (arg1)->close();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OFStream_is_open(void * jarg1) {
  unsigned int jresult ;
  OFStream *arg1 = (OFStream *) 0 ;
  bool result;
  
  arg1 = (OFStream *)jarg1; 
  result = (bool)(arg1)->is_open();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_OStringStream() {
  void * jresult ;
  OStringStream *result = 0 ;
  
  result = (OStringStream *)new OStringStream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_OStringStream_str__SWIG_0(void * jarg1) {
  wchar_t* jresult ;
  OStringStream *arg1 = (OStringStream *) 0 ;
  std::string result;
  
  arg1 = (OStringStream *)jarg1; 
  result = (arg1)->str();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_OStringStream_str__SWIG_1(void * jarg1, wchar_t* jarg2) {
  OStringStream *arg1 = (OStringStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (OStringStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->str((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_OStringStream(void * jarg1) {
  OStringStream *arg1 = (OStringStream *) 0 ;
  
  arg1 = (OStringStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_getLibSBMLVersion() {
  int jresult ;
  int result;
  
  result = (int)getLibSBMLVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_getLibSBMLDottedVersion() {
  wchar_t* jresult ;
  char *result = 0 ;
  
  result = (char *)getLibSBMLDottedVersion();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_getLibSBMLVersionString() {
  wchar_t* jresult ;
  char *result = 0 ;
  
  result = (char *)getLibSBMLVersionString();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_isLibSBMLCompiledWith(wchar_t* jarg1) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  int result;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (int)isLibSBMLCompiledWith((char const *)arg1);
  jresult = result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_getLibSBMLDependencyVersionOf(wchar_t* jarg1) {
  wchar_t* jresult ;
  char *arg1 = (char *) 0 ;
  char *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (char *)getLibSBMLDependencyVersionOf((char const *)arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_OperationReturnValue_toString(int jarg1) {
  wchar_t* jresult ;
  int arg1 ;
  char *result = 0 ;
  
  arg1 = (int)jarg1; 
  result = (char *)OperationReturnValue_toString(arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IdList__SWIG_0() {
  void * jresult ;
  IdList *result = 0 ;
  
  result = (IdList *)new IdList();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IdList__SWIG_1(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  IdList *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (IdList *)new IdList((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IdList_append(void * jarg1, wchar_t* jarg2) {
  IdList *arg1 = (IdList *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (IdList *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->append((std::string const &)*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IdList_contains(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  IdList *arg1 = (IdList *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (IdList *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((IdList const *)arg1)->contains((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IdList_removeIdsBefore(void * jarg1, wchar_t* jarg2) {
  IdList *arg1 = (IdList *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (IdList *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->removeIdsBefore((std::string const &)*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IdList_size(void * jarg1) {
  unsigned int jresult ;
  IdList *arg1 = (IdList *) 0 ;
  unsigned int result;
  
  arg1 = (IdList *)jarg1; 
  result = (unsigned int)((IdList const *)arg1)->size();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IdList_clear(void * jarg1) {
  IdList *arg1 = (IdList *) 0 ;
  
  arg1 = (IdList *)jarg1; 
  (arg1)->clear();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_IdList_at(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  IdList *arg1 = (IdList *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (IdList *)jarg1; 
  arg2 = (int)jarg2; 
  result = (arg1)->at(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_IdList(void * jarg1) {
  IdList *arg1 = (IdList *) 0 ;
  
  arg1 = (IdList *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IdentifierTransformer() {
  void * jresult ;
  IdentifierTransformer *result = 0 ;
  
  result = (IdentifierTransformer *)new SwigDirector_IdentifierTransformer();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_IdentifierTransformer(void * jarg1) {
  IdentifierTransformer *arg1 = (IdentifierTransformer *) 0 ;
  
  arg1 = (IdentifierTransformer *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_IdentifierTransformer_transform(void * jarg1, void * jarg2) {
  int jresult ;
  IdentifierTransformer *arg1 = (IdentifierTransformer *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  int result;
  
  arg1 = (IdentifierTransformer *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (int)(arg1)->transform(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_IdentifierTransformer_transformSwigExplicitIdentifierTransformer(void * jarg1, void * jarg2) {
  int jresult ;
  IdentifierTransformer *arg1 = (IdentifierTransformer *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  int result;
  
  arg1 = (IdentifierTransformer *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (int)(arg1)->IdentifierTransformer::transform(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IdentifierTransformer_director_connect(void *objarg, SwigDirector_IdentifierTransformer::SWIG_Callback0_t callback0) {
  IdentifierTransformer *obj = (IdentifierTransformer *)objarg;
  SwigDirector_IdentifierTransformer *director = dynamic_cast<SwigDirector_IdentifierTransformer *>(obj);
  if (director) {
    director->swig_connect_director(callback0);
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ElementFilter() {
  void * jresult ;
  ElementFilter *result = 0 ;
  
  result = (ElementFilter *)new SwigDirector_ElementFilter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ElementFilter(void * jarg1) {
  ElementFilter *arg1 = (ElementFilter *) 0 ;
  
  arg1 = (ElementFilter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ElementFilter_filter(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ElementFilter *arg1 = (ElementFilter *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (ElementFilter *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)(arg1)->filter((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ElementFilter_filterSwigExplicitElementFilter(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ElementFilter *arg1 = (ElementFilter *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (ElementFilter *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)(arg1)->ElementFilter::filter((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ElementFilter_director_connect(void *objarg, SwigDirector_ElementFilter::SWIG_Callback0_t callback0) {
  ElementFilter *obj = (ElementFilter *)objarg;
  SwigDirector_ElementFilter *director = dynamic_cast<SwigDirector_ElementFilter *>(obj);
  if (director) {
    director->swig_connect_director(callback0);
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLReader() {
  void * jresult ;
  SBMLReader *result = 0 ;
  
  result = (SBMLReader *)new SBMLReader();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLReader(void * jarg1) {
  SBMLReader *arg1 = (SBMLReader *) 0 ;
  
  arg1 = (SBMLReader *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLReader_readSBML(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLReader *arg1 = (SBMLReader *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLReader *)jarg1; 
  {
    char*  mbstr = convertUnicodeToACP(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBMLDocument *)(arg1)->readSBML((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLReader_readSBMLFromFile(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLReader *arg1 = (SBMLReader *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLReader *)jarg1; 
  {
    char*  mbstr = convertUnicodeToACP(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBMLDocument *)(arg1)->readSBMLFromFile((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLReader_readSBMLFromString(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLReader *arg1 = (SBMLReader *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLReader *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBMLDocument *)(arg1)->readSBMLFromString((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLReader_hasZlib() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLReader::hasZlib();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLReader_hasBzip2() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLReader::hasBzip2();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_readSBML(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  SBMLDocument_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToACP(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (SBMLDocument_t *)readSBML((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_readSBMLFromFile(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  SBMLDocument_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToACP(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (SBMLDocument_t *)readSBMLFromFile((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_readSBMLFromString(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  SBMLDocument_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (SBMLDocument_t *)readSBMLFromString((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLWriter() {
  void * jresult ;
  SBMLWriter *result = 0 ;
  
  result = (SBMLWriter *)new SBMLWriter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLWriter(void * jarg1) {
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  
  arg1 = (SBMLWriter *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLWriter_setProgramName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLWriter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setProgramName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLWriter_setProgramVersion(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLWriter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setProgramVersion((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLWriter_writeSBML__SWIG_0(void * jarg1, void * jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (SBMLWriter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  {
    char*  mbstr = convertUnicodeToACP(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)(arg1)->writeSBML((SBMLDocument const *)arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLWriter_writeSBML__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
  unsigned int jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  std::ostream *arg3 = 0 ;
  bool result;
  
  arg1 = (SBMLWriter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  arg3 = (std::ostream *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  result = (bool)(arg1)->writeSBML((SBMLDocument const *)arg2,*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLWriter_writeToString(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  char *result = 0 ;
  
  arg1 = (SBMLWriter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (char *)(arg1)->writeToString((SBMLDocument const *)arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLWriter_writeSBMLToFile(void * jarg1, void * jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (SBMLWriter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  {
    char*  mbstr = convertUnicodeToACP(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)(arg1)->writeSBMLToFile((SBMLDocument const *)arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLWriter_writeSBMLToString(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  SBMLWriter *arg1 = (SBMLWriter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  char *result = 0 ;
  
  arg1 = (SBMLWriter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (char *)(arg1)->writeSBMLToString((SBMLDocument const *)arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLWriter_hasZlib() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLWriter::hasZlib();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLWriter_hasBzip2() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLWriter::hasBzip2();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_writeSBML(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBMLDocument_t *arg1 = (SBMLDocument_t *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  arg1 = (SBMLDocument_t *)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToACP(jarg2);
      if (!arg2) return 0;
    }
  }
  result = (int)writeSBML((SBMLDocument const *)arg1,(char const *)arg2);
  jresult = result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_writeSBMLToString(void * jarg1) {
  wchar_t* jresult ;
  SBMLDocument_t *arg1 = (SBMLDocument_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (SBMLDocument_t *)jarg1; 
  result = (char *)writeSBMLToString((SBMLDocument const *)arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_writeSBMLToFile(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBMLDocument_t *arg1 = (SBMLDocument_t *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  arg1 = (SBMLDocument_t *)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToACP(jarg2);
      if (!arg2) return 0;
    }
  }
  result = (int)writeSBMLToFile((SBMLDocument const *)arg1,(char const *)arg2);
  jresult = result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLTypeCode_toString(int jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  int arg1 ;
  char *arg2 = (char *) 0 ;
  char *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToUTF8(jarg2);
      if (!arg2) return 0;
    }
  }
  result = (char *)SBMLTypeCode_toString(arg1,(char const *)arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBase(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_clone(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (SBase *)((SBase const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getElementBySId__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getElementByMetaId__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_renameMetaIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameMetaIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getElementFromPluginsBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementFromPluginsBySId(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getElementFromPluginsByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementFromPluginsByMetaId(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasNonstandardIdentifierBeginningWith(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->hasNonstandardIdentifierBeginningWith((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_prependStringToAllIdentifiers(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->prependStringToAllIdentifiers((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_transformIdentifiers(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  IdentifierTransformer *arg2 = (IdentifierTransformer *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (IdentifierTransformer *)jarg2; 
  result = (int)(arg1)->transformIdentifiers(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getMetaId(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getMetaId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getId(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getIdAttribute(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getIdAttribute();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getName(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getNotes__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)(arg1)->getNotes();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getNotesString__SWIG_0(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = (arg1)->getNotesString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getAnnotation__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)(arg1)->getAnnotation();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getAnnotationString__SWIG_0(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = (arg1)->getAnnotationString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getNamespaces(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNamespaces *)((SBase const *)arg1)->getNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getSBMLDocument__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (SBMLDocument *)((SBase const *)arg1)->getSBMLDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getParentSBMLObject__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (SBase *)(arg1)->getParentSBMLObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getAncestorOfType__SWIG_0(void * jarg1, int jarg2, wchar_t* jarg3) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int arg2 ;
  std::string arg3 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (int)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getAncestorOfType(arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getAncestorOfType__SWIG_1(void * jarg1, int jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int arg2 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (int)jarg2; 
  result = (SBase *)(arg1)->getAncestorOfType(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_getSBOTerm(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)((SBase const *)arg1)->getSBOTerm();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getSBOTermID(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = ((SBase const *)arg1)->getSBOTermID();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getSBOTermAsURL(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = ((SBase const *)arg1)->getSBOTermAsURL();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getLine(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getLine();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getColumn(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getColumn();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getModelHistory__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (ModelHistory *)((SBase const *)arg1)->getModelHistory();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetMetaId(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetMetaId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetId(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetIdAttribute(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetIdAttribute();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetName(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetNotes(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetNotes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetAnnotation(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetAnnotation();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetSBOTerm(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetSBOTerm();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setMetaId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setMetaId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetModelHistory(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)(arg1)->isSetModelHistory();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setIdAttribute(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setIdAttribute((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->setAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_appendAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->appendAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_appendAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->appendAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_removeTopLevelAnnotationElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  bool arg4 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->removeTopLevelAnnotationElement(arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_removeTopLevelAnnotationElement__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->removeTopLevelAnnotationElement(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_removeTopLevelAnnotationElement__SWIG_2(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->removeTopLevelAnnotationElement(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_replaceTopLevelAnnotationElement__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->replaceTopLevelAnnotationElement((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_replaceTopLevelAnnotationElement__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->replaceTopLevelAnnotationElement((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setNotes__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->setNotes((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setNotes__SWIG_1(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->setNotes((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setNotes__SWIG_2(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setNotes((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_appendNotes__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->appendNotes((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_appendNotes__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->appendNotes((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setModelHistory(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ModelHistory *arg2 = (ModelHistory *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (ModelHistory *)jarg2; 
  result = (int)(arg1)->setModelHistory(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_connectToParent(void * jarg1, void * jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (SBase *)jarg2; 
  (arg1)->connectToParent(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_connectToChild(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setSBOTerm__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setSBOTerm(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setSBOTerm__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSBOTerm((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_setNamespaces(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  result = (int)(arg1)->setNamespaces(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetMetaId(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetMetaId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetId(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetIdAttribute(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetIdAttribute();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetName(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetNotes(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetNotes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetAnnotation(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetAnnotation();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetSBOTerm(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetSBOTerm();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_addCVTerm__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  CVTerm *arg2 = (CVTerm *) 0 ;
  bool arg3 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (CVTerm *)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->addCVTerm(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_addCVTerm__SWIG_1(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  CVTerm *arg2 = (CVTerm *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (CVTerm *)jarg2; 
  result = (int)(arg1)->addCVTerm(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getCVTerms__SWIG_0(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  List *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (List *)(arg1)->getCVTerms();
  {
    ListWrapper<CVTerm> *listw = (result != 0) ? new ListWrapper<CVTerm>(result) : 0;  
    jresult = (void*)listw;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getNumCVTerms(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)(arg1)->getNumCVTerms();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getCVTerm(void * jarg1, long long jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int arg2 ;
  CVTerm *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CVTerm *)(arg1)->getCVTerm(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetCVTerms(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetCVTerms();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetModelHistory(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetModelHistory();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_getResourceBiologicalQualifier(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  BiolQualifierType_t result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (BiolQualifierType_t)(arg1)->getResourceBiologicalQualifier(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_getResourceModelQualifier(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string arg2 ;
  ModelQualifierType_t result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ModelQualifierType_t)(arg1)->getResourceModelQualifier(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getModel(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  Model *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (Model *)((SBase const *)arg1)->getModel();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getLevel(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getVersion(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getObjectVersion(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getObjectVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getPackageVersion(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getPackageVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_getTypeCode(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)((SBase const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasValidLevelVersionNamespaceCombination(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)(arg1)->hasValidLevelVersionNamespaceCombination();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getElementName(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (std::string *) &((SBase const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_toSBML(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  char *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (char *)(arg1)->toSBML();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_toXMLNode(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)(arg1)->toXMLNode();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getPlugin__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBasePlugin *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBasePlugin *)(arg1)->getPlugin((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getPlugin__SWIG_2(void * jarg1, long long jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int arg2 ;
  SBasePlugin *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBasePlugin *)(arg1)->getPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getDisabledPlugin__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int arg2 ;
  SBasePlugin *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBasePlugin *)(arg1)->getDisabledPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getNumPlugins(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getNumPlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_getNumDisabledPlugins(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getNumDisabledPlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_deleteDisabledPlugins__SWIG_0(void * jarg1, unsigned int jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  bool arg2 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->deleteDisabledPlugins(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_deleteDisabledPlugins__SWIG_1(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  (arg1)->deleteDisabledPlugins();
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_enablePackage(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->enablePackage((std::string const &)*arg2,(std::string const &)*arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_disablePackage(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->disablePackage((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isPackageURIEnabled(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((SBase const *)arg1)->isPackageURIEnabled((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isPackageEnabled(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((SBase const *)arg1)->isPackageEnabled((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isPkgURIEnabled(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((SBase const *)arg1)->isPkgURIEnabled((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isPkgEnabled(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((SBase const *)arg1)->isPkgEnabled((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_writeExtensionElements(void * jarg1, void * jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  ((SBase const *)arg1)->writeExtensionElements(*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_checkCompatibility(void * jarg1, void * jarg2) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (int)((SBase const *)arg1)->checkCompatibility((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBase_setSBMLNamespacesAndOwn(void * jarg1, void * jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->setSBMLNamespacesAndOwn(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getSBMLNamespaces(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (SBMLNamespaces *)((SBase const *)arg1)->getSBMLNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_checkMathMLNamespace(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLToken arg2 ;
  XMLToken const *argp2 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  argp2 = (XMLToken *)jarg2; 
  if (!argp2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null XMLToken const", 0);
    return 0;
  }
  arg2 = *argp2; 
  result = (arg1)->checkMathMLNamespace(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getDerivedUnitDefinition(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_containsUndeclaredUnits(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_matchesSBMLNamespaces__SWIG_0(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)(arg1)->matchesSBMLNamespaces((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_matchesRequiredSBMLNamespacesForAddition__SWIG_0(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)(arg1)->matchesRequiredSBMLNamespacesForAddition((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_isSetUserData(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->isSetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBase_unsetUserData(void * jarg1) {
  int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int result;
  
  arg1 = (SBase *)jarg1; 
  result = (int)(arg1)->unsetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getURI(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = ((SBase const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBase_getPrefix(void * jarg1) {
  wchar_t* jresult ;
  SBase *arg1 = (SBase *) 0 ;
  std::string result;
  
  arg1 = (SBase *)jarg1; 
  result = ((SBase const *)arg1)->getPrefix();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasOptionalAttributes(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->hasOptionalAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBase_hasOptionalElements(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBase *)jarg1; 
  result = (bool)((SBase const *)arg1)->hasOptionalElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getListOfAllElements__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ElementFilter *arg2 = (ElementFilter *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (ElementFilter *)jarg2; 
  result = (ListWrapper< SBase > *)SBase_getListOfAllElements__SWIG_0(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getListOfAllElements__SWIG_1(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (ListWrapper< SBase > *)SBase_getListOfAllElements__SWIG_0(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getListOfAllElementsFromPlugins__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ElementFilter *arg2 = (ElementFilter *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (ElementFilter *)jarg2; 
  result = (ListWrapper< SBase > *)SBase_getListOfAllElementsFromPlugins__SWIG_0(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBase_getListOfAllElementsFromPlugins__SWIG_1(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (ListWrapper< SBase > *)SBase_getListOfAllElementsFromPlugins__SWIG_0(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOf__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOf *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOf *)new ListOf(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOf__SWIG_1(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  ListOf *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  
  try {
    result = (ListOf *)new ListOf(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOf__SWIG_2() {
  void * jresult ;
  ListOf *result = 0 ;
  
  
  try {
    result = (ListOf *)new ListOf();
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOf__SWIG_3(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOf *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOf *)new ListOf(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOf(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOf__SWIG_4(void * jarg1) {
  void * jresult ;
  ListOf *arg1 = 0 ;
  ListOf *result = 0 ;
  
  arg1 = (ListOf *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ListOf const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (ListOf *)new ListOf((ListOf const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOf_clone(void * jarg1) {
  void * jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  ListOf *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  result = (ListOf *)((ListOf const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_append(void * jarg1, void * jarg2) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (int)(arg1)->append((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_appendAndOwn(void * jarg1, void * jarg2) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (int)(arg1)->appendAndOwn(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_appendFrom(void * jarg1, void * jarg2) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  ListOf *arg2 = (ListOf *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = (ListOf *)jarg2; 
  result = (int)(arg1)->appendFrom((ListOf const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_insert(void * jarg1, int jarg2, void * jarg3) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  int arg2 ;
  SBase *arg3 = (SBase *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (SBase *)jarg3; 
  result = (int)(arg1)->insert(arg2,(SBase const *)arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_insertAndOwn(void * jarg1, int jarg2, void * jarg3) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  int arg2 ;
  SBase *arg3 = (SBase *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (SBase *)jarg3; 
  result = (int)(arg1)->insertAndOwn(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOf_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  unsigned int arg2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBase *)((ListOf const *)arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOf_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOf_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_clear__SWIG_0(void * jarg1, unsigned int jarg2) {
  ListOf *arg1 = (ListOf *) 0 ;
  bool arg2 ;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->clear(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_clear__SWIG_1(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->clear();
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOf_remove(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  unsigned int arg2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBase *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ListOf_size(void * jarg1) {
  unsigned int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  unsigned int result;
  
  arg1 = (ListOf *)jarg1; 
  result = (unsigned int)((ListOf const *)arg1)->size();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_connectToChild(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_getTypeCode(void * jarg1) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  result = (int)((ListOf const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOf_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  int result;
  
  arg1 = (ListOf *)jarg1; 
  result = (int)((ListOf const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOf_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOf *)jarg1; 
  result = (std::string *) &((ListOf const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  ListOf *arg1 = (ListOf *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ListOf *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ListOf_hasOptionalElements(void * jarg1) {
  unsigned int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  bool result;
  
  arg1 = (ListOf *)jarg1; 
  result = (bool)((ListOf const *)arg1)->hasOptionalElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ListOf_isExplicitlyListed(void * jarg1) {
  unsigned int jresult ;
  ListOf *arg1 = (ListOf *) 0 ;
  bool result;
  
  arg1 = (ListOf *)jarg1; 
  result = (bool)((ListOf const *)arg1)->isExplicitlyListed();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_setExplicitlyListed__SWIG_0(void * jarg1, unsigned int jarg2) {
  ListOf *arg1 = (ListOf *) 0 ;
  bool arg2 ;
  
  arg1 = (ListOf *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setExplicitlyListed(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ListOf_setExplicitlyListed__SWIG_1(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->setExplicitlyListed();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Model__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Model *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Model *)new Model(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Model__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Model *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Model *)new Model(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Model(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Model__SWIG_2(void * jarg1) {
  void * jresult ;
  Model *arg1 = 0 ;
  Model *result = 0 ;
  
  arg1 = (Model *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Model const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Model *)new Model((Model const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_clone(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Model *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Model *)((Model const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getId(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getName(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getSubstanceUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getSubstanceUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getTimeUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getTimeUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getVolumeUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getVolumeUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getAreaUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getAreaUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getLengthUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getLengthUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getExtentUnits(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getExtentUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getConversionFactor(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getConversionFactor();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetId(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetName(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetSubstanceUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetTimeUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetVolumeUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetVolumeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetAreaUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetAreaUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetLengthUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetLengthUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetExtentUnits(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetExtentUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isSetConversionFactor(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isSetConversionFactor();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setSubstanceUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSubstanceUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setTimeUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setTimeUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setVolumeUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setVolumeUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setAreaUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setAreaUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setLengthUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setLengthUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setExtentUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setExtentUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setConversionFactor(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setConversionFactor((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetId(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetName(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetSubstanceUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetTimeUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetVolumeUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetVolumeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetAreaUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetAreaUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetLengthUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetLengthUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetExtentUnits(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetExtentUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_unsetConversionFactor(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->unsetConversionFactor();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addFunctionDefinition(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  FunctionDefinition *arg2 = (FunctionDefinition *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (FunctionDefinition *)jarg2; 
  result = (int)(arg1)->addFunctionDefinition((FunctionDefinition const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addUnitDefinition(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  UnitDefinition *arg2 = (UnitDefinition *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (UnitDefinition *)jarg2; 
  result = (int)(arg1)->addUnitDefinition((UnitDefinition const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addCompartmentType(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  CompartmentType *arg2 = (CompartmentType *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (CompartmentType *)jarg2; 
  result = (int)(arg1)->addCompartmentType((CompartmentType const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addSpeciesType(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  SpeciesType *arg2 = (SpeciesType *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (SpeciesType *)jarg2; 
  result = (int)(arg1)->addSpeciesType((SpeciesType const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addCompartment(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Compartment *arg2 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Compartment *)jarg2; 
  result = (int)(arg1)->addCompartment((Compartment const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addSpecies(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Species *arg2 = (Species *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Species *)jarg2; 
  result = (int)(arg1)->addSpecies((Species const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addParameter(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Parameter *arg2 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Parameter *)jarg2; 
  result = (int)(arg1)->addParameter((Parameter const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addInitialAssignment(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  InitialAssignment *arg2 = (InitialAssignment *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (InitialAssignment *)jarg2; 
  result = (int)(arg1)->addInitialAssignment((InitialAssignment const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addRule(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Rule *arg2 = (Rule *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Rule *)jarg2; 
  result = (int)(arg1)->addRule((Rule const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addConstraint(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Constraint *arg2 = (Constraint *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Constraint *)jarg2; 
  result = (int)(arg1)->addConstraint((Constraint const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addReaction(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Reaction *arg2 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Reaction *)jarg2; 
  result = (int)(arg1)->addReaction((Reaction const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_addEvent(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Event *arg2 = (Event *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Event *)jarg2; 
  result = (int)(arg1)->addEvent((Event const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createFunctionDefinition(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (FunctionDefinition *)(arg1)->createFunctionDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createUnitDefinition(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (UnitDefinition *)(arg1)->createUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createUnit(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Unit *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Unit *)(arg1)->createUnit();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createCompartmentType(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  CompartmentType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (CompartmentType *)(arg1)->createCompartmentType();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createSpeciesType(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  SpeciesType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (SpeciesType *)(arg1)->createSpeciesType();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createCompartment(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Compartment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Compartment *)(arg1)->createCompartment();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createSpecies(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Species *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Species *)(arg1)->createSpecies();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createParameter(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Parameter *)(arg1)->createParameter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createInitialAssignment(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (InitialAssignment *)(arg1)->createInitialAssignment();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createAlgebraicRule(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  AlgebraicRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (AlgebraicRule *)(arg1)->createAlgebraicRule();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createAssignmentRule(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  AssignmentRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (AssignmentRule *)(arg1)->createAssignmentRule();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createRateRule(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  RateRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (RateRule *)(arg1)->createRateRule();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createConstraint(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Constraint *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Constraint *)(arg1)->createConstraint();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createReaction(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Reaction *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Reaction *)(arg1)->createReaction();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createReactant(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (SpeciesReference *)(arg1)->createReactant();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createProduct(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (SpeciesReference *)(arg1)->createProduct();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createModifier(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ModifierSpeciesReference *)(arg1)->createModifier();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createKineticLaw(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (KineticLaw *)(arg1)->createKineticLaw();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createKineticLawParameter(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Parameter *)(arg1)->createKineticLawParameter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createKineticLawLocalParameter(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (LocalParameter *)(arg1)->createKineticLawLocalParameter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createEvent(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Event *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Event *)(arg1)->createEvent();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createEventAssignment(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (EventAssignment *)(arg1)->createEventAssignment();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createTrigger(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Trigger *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Trigger *)(arg1)->createTrigger();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_createDelay(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  Delay *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (Delay *)(arg1)->createDelay();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->setAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_setAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_appendAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->appendAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_appendAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->appendAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfFunctionDefinitions__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfFunctionDefinitions *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfFunctionDefinitions *)((Model const *)arg1)->getListOfFunctionDefinitions();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfUnitDefinitions__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfUnitDefinitions *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfUnitDefinitions *)((Model const *)arg1)->getListOfUnitDefinitions();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfCompartmentTypes__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfCompartmentTypes *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfCompartmentTypes *)((Model const *)arg1)->getListOfCompartmentTypes();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfSpeciesTypes__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfSpeciesTypes *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfSpeciesTypes *)((Model const *)arg1)->getListOfSpeciesTypes();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfCompartments__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfCompartments *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfCompartments *)((Model const *)arg1)->getListOfCompartments();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfSpecies__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfSpecies *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfSpecies *)((Model const *)arg1)->getListOfSpecies();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfParameters__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfParameters *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfParameters *)((Model const *)arg1)->getListOfParameters();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfInitialAssignments__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfInitialAssignments *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfInitialAssignments *)((Model const *)arg1)->getListOfInitialAssignments();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfRules__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfRules *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfRules *)((Model const *)arg1)->getListOfRules();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfConstraints__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfConstraints *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfConstraints *)((Model const *)arg1)->getListOfConstraints();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfReactions__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfReactions *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfReactions *)((Model const *)arg1)->getListOfReactions();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getListOfEvents__SWIG_0(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ListOfEvents *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (ListOfEvents *)((Model const *)arg1)->getListOfEvents();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getFunctionDefinition__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (FunctionDefinition *)((Model const *)arg1)->getFunctionDefinition(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getFunctionDefinition__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FunctionDefinition *)((Model const *)arg1)->getFunctionDefinition((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getUnitDefinition__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (UnitDefinition *)((Model const *)arg1)->getUnitDefinition(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getUnitDefinition__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (UnitDefinition *)((Model const *)arg1)->getUnitDefinition((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getCompartmentType__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CompartmentType *)((Model const *)arg1)->getCompartmentType(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getCompartmentType__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (CompartmentType *)((Model const *)arg1)->getCompartmentType((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getSpeciesType__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesType *)((Model const *)arg1)->getSpeciesType(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getSpeciesType__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesType *)((Model const *)arg1)->getSpeciesType((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getCompartment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Compartment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Compartment *)((Model const *)arg1)->getCompartment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getCompartment__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Compartment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Compartment *)((Model const *)arg1)->getCompartment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getSpecies__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Species *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Species *)((Model const *)arg1)->getSpecies(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getSpecies__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Species *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Species *)((Model const *)arg1)->getSpecies((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)((Model const *)arg1)->getParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getParameter__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)((Model const *)arg1)->getParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getInitialAssignment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (InitialAssignment *)((Model const *)arg1)->getInitialAssignment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getInitialAssignment__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (InitialAssignment *)((Model const *)arg1)->getInitialAssignment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getInitialAssignmentBySymbol__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (InitialAssignment *)((Model const *)arg1)->getInitialAssignmentBySymbol((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getRule__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Rule *)((Model const *)arg1)->getRule(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getRule__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)((Model const *)arg1)->getRule((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getRuleByVariable__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)((Model const *)arg1)->getRuleByVariable((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getAssignmentRule__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  AssignmentRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (AssignmentRule *)((Model const *)arg1)->getAssignmentRule((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getRateRule__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  RateRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (RateRule *)((Model const *)arg1)->getRateRule((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getAssignmentRuleByVariable__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  AssignmentRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (AssignmentRule *)((Model const *)arg1)->getAssignmentRuleByVariable((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getRateRuleByVariable__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  RateRule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (RateRule *)((Model const *)arg1)->getRateRuleByVariable((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getConstraint__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Constraint *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Constraint *)((Model const *)arg1)->getConstraint(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getReaction__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Reaction *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Reaction *)((Model const *)arg1)->getReaction(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getReaction__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Reaction *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Reaction *)((Model const *)arg1)->getReaction((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getSpeciesReference__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesReference *)(arg1)->getSpeciesReference((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getModifierSpeciesReference__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ModifierSpeciesReference *)(arg1)->getModifierSpeciesReference((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getEvent__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Event *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Event *)((Model const *)arg1)->getEvent(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getEvent__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Event *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Event *)((Model const *)arg1)->getEvent((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumFunctionDefinitions(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumFunctionDefinitions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumUnitDefinitions(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumUnitDefinitions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumCompartmentTypes(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumCompartmentTypes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumSpeciesTypes(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumSpeciesTypes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumCompartments(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumCompartments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumSpecies(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumSpecies();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumSpeciesWithBoundaryCondition(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumSpeciesWithBoundaryCondition();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumParameters(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumParameters();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumInitialAssignments(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumInitialAssignments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumRules(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumRules();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumConstraints(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumConstraints();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumReactions(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumReactions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_getNumEvents(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int result;
  
  arg1 = (Model *)jarg1; 
  result = (unsigned int)((Model const *)arg1)->getNumEvents();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_renameAllIds__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  IdentifierTransformer *arg2 = (IdentifierTransformer *) 0 ;
  ElementFilter *arg3 = (ElementFilter *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (IdentifierTransformer *)jarg2; 
  arg3 = (ElementFilter *)jarg3; 
  result = (int)(arg1)->renameAllIds(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_renameAllIds__SWIG_1(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  IdentifierTransformer *arg2 = (IdentifierTransformer *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (IdentifierTransformer *)jarg2; 
  result = (int)(arg1)->renameAllIds(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL1ToL2(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL1ToL2();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL1ToL3__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertL1ToL3(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL1ToL3__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL1ToL3();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL2ToL3__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  bool arg3 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  arg3 = jarg3 ? true : false; 
  (arg1)->convertL2ToL3(arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL2ToL3__SWIG_1(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertL2ToL3(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL2ToL3__SWIG_2(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL2ToL3();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL2ToL1__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertL2ToL1(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL2ToL1__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL2ToL1();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL3ToL1__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertL3ToL1(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL3ToL1__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL3ToL1();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL3ToL2__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertL3ToL2(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertL3ToL2__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL3ToL2();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertFromL3V2__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->convertFromL3V2(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertFromL3V2__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertFromL3V2();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithFast(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->dealWithFast();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_addModifiers(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->addModifiers();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_addConstantAttribute(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->addConstantAttribute();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_setSpatialDimensions__SWIG_0(void * jarg1, double jarg2) {
  Model *arg1 = (Model *) 0 ;
  double arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (double)jarg2; 
  (arg1)->setSpatialDimensions(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_setSpatialDimensions__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->setSpatialDimensions();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_addDefinitionsForDefaultUnits(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->addDefinitionsForDefaultUnits();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithDefaultValues(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->dealWithDefaultValues();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertParametersToLocals(void * jarg1, long long jarg2, long long jarg3) {
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  (arg1)->convertParametersToLocals(arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_setSpeciesReferenceConstantValueAndStoichiometry(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->setSpeciesReferenceConstantValueAndStoichiometry();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_removeParameterRuleUnits(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->removeParameterRuleUnits(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_convertStoichiometryMath(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertStoichiometryMath();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_assignRequiredValues(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->assignRequiredValues();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithModelUnits__SWIG_0(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->dealWithModelUnits(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithModelUnits__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->dealWithModelUnits();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithStoichiometry(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->dealWithStoichiometry();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_dealWithEvents(void * jarg1, unsigned int jarg2) {
  Model *arg1 = (Model *) 0 ;
  bool arg2 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->dealWithEvents(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_removeSpeciesTypes(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->removeSpeciesTypes();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_removeCompartmentTypes(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->removeCompartmentTypes();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_connectToChild(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_getTypeCode(void * jarg1) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  result = (int)((Model const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Model_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  result = (std::string *) &((Model const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_populateListFormulaUnitsData(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->populateListFormulaUnitsData();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isPopulatedListFormulaUnitsData(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)(arg1)->isPopulatedListFormulaUnitsData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getFormulaUnitsDataForVariable(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FormulaUnitsData *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FormulaUnitsData *)(arg1)->getFormulaUnitsDataForVariable((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getFormulaUnitsDataForAssignment(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FormulaUnitsData *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FormulaUnitsData *)(arg1)->getFormulaUnitsDataForAssignment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_populateAllElementIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->populateAllElementIdList();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isPopulatedAllElementIdList(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isPopulatedAllElementIdList();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getAllElementIdList(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  IdList result;
  
  arg1 = (Model *)jarg1; 
  result = ((Model const *)arg1)->getAllElementIdList();
  jresult = new IdList((const IdList &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_clearAllElementIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->clearAllElementIdList();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_populateAllElementMetaIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->populateAllElementMetaIdList();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_isPopulatedAllElementMetaIdList(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->isPopulatedAllElementMetaIdList();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_getAllElementMetaIdList(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  IdList result;
  
  arg1 = (Model *)jarg1; 
  result = ((Model const *)arg1)->getAllElementMetaIdList();
  jresult = new IdList((const IdList &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_clearAllElementMetaIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->clearAllElementMetaIdList();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Model_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)((Model const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeFunctionDefinition__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (FunctionDefinition *)(arg1)->removeFunctionDefinition(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeFunctionDefinition__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FunctionDefinition *)(arg1)->removeFunctionDefinition((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeUnitDefinition__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (UnitDefinition *)(arg1)->removeUnitDefinition(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeUnitDefinition__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (UnitDefinition *)(arg1)->removeUnitDefinition((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeCompartmentType__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CompartmentType *)(arg1)->removeCompartmentType(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeCompartmentType__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (CompartmentType *)(arg1)->removeCompartmentType((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeSpeciesType__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesType *)(arg1)->removeSpeciesType(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeSpeciesType__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesType *)(arg1)->removeSpeciesType((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeCompartment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Compartment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Compartment *)(arg1)->removeCompartment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeCompartment__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Compartment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Compartment *)(arg1)->removeCompartment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeSpecies__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Species *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Species *)(arg1)->removeSpecies(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeSpecies__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Species *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Species *)(arg1)->removeSpecies((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)(arg1)->removeParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeParameter__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)(arg1)->removeParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeInitialAssignment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (InitialAssignment *)(arg1)->removeInitialAssignment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeInitialAssignment__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (InitialAssignment *)(arg1)->removeInitialAssignment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeRule__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Rule *)(arg1)->removeRule(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeRule__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)(arg1)->removeRule((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeRuleByVariable(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)(arg1)->removeRuleByVariable((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeConstraint(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Constraint *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Constraint *)(arg1)->removeConstraint(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeReaction__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Reaction *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Reaction *)(arg1)->removeReaction(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeReaction__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Reaction *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Reaction *)(arg1)->removeReaction((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeEvent__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  Event *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Event *)(arg1)->removeEvent(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Model_removeEvent__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Event *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Event *)(arg1)->removeEvent((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Model_appendFrom(void * jarg1, void * jarg2) {
  int jresult ;
  Model *arg1 = (Model *) 0 ;
  Model *arg2 = (Model *) 0 ;
  int result;
  
  arg1 = (Model *)jarg1; 
  arg2 = (Model *)jarg2; 
  result = (int)(arg1)->appendFrom((Model const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Model *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Model_renameIDs(void * jarg1, void * jarg2, void * jarg3) {
  Model *arg1 = (Model *) 0 ;
  ListWrapper< SBase > *arg2 = (ListWrapper< SBase > *) 0 ;
  IdentifierTransformer *arg3 = (IdentifierTransformer *) 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ListWrapper< SBase > *)jarg2; 
  arg3 = (IdentifierTransformer *)jarg3; 
  Model_renameIDs(arg1,arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getDefaultLevel() {
  unsigned int jresult ;
  unsigned int result;
  
  result = (unsigned int)SBMLDocument::getDefaultLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getDefaultVersion() {
  unsigned int jresult ;
  unsigned int result;
  
  result = (unsigned int)SBMLDocument::getDefaultVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocument__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  SBMLDocument *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (SBMLDocument *)new SBMLDocument(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocument__SWIG_1(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  SBMLDocument *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  
  try {
    result = (SBMLDocument *)new SBMLDocument(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocument__SWIG_2() {
  void * jresult ;
  SBMLDocument *result = 0 ;
  
  
  try {
    result = (SBMLDocument *)new SBMLDocument();
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocument__SWIG_3(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (SBMLDocument *)new SBMLDocument(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLDocument(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocument__SWIG_4(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLDocument const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (SBMLDocument *)new SBMLDocument((SBMLDocument const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_clone(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (SBMLDocument *)((SBMLDocument const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isSetModel(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (bool)((SBMLDocument const *)arg1)->isSetModel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getModel__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  Model *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (Model *)((SBMLDocument const *)arg1)->getModel();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_expandFunctionDefinitions(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (bool)(arg1)->expandFunctionDefinitions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_expandInitialAssignments(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (bool)(arg1)->expandInitialAssignments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_setLevelAndVersion__SWIG_0(void * jarg1, long long jarg2, long long jarg3, unsigned int jarg4, unsigned int jarg5) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  bool arg4 ;
  bool arg5 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  result = (bool)(arg1)->setLevelAndVersion(arg2,arg3,arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_setLevelAndVersion__SWIG_1(void * jarg1, long long jarg2, long long jarg3, unsigned int jarg4) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  bool arg4 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  arg4 = jarg4 ? true : false; 
  result = (bool)(arg1)->setLevelAndVersion(arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_setLevelAndVersion__SWIG_2(void * jarg1, long long jarg2, long long jarg3) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (bool)(arg1)->setLevelAndVersion(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  (arg1)->updateSBMLNamespace((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_setModel(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  Model *arg2 = (Model *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (Model *)jarg2; 
  result = (int)(arg1)->setModel((Model const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_createModel__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Model *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Model *)(arg1)->createModel((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_createModel__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  Model *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (Model *)(arg1)->createModel();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_setLocationURI(void * jarg1, wchar_t* jarg2) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->setLocationURI((std::string const &)*arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLDocument_getLocationURI__SWIG_0(void * jarg1) {
  wchar_t* jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = ((SBMLDocument const *)arg1)->getLocationURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_setConsistencyChecks(void * jarg1, int jarg2, unsigned int jarg3) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  SBMLErrorCategory_t arg2 ;
  bool arg3 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (SBMLErrorCategory_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  (arg1)->setConsistencyChecks(arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_setConsistencyChecksForConversion(void * jarg1, int jarg2, unsigned int jarg3) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  SBMLErrorCategory_t arg2 ;
  bool arg3 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (SBMLErrorCategory_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  (arg1)->setConsistencyChecksForConversion(arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkConsistency(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkConsistency();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkConsistencyWithStrictUnits(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkConsistencyWithStrictUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_validateSBML(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->validateSBML();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkInternalConsistency(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkInternalConsistency();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool arg2 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL1Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool arg2 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL2v1Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool arg2 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL2v2Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  bool arg2 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL2v3Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v4Compatibility(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL2v4Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v5Compatibility(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL2v5Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL3v1Compatibility(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL3v1Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL3v2Compatibility(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)(arg1)->checkL3v2Compatibility();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getError(void * jarg1, long long jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBMLError *)((SBMLDocument const *)arg1)->getError(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getErrorWithSeverity(void * jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (SBMLError *)((SBMLDocument const *)arg1)->getErrorWithSeverity(arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getNumErrors__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)((SBMLDocument const *)arg1)->getNumErrors();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getNumErrors__SWIG_1(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (unsigned int)((SBMLDocument const *)arg1)->getNumErrors(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_printErrors__SWIG_0(void * jarg1, void * jarg2) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::ostream *arg2 = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (std::ostream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return ;
  } 
  ((SBMLDocument const *)arg1)->printErrors(*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_printErrors__SWIG_1(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  ((SBMLDocument const *)arg1)->printErrors();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_printErrors__SWIG_2(void * jarg1, void * jarg2, long long jarg3) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::ostream *arg2 = 0 ;
  unsigned int arg3 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (std::ostream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return ;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  ((SBMLDocument const *)arg1)->printErrors(*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_connectToChild(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_convert(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  ConversionProperties *arg2 = 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->convert((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_getTypeCode(void * jarg1) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (int)((SBMLDocument const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLDocument_getElementName(void * jarg1) {
  wchar_t* jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (std::string *) &((SBMLDocument const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getErrorLog__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  SBMLErrorLog *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (SBMLErrorLog *)(arg1)->getErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getNamespaces(void * jarg1) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (XMLNamespaces *)((SBMLDocument const *)arg1)->getNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_enableDefaultNS(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->enableDefaultNS((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isEnabledDefaultNS(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isEnabledDefaultNS((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_setPackageRequired(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->setPackageRequired((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getPackageRequired(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->getPackageRequired((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isSetPackageRequired(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isSetPackageRequired((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isIgnoredPackage(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isIgnoredPackage((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isDisabledIgnoredPackage(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isDisabledIgnoredPackage((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_setPkgRequired(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->setPkgRequired((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getPkgRequired(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->getPkgRequired((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isSetPkgRequired(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isSetPkgRequired((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_isIgnoredPkg(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isIgnoredPkg((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp_SBMLDocument_getApplicableValidators(void * jarg1) {
  unsigned char jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned char result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned char)((SBMLDocument const *)arg1)->getApplicableValidators();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp_SBMLDocument_getConversionValidators(void * jarg1) {
  unsigned char jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned char result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned char)((SBMLDocument const *)arg1)->getConversionValidators();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_setApplicableValidators(void * jarg1, unsigned char jarg2) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned char arg2 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (unsigned char)jarg2; 
  (arg1)->setApplicableValidators(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLDocument_setConversionValidators(void * jarg1, unsigned char jarg2) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned char arg2 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (unsigned char)jarg2; 
  (arg1)->setConversionValidators(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_getNumValidators(void * jarg1) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (unsigned int)((SBMLDocument const *)arg1)->getNumValidators();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_clearValidators(void * jarg1) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (int)(arg1)->clearValidators();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_addValidator(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  SBMLValidator *arg2 = (SBMLValidator *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (SBMLValidator *)jarg2; 
  result = (int)(arg1)->addValidator((SBMLValidator const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocument_getValidator(void * jarg1, long long jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  unsigned int arg2 ;
  SBMLValidator *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBMLValidator *)(arg1)->getValidator(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_addUnknownPackageRequired(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->addUnknownPackageRequired((std::string const &)*arg2,(std::string const &)*arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_hasUnknownPackage(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->hasUnknownPackage((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocument_getNumUnknownPackages(void * jarg1) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (int)((SBMLDocument const *)arg1)->getNumUnknownPackages();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLDocument_getUnknownPackageURI(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((SBMLDocument const *)arg1)->getUnknownPackageURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLDocument_getUnknownPackagePrefix(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (SBMLDocument *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((SBMLDocument const *)arg1)->getUnknownPackagePrefix(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FunctionDefinition__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  FunctionDefinition *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (FunctionDefinition *)new FunctionDefinition(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FunctionDefinition__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (FunctionDefinition *)new FunctionDefinition(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_FunctionDefinition(void * jarg1) {
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FunctionDefinition__SWIG_2(void * jarg1) {
  void * jresult ;
  FunctionDefinition *arg1 = 0 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FunctionDefinition const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (FunctionDefinition *)new FunctionDefinition((FunctionDefinition const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FunctionDefinition_clone(void * jarg1) {
  void * jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (FunctionDefinition *)((FunctionDefinition const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_FunctionDefinition_getId(void * jarg1) {
  wchar_t* jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (std::string *) &((FunctionDefinition const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_FunctionDefinition_getName(void * jarg1) {
  wchar_t* jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (std::string *) &((FunctionDefinition const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FunctionDefinition_getMath(void * jarg1) {
  void * jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (ASTNode *)((FunctionDefinition const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_isSetId(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_isSetName(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_isSetMath(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_FunctionDefinition_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_FunctionDefinition_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_FunctionDefinition_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_FunctionDefinition_unsetName(void * jarg1) {
  int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FunctionDefinition_getArgument__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  unsigned int arg2 ;
  ASTNode *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTNode *)((FunctionDefinition const *)arg1)->getArgument(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FunctionDefinition_getArgument__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ASTNode *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ASTNode *)((FunctionDefinition const *)arg1)->getArgument((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FunctionDefinition_getBody__SWIG_0(void * jarg1) {
  void * jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (ASTNode *)((FunctionDefinition const *)arg1)->getBody();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_isSetBody(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->isSetBody();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_getNumArguments(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  unsigned int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (unsigned int)((FunctionDefinition const *)arg1)->getNumArguments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_FunctionDefinition_getTypeCode(void * jarg1) {
  int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  int result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (int)((FunctionDefinition const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_FunctionDefinition_getElementName(void * jarg1) {
  wchar_t* jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (std::string *) &((FunctionDefinition const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FunctionDefinition_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  bool result;
  
  arg1 = (FunctionDefinition *)jarg1; 
  result = (bool)((FunctionDefinition const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_FunctionDefinition_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfFunctionDefinitions__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfFunctionDefinitions *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfFunctionDefinitions *)new ListOfFunctionDefinitions(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfFunctionDefinitions__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfFunctionDefinitions *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfFunctionDefinitions *)new ListOfFunctionDefinitions(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_clone(void * jarg1) {
  void * jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  ListOfFunctionDefinitions *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  result = (ListOfFunctionDefinitions *)((ListOfFunctionDefinitions const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfFunctionDefinitions_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  int result;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  result = (int)((ListOfFunctionDefinitions const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfFunctionDefinitions_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  result = (std::string *) &((ListOfFunctionDefinitions const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  unsigned int arg2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (FunctionDefinition *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FunctionDefinition *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  unsigned int arg2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (FunctionDefinition *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  FunctionDefinition *result = 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (FunctionDefinition *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfFunctionDefinitions(void * jarg1) {
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitKind_equals(int jarg1, int jarg2) {
  int jresult ;
  UnitKind_t arg1 ;
  UnitKind_t arg2 ;
  int result;
  
  arg1 = (UnitKind_t)jarg1; 
  arg2 = (UnitKind_t)jarg2; 
  result = (int)UnitKind_equals(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitKind_forName(wchar_t* jarg1) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  UnitKind_t result;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (UnitKind_t)UnitKind_forName((char const *)arg1);
  jresult = result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitKind_toString(int jarg1) {
  wchar_t* jresult ;
  UnitKind_t arg1 ;
  char *result = 0 ;
  
  arg1 = (UnitKind_t)jarg1; 
  result = (char *)UnitKind_toString(arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitKind_isValidUnitKindString(wchar_t* jarg1, long long jarg2, long long jarg3) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  int result;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (int)UnitKind_isValidUnitKindString((char const *)arg1,arg2,arg3);
  jresult = result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Unit__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Unit *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Unit *)new Unit(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Unit__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Unit *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Unit *)new Unit(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Unit(void * jarg1) {
  Unit *arg1 = (Unit *) 0 ;
  
  arg1 = (Unit *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Unit__SWIG_2(void * jarg1) {
  void * jresult ;
  Unit *arg1 = 0 ;
  Unit *result = 0 ;
  
  arg1 = (Unit *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Unit const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Unit *)new Unit((Unit const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Unit_clone(void * jarg1) {
  void * jresult ;
  Unit *arg1 = (Unit *) 0 ;
  Unit *result = 0 ;
  
  arg1 = (Unit *)jarg1; 
  result = (Unit *)((Unit const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Unit_initDefaults(void * jarg1) {
  Unit *arg1 = (Unit *) 0 ;
  
  arg1 = (Unit *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_getKind(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  UnitKind_t result;
  
  arg1 = (Unit *)jarg1; 
  result = (UnitKind_t)((Unit const *)arg1)->getKind();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_getExponent(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)((Unit const *)arg1)->getExponent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Unit_getExponentAsDouble(void * jarg1) {
  double jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double result;
  
  arg1 = (Unit *)jarg1; 
  result = (double)((Unit const *)arg1)->getExponentAsDouble();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_getScale(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)((Unit const *)arg1)->getScale();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Unit_getMultiplier(void * jarg1) {
  double jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double result;
  
  arg1 = (Unit *)jarg1; 
  result = (double)((Unit const *)arg1)->getMultiplier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Unit_getOffset(void * jarg1) {
  double jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double result;
  
  arg1 = (Unit *)jarg1; 
  result = (double)((Unit const *)arg1)->getOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isAmpere(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isAmpere();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isAvogadro(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isAvogadro();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isBecquerel(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isBecquerel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isCandela(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isCandela();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isCelsius(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isCelsius();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isCoulomb(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isCoulomb();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isDimensionless(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isDimensionless();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isFarad(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isFarad();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isGram(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isGram();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isGray(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isGray();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isHenry(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isHenry();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isHertz(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isHertz();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isItem(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isItem();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isJoule(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isJoule();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isKatal(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isKatal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isKelvin(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isKelvin();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isKilogram(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isKilogram();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isLitre(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isLitre();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isLumen(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isLumen();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isLux(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isLux();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isMetre(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isMetre();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isMole(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isMole();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isNewton(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isNewton();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isOhm(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isOhm();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isPascal(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isPascal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isRadian(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isRadian();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSecond(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSecond();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSiemens(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSiemens();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSievert(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSievert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSteradian(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSteradian();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isTesla(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isTesla();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isVolt(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isVolt();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isWatt(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isWatt();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isWeber(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isWeber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSetKind(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSetKind();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSetExponent(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSetExponent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSetScale(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSetScale();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSetMultiplier(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSetMultiplier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isSetOffset(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->isSetOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setKind(void * jarg1, int jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  UnitKind_t arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (UnitKind_t)jarg2; 
  result = (int)(arg1)->setKind(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setExponent__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setExponent(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setExponent__SWIG_1(void * jarg1, double jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setExponent(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setScale(void * jarg1, int jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setScale(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setMultiplier(void * jarg1, double jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setMultiplier(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_setOffset(void * jarg1, double jarg2) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setOffset(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_unsetKind(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)(arg1)->unsetKind();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_unsetExponent(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)(arg1)->unsetExponent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_unsetScale(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)(arg1)->unsetScale();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_unsetMultiplier(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)(arg1)->unsetMultiplier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_unsetOffset(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)(arg1)->unsetOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_getTypeCode(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)((Unit const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Unit_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Unit *arg1 = (Unit *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Unit *)jarg1; 
  result = (std::string *) &((Unit const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isBuiltIn(wchar_t* jarg1, long long jarg2) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (bool)Unit::isBuiltIn((std::string const &)*arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_isUnitKind(wchar_t* jarg1, long long jarg2, long long jarg3) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (bool)Unit::isUnitKind((std::string const &)*arg1,arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_areIdentical(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  Unit *arg2 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (Unit *)jarg2; 
  result = (bool)Unit::areIdentical(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_areEquivalent(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  Unit *arg2 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (Unit *)jarg2; 
  result = (bool)Unit::areEquivalent(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Unit_removeScale(void * jarg1) {
  int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  int result;
  
  arg1 = (Unit *)jarg1; 
  result = (int)Unit::removeScale(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Unit_merge(void * jarg1, void * jarg2) {
  Unit *arg1 = (Unit *) 0 ;
  Unit *arg2 = (Unit *) 0 ;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (Unit *)jarg2; 
  Unit::merge(arg1,arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Unit_convertToSI(void * jarg1) {
  void * jresult ;
  Unit *arg1 = (Unit *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Unit *)jarg1; 
  result = (UnitDefinition *)Unit::convertToSI((Unit const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Unit_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Unit *arg1 = (Unit *) 0 ;
  bool result;
  
  arg1 = (Unit *)jarg1; 
  result = (bool)((Unit const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfUnits__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfUnits *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfUnits *)new ListOfUnits(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfUnits__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfUnits *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfUnits *)new ListOfUnits(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnits_clone(void * jarg1) {
  void * jresult ;
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  ListOfUnits *result = 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  result = (ListOfUnits *)((ListOfUnits const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfUnits_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  int result;
  
  arg1 = (ListOfUnits *)jarg1; 
  result = (int)((ListOfUnits const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfUnits_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  result = (std::string *) &((ListOfUnits const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnits_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  unsigned int arg2 ;
  Unit *result = 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Unit *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnits_remove(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  unsigned int arg2 ;
  Unit *result = 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Unit *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfUnits(void * jarg1) {
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_UnitDefinition__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  UnitDefinition *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (UnitDefinition *)new UnitDefinition(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_UnitDefinition__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (UnitDefinition *)new UnitDefinition(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_UnitDefinition(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_UnitDefinition__SWIG_2(void * jarg1) {
  void * jresult ;
  UnitDefinition *arg1 = 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "UnitDefinition const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (UnitDefinition *)new UnitDefinition((UnitDefinition const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_clone(void * jarg1) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (UnitDefinition *)((UnitDefinition const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitDefinition_getId(void * jarg1) {
  wchar_t* jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (std::string *) &((UnitDefinition const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitDefinition_getName(void * jarg1) {
  wchar_t* jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (std::string *) &((UnitDefinition const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isSetId(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isSetName(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitDefinition_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitDefinition_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitDefinition_unsetName(void * jarg1) {
  int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfArea__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfArea(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfArea__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfArea();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfLength__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfLength(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfLength__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfLength();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfSubstance__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfSubstance(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfSubstance__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfSubstance();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfTime__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfTime(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfTime__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfTime();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfVolume__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfVolume(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfVolume__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfVolume();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfDimensionless__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfDimensionless(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfDimensionless__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfDimensionless();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfMass__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfMass(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfMass__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfMass();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfSubstancePerTime__SWIG_0(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfSubstancePerTime(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_isVariantOfSubstancePerTime__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->isVariantOfSubstancePerTime();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitDefinition_addUnit(void * jarg1, void * jarg2) {
  int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  Unit *arg2 = (Unit *) 0 ;
  int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = (Unit *)jarg2; 
  result = (int)(arg1)->addUnit((Unit const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_createUnit(void * jarg1) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  Unit *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (Unit *)(arg1)->createUnit();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_getListOfUnits__SWIG_0(void * jarg1) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  ListOfUnits *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (ListOfUnits *)((UnitDefinition const *)arg1)->getListOfUnits();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_getUnit__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  unsigned int arg2 ;
  Unit *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Unit *)(arg1)->getUnit(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_getNumUnits(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  unsigned int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (unsigned int)((UnitDefinition const *)arg1)->getNumUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_removeUnit(void * jarg1, long long jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  unsigned int arg2 ;
  Unit *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Unit *)(arg1)->removeUnit(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_UnitDefinition_connectToChild(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_UnitDefinition_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_UnitDefinition_getTypeCode(void * jarg1) {
  int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  int result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (int)((UnitDefinition const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitDefinition_getElementName(void * jarg1) {
  wchar_t* jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (std::string *) &((UnitDefinition const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_UnitDefinition_simplify(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  UnitDefinition::simplify(arg1);
}


SWIGEXPORT void SWIGSTDCALL CSharp_UnitDefinition_reorder(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  UnitDefinition::reorder(arg1);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_convertToSI(void * jarg1) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (UnitDefinition *)UnitDefinition::convertToSI((UnitDefinition const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_areIdentical(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *arg2 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = (UnitDefinition *)jarg2; 
  result = (bool)UnitDefinition::areIdentical((UnitDefinition const *)arg1,(UnitDefinition const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_areEquivalent(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *arg2 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = (UnitDefinition *)jarg2; 
  result = (bool)UnitDefinition::areEquivalent((UnitDefinition const *)arg1,(UnitDefinition const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_combine(void * jarg1, void * jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *arg2 = (UnitDefinition *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = (UnitDefinition *)jarg2; 
  result = (UnitDefinition *)UnitDefinition::combine(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_UnitDefinition_divide(void * jarg1, void * jarg2) {
  void * jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  UnitDefinition *arg2 = (UnitDefinition *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = (UnitDefinition *)jarg2; 
  result = (UnitDefinition *)UnitDefinition::divide(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitDefinition_printUnits__SWIG_0(void * jarg1, unsigned int jarg2) {
  wchar_t* jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool arg2 ;
  std::string result;
  
  arg1 = (UnitDefinition *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = UnitDefinition::printUnits((UnitDefinition const *)arg1,arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_UnitDefinition_printUnits__SWIG_1(void * jarg1) {
  wchar_t* jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = UnitDefinition::printUnits((UnitDefinition const *)arg1);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnitDefinition_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  bool result;
  
  arg1 = (UnitDefinition *)jarg1; 
  result = (bool)((UnitDefinition const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfUnitDefinitions__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfUnitDefinitions *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfUnitDefinitions *)new ListOfUnitDefinitions(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfUnitDefinitions__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfUnitDefinitions *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfUnitDefinitions *)new ListOfUnitDefinitions(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_clone(void * jarg1) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  ListOfUnitDefinitions *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  result = (ListOfUnitDefinitions *)((ListOfUnitDefinitions const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfUnitDefinitions_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  int result;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  result = (int)((ListOfUnitDefinitions const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfUnitDefinitions_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  result = (std::string *) &((ListOfUnitDefinitions const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  unsigned int arg2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (UnitDefinition *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (UnitDefinition *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  unsigned int arg2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (UnitDefinition *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfUnitDefinitions_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (UnitDefinition *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfUnitDefinitions(void * jarg1) {
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CompartmentType__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  CompartmentType *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (CompartmentType *)new CompartmentType(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CompartmentType__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  CompartmentType *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (CompartmentType *)new CompartmentType(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CompartmentType(void * jarg1) {
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CompartmentType__SWIG_2(void * jarg1) {
  void * jresult ;
  CompartmentType *arg1 = 0 ;
  CompartmentType *result = 0 ;
  
  arg1 = (CompartmentType *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "CompartmentType const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (CompartmentType *)new CompartmentType((CompartmentType const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CompartmentType_clone(void * jarg1) {
  void * jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  CompartmentType *result = 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (CompartmentType *)((CompartmentType const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_CompartmentType_getId(void * jarg1) {
  wchar_t* jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (std::string *) &((CompartmentType const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_CompartmentType_getName(void * jarg1) {
  wchar_t* jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (std::string *) &((CompartmentType const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CompartmentType_isSetId(void * jarg1) {
  unsigned int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  bool result;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (bool)((CompartmentType const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CompartmentType_isSetName(void * jarg1) {
  unsigned int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  bool result;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (bool)((CompartmentType const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CompartmentType_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (CompartmentType *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CompartmentType_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (CompartmentType *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CompartmentType_unsetName(void * jarg1) {
  int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  int result;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CompartmentType_getTypeCode(void * jarg1) {
  int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  int result;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (int)((CompartmentType const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_CompartmentType_getElementName(void * jarg1) {
  wchar_t* jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (std::string *) &((CompartmentType const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CompartmentType_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  bool result;
  
  arg1 = (CompartmentType *)jarg1; 
  result = (bool)((CompartmentType const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfCompartmentTypes__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfCompartmentTypes *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfCompartmentTypes *)new ListOfCompartmentTypes(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfCompartmentTypes__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfCompartmentTypes *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfCompartmentTypes *)new ListOfCompartmentTypes(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartmentTypes_clone(void * jarg1) {
  void * jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  ListOfCompartmentTypes *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  result = (ListOfCompartmentTypes *)((ListOfCompartmentTypes const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfCompartmentTypes_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  int result;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  result = (int)((ListOfCompartmentTypes const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfCompartmentTypes_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  result = (std::string *) &((ListOfCompartmentTypes const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartmentTypes_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  unsigned int arg2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CompartmentType *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartmentTypes_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (CompartmentType *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartmentTypes_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  unsigned int arg2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CompartmentType *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartmentTypes_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  CompartmentType *result = 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (CompartmentType *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfCompartmentTypes(void * jarg1) {
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesType__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  SpeciesType *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (SpeciesType *)new SpeciesType(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesType__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  SpeciesType *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (SpeciesType *)new SpeciesType(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SpeciesType(void * jarg1) {
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesType__SWIG_2(void * jarg1) {
  void * jresult ;
  SpeciesType *arg1 = 0 ;
  SpeciesType *result = 0 ;
  
  arg1 = (SpeciesType *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SpeciesType const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (SpeciesType *)new SpeciesType((SpeciesType const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpeciesType_clone(void * jarg1) {
  void * jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  SpeciesType *result = 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (SpeciesType *)((SpeciesType const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SpeciesType_getId(void * jarg1) {
  wchar_t* jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (std::string *) &((SpeciesType const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SpeciesType_getName(void * jarg1) {
  wchar_t* jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (std::string *) &((SpeciesType const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesType_isSetId(void * jarg1) {
  unsigned int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  bool result;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (bool)((SpeciesType const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesType_isSetName(void * jarg1) {
  unsigned int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  bool result;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (bool)((SpeciesType const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesType_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SpeciesType *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesType_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SpeciesType *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesType_unsetName(void * jarg1) {
  int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  int result;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesType_getTypeCode(void * jarg1) {
  int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  int result;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (int)((SpeciesType const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SpeciesType_getElementName(void * jarg1) {
  wchar_t* jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (std::string *) &((SpeciesType const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesType_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  bool result;
  
  arg1 = (SpeciesType *)jarg1; 
  result = (bool)((SpeciesType const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpeciesTypes__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfSpeciesTypes *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfSpeciesTypes *)new ListOfSpeciesTypes(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpeciesTypes__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfSpeciesTypes *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfSpeciesTypes *)new ListOfSpeciesTypes(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesTypes_clone(void * jarg1) {
  void * jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  ListOfSpeciesTypes *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  result = (ListOfSpeciesTypes *)((ListOfSpeciesTypes const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfSpeciesTypes_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  int result;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  result = (int)((ListOfSpeciesTypes const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfSpeciesTypes_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  result = (std::string *) &((ListOfSpeciesTypes const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesTypes_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  unsigned int arg2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesType *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesTypes_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesType *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesTypes_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  unsigned int arg2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesType *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesTypes_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesType *result = 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesType *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfSpeciesTypes(void * jarg1) {
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Compartment__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Compartment *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Compartment *)new Compartment(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Compartment__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Compartment *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Compartment *)new Compartment(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Compartment(void * jarg1) {
  Compartment *arg1 = (Compartment *) 0 ;
  
  arg1 = (Compartment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Compartment__SWIG_2(void * jarg1) {
  void * jresult ;
  Compartment *arg1 = 0 ;
  Compartment *result = 0 ;
  
  arg1 = (Compartment *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Compartment const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Compartment *)new Compartment((Compartment const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Compartment_clone(void * jarg1) {
  void * jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  Compartment *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (Compartment *)((Compartment const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Compartment_initDefaults(void * jarg1) {
  Compartment *arg1 = (Compartment *) 0 ;
  
  arg1 = (Compartment *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getId(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getName(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getCompartmentType(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getCompartmentType();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_getSpatialDimensions(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  unsigned int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (unsigned int)((Compartment const *)arg1)->getSpatialDimensions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Compartment_getSpatialDimensionsAsDouble(void * jarg1) {
  double jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double result;
  
  arg1 = (Compartment *)jarg1; 
  result = (double)((Compartment const *)arg1)->getSpatialDimensionsAsDouble();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Compartment_getSize(void * jarg1) {
  double jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double result;
  
  arg1 = (Compartment *)jarg1; 
  result = (double)((Compartment const *)arg1)->getSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Compartment_getVolume(void * jarg1) {
  double jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double result;
  
  arg1 = (Compartment *)jarg1; 
  result = (double)((Compartment const *)arg1)->getVolume();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getUnits(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getOutside(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getOutside();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_getConstant(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->getConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetId(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetName(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetCompartmentType(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetCompartmentType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetSize(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetVolume(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetVolume();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetUnits(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetOutside(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetOutside();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetSpatialDimensions(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetSpatialDimensions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_isSetConstant(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->isSetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setCompartmentType(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setCompartmentType((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setSpatialDimensions__SWIG_0(void * jarg1, long long jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setSpatialDimensions(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setSpatialDimensions__SWIG_1(void * jarg1, double jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setSpatialDimensions(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setSize(void * jarg1, double jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setSize(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setVolume(void * jarg1, double jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setVolume(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setOutside(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setOutside((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_setConstant(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setConstant(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Compartment_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Compartment_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Compartment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetName(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetCompartmentType(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetCompartmentType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetConstant(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetSize(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetSize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetVolume(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetVolume();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetUnits(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetOutside(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetOutside();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_unsetSpatialDimensions(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)(arg1)->unsetSpatialDimensions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Compartment_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Compartment_getTypeCode(void * jarg1) {
  int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  int result;
  
  arg1 = (Compartment *)jarg1; 
  result = (int)((Compartment const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Compartment_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Compartment *)jarg1; 
  result = (std::string *) &((Compartment const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Compartment_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Compartment *arg1 = (Compartment *) 0 ;
  bool result;
  
  arg1 = (Compartment *)jarg1; 
  result = (bool)((Compartment const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfCompartments__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfCompartments *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfCompartments *)new ListOfCompartments(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfCompartments__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfCompartments *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfCompartments *)new ListOfCompartments(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartments_clone(void * jarg1) {
  void * jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  ListOfCompartments *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  result = (ListOfCompartments *)((ListOfCompartments const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfCompartments_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  int result;
  
  arg1 = (ListOfCompartments *)jarg1; 
  result = (int)((ListOfCompartments const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfCompartments_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  result = (std::string *) &((ListOfCompartments const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartments_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  unsigned int arg2 ;
  Compartment *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Compartment *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartments_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Compartment *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Compartment *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartments_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  unsigned int arg2 ;
  Compartment *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Compartment *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfCompartments_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Compartment *result = 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Compartment *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfCompartments(void * jarg1) {
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Species__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Species *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Species *)new Species(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Species__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Species *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Species *)new Species(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Species(void * jarg1) {
  Species *arg1 = (Species *) 0 ;
  
  arg1 = (Species *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Species__SWIG_2(void * jarg1) {
  void * jresult ;
  Species *arg1 = 0 ;
  Species *result = 0 ;
  
  arg1 = (Species *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Species const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Species *)new Species((Species const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Species_clone(void * jarg1) {
  void * jresult ;
  Species *arg1 = (Species *) 0 ;
  Species *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (Species *)((Species const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Species_initDefaults(void * jarg1) {
  Species *arg1 = (Species *) 0 ;
  
  arg1 = (Species *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getId(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getName(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getSpeciesType(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getSpeciesType();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getCompartment(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getCompartment();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Species_getInitialAmount(void * jarg1) {
  double jresult ;
  Species *arg1 = (Species *) 0 ;
  double result;
  
  arg1 = (Species *)jarg1; 
  result = (double)((Species const *)arg1)->getInitialAmount();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Species_getInitialConcentration(void * jarg1) {
  double jresult ;
  Species *arg1 = (Species *) 0 ;
  double result;
  
  arg1 = (Species *)jarg1; 
  result = (double)((Species const *)arg1)->getInitialConcentration();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getSubstanceUnits(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getSubstanceUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getSpatialSizeUnits(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getSpatialSizeUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getUnits(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_getHasOnlySubstanceUnits(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->getHasOnlySubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_getBoundaryCondition(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->getBoundaryCondition();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_getCharge(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)((Species const *)arg1)->getCharge();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_getConstant(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->getConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getConversionFactor(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getConversionFactor();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetId(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetName(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetSpeciesType(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetSpeciesType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetCompartment(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetCompartment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetInitialAmount(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetInitialAmount();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetInitialConcentration(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetInitialConcentration();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetSubstanceUnits(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetSpatialSizeUnits(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetSpatialSizeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetUnits(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetCharge(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetCharge();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetConversionFactor(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetConversionFactor();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetBoundaryCondition(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetBoundaryCondition();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetHasOnlySubstanceUnits(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetHasOnlySubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_isSetConstant(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->isSetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setSpeciesType(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSpeciesType((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setCompartment(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setCompartment((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setInitialAmount(void * jarg1, double jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setInitialAmount(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setInitialConcentration(void * jarg1, double jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setInitialConcentration(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setSubstanceUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSubstanceUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setSpatialSizeUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSpatialSizeUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setHasOnlySubstanceUnits(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setHasOnlySubstanceUnits(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setBoundaryCondition(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setBoundaryCondition(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setCharge(void * jarg1, int jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setCharge(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setConstant(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setConstant(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_setConversionFactor(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setConversionFactor((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetName(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetConstant(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetSpeciesType(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetSpeciesType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetInitialAmount(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetInitialAmount();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetInitialConcentration(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetInitialConcentration();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetSubstanceUnits(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetSpatialSizeUnits(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetSpatialSizeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetUnits(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetCharge(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetCharge();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetConversionFactor(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetConversionFactor();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetCompartment(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetCompartment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetBoundaryCondition(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetBoundaryCondition();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_unsetHasOnlySubstanceUnits(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)(arg1)->unsetHasOnlySubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Species_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  Species *arg1 = (Species *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Species_getTypeCode(void * jarg1) {
  int jresult ;
  Species *arg1 = (Species *) 0 ;
  int result;
  
  arg1 = (Species *)jarg1; 
  result = (int)((Species const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Species_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Species *arg1 = (Species *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Species *)jarg1; 
  result = (std::string *) &((Species const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Species_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Species *arg1 = (Species *) 0 ;
  bool result;
  
  arg1 = (Species *)jarg1; 
  result = (bool)((Species const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Species_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Species_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Species *arg1 = (Species *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Species *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpecies__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfSpecies *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfSpecies *)new ListOfSpecies(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpecies__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfSpecies *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfSpecies *)new ListOfSpecies(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpecies_clone(void * jarg1) {
  void * jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  ListOfSpecies *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  result = (ListOfSpecies *)((ListOfSpecies const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfSpecies_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  int result;
  
  arg1 = (ListOfSpecies *)jarg1; 
  result = (int)((ListOfSpecies const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfSpecies_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  result = (std::string *) &((ListOfSpecies const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpecies_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  unsigned int arg2 ;
  Species *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Species *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpecies_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Species *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Species *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpecies_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  unsigned int arg2 ;
  Species *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Species *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpecies_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Species *result = 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Species *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfSpecies(void * jarg1) {
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Parameter__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Parameter *)new Parameter(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Parameter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Parameter *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Parameter *)new Parameter(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Parameter(void * jarg1) {
  Parameter *arg1 = (Parameter *) 0 ;
  
  arg1 = (Parameter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Parameter__SWIG_2(void * jarg1) {
  void * jresult ;
  Parameter *arg1 = 0 ;
  Parameter *result = 0 ;
  
  arg1 = (Parameter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Parameter const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Parameter *)new Parameter((Parameter const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Parameter_clone(void * jarg1) {
  void * jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  Parameter *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (Parameter *)((Parameter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Parameter_initDefaults(void * jarg1) {
  Parameter *arg1 = (Parameter *) 0 ;
  
  arg1 = (Parameter *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Parameter_getId(void * jarg1) {
  wchar_t* jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (std::string *) &((Parameter const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Parameter_getName(void * jarg1) {
  wchar_t* jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (std::string *) &((Parameter const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Parameter_getValue(void * jarg1) {
  double jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  double result;
  
  arg1 = (Parameter *)jarg1; 
  result = (double)((Parameter const *)arg1)->getValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Parameter_getUnits(void * jarg1) {
  wchar_t* jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (std::string *) &((Parameter const *)arg1)->getUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_getConstant(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->getConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_isSetId(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_isSetName(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_isSetValue(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->isSetValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_isSetUnits(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->isSetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_isSetConstant(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->isSetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_setValue(void * jarg1, double jarg2) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setValue(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_setUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_setConstant(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setConstant(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_unsetName(void * jarg1) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_unsetConstant(void * jarg1) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  result = (int)(arg1)->unsetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_unsetValue(void * jarg1) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  result = (int)(arg1)->unsetValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_unsetUnits(void * jarg1) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  result = (int)(arg1)->unsetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Parameter_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Parameter_getTypeCode(void * jarg1) {
  int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  int result;
  
  arg1 = (Parameter *)jarg1; 
  result = (int)((Parameter const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Parameter_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Parameter *)jarg1; 
  result = (std::string *) &((Parameter const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Parameter_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Parameter *arg1 = (Parameter *) 0 ;
  bool result;
  
  arg1 = (Parameter *)jarg1; 
  result = (bool)((Parameter const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Parameter_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Parameter *arg1 = (Parameter *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Parameter *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Parameter_setCalculatingUnits(void * jarg1, unsigned int jarg2) {
  Parameter *arg1 = (Parameter *) 0 ;
  bool arg2 ;
  
  arg1 = (Parameter *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setCalculatingUnits(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfParameters__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfParameters *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfParameters *)new ListOfParameters(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfParameters__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfParameters *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfParameters *)new ListOfParameters(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfParameters_clone(void * jarg1) {
  void * jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  ListOfParameters *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  result = (ListOfParameters *)((ListOfParameters const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfParameters_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  int result;
  
  arg1 = (ListOfParameters *)jarg1; 
  result = (int)((ListOfParameters const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfParameters_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  result = (std::string *) &((ListOfParameters const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfParameters_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfParameters_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfParameters_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfParameters_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfParameters(void * jarg1) {
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_LocalParameter__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  LocalParameter *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (LocalParameter *)new LocalParameter(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_LocalParameter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (LocalParameter *)new LocalParameter(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_LocalParameter(void * jarg1) {
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  
  arg1 = (LocalParameter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_LocalParameter__SWIG_2(void * jarg1) {
  void * jresult ;
  LocalParameter *arg1 = 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (LocalParameter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "LocalParameter const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (LocalParameter *)new LocalParameter((LocalParameter const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_LocalParameter__SWIG_3(void * jarg1) {
  void * jresult ;
  Parameter *arg1 = 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (Parameter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Parameter const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (LocalParameter *)new LocalParameter((Parameter const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_LocalParameter_clone(void * jarg1) {
  void * jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (LocalParameter *)((LocalParameter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_LocalParameter_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_LocalParameter_getTypeCode(void * jarg1) {
  int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  int result;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (int)((LocalParameter const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_LocalParameter_getElementName(void * jarg1) {
  wchar_t* jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (std::string *) &((LocalParameter const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LocalParameter_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  bool result;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (bool)((LocalParameter const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LocalParameter_getConstant(void * jarg1) {
  unsigned int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  bool result;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (bool)((LocalParameter const *)arg1)->getConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LocalParameter_isSetConstant(void * jarg1) {
  unsigned int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  bool result;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (bool)((LocalParameter const *)arg1)->isSetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_LocalParameter_setConstant(void * jarg1, unsigned int jarg2) {
  int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (LocalParameter *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setConstant(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_LocalParameter_unsetConstant(void * jarg1) {
  int jresult ;
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  int result;
  
  arg1 = (LocalParameter *)jarg1; 
  result = (int)(arg1)->unsetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfLocalParameters__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfLocalParameters *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfLocalParameters *)new ListOfLocalParameters(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfLocalParameters__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfLocalParameters *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfLocalParameters *)new ListOfLocalParameters(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_clone(void * jarg1) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  ListOfLocalParameters *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  result = (ListOfLocalParameters *)((ListOfLocalParameters const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfLocalParameters_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  int result;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  result = (int)((ListOfLocalParameters const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfLocalParameters_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  result = (std::string *) &((ListOfLocalParameters const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  unsigned int arg2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (LocalParameter *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (LocalParameter *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  unsigned int arg2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (LocalParameter *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfLocalParameters_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (LocalParameter *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfLocalParameters(void * jarg1) {
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_InitialAssignment__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  InitialAssignment *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (InitialAssignment *)new InitialAssignment(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_InitialAssignment__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (InitialAssignment *)new InitialAssignment(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_InitialAssignment(void * jarg1) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_InitialAssignment__SWIG_2(void * jarg1) {
  void * jresult ;
  InitialAssignment *arg1 = 0 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "InitialAssignment const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (InitialAssignment *)new InitialAssignment((InitialAssignment const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_InitialAssignment_clone(void * jarg1) {
  void * jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (InitialAssignment *)((InitialAssignment const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_InitialAssignment_getSymbol(void * jarg1) {
  wchar_t* jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (std::string *) &((InitialAssignment const *)arg1)->getSymbol();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_InitialAssignment_getMath(void * jarg1) {
  void * jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (ASTNode *)((InitialAssignment const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_InitialAssignment_isSetSymbol(void * jarg1) {
  unsigned int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  bool result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (bool)((InitialAssignment const *)arg1)->isSetSymbol();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_InitialAssignment_isSetMath(void * jarg1) {
  unsigned int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  bool result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (bool)((InitialAssignment const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_InitialAssignment_setSymbol(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSymbol((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_InitialAssignment_unsetSymbol(void * jarg1) {
  int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  int result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (int)(arg1)->unsetSymbol();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_InitialAssignment_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (InitialAssignment *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_InitialAssignment_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_InitialAssignment_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  bool result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_InitialAssignment_getTypeCode(void * jarg1) {
  int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  int result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (int)((InitialAssignment const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_InitialAssignment_getElementName(void * jarg1) {
  wchar_t* jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (std::string *) &((InitialAssignment const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_InitialAssignment_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  bool result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (bool)((InitialAssignment const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_InitialAssignment_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  bool result;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (bool)((InitialAssignment const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_InitialAssignment_getId(void * jarg1) {
  wchar_t* jresult ;
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  result = (std::string *) &((InitialAssignment const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_InitialAssignment_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_InitialAssignment_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_InitialAssignment_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_InitialAssignment_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_InitialAssignment_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfInitialAssignments__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfInitialAssignments *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfInitialAssignments *)new ListOfInitialAssignments(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfInitialAssignments__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfInitialAssignments *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfInitialAssignments *)new ListOfInitialAssignments(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_clone(void * jarg1) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  ListOfInitialAssignments *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  result = (ListOfInitialAssignments *)((ListOfInitialAssignments const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfInitialAssignments_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  int result;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  result = (int)((ListOfInitialAssignments const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfInitialAssignments_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  result = (std::string *) &((ListOfInitialAssignments const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  unsigned int arg2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (InitialAssignment *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (InitialAssignment *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  unsigned int arg2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (InitialAssignment *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  InitialAssignment *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (InitialAssignment *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfInitialAssignments_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfInitialAssignments(void * jarg1) {
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Rule(void * jarg1) {
  Rule *arg1 = (Rule *) 0 ;
  
  arg1 = (Rule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Rule(void * jarg1) {
  void * jresult ;
  Rule *arg1 = 0 ;
  Rule *result = 0 ;
  
  arg1 = (Rule *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Rule const & type is null", 0);
    return 0;
  } 
  result = (Rule *)new Rule((Rule const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Rule_clone(void * jarg1) {
  void * jresult ;
  Rule *arg1 = (Rule *) 0 ;
  Rule *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (Rule *)((Rule const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Rule_getFormula(void * jarg1) {
  wchar_t* jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (std::string *) &((Rule const *)arg1)->getFormula();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Rule_getMath(void * jarg1) {
  void * jresult ;
  Rule *arg1 = (Rule *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (ASTNode *)((Rule const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Rule_getVariable(void * jarg1) {
  wchar_t* jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (std::string *) &((Rule const *)arg1)->getVariable();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Rule_getUnits(void * jarg1) {
  wchar_t* jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (std::string *) &((Rule const *)arg1)->getUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isSetFormula(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isSetFormula();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isSetMath(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isSetVariable(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isSetVariable();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isSetUnits(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isSetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_setFormula(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setFormula((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_setVariable(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setVariable((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_setUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_unsetVariable(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  result = (int)(arg1)->unsetVariable();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_unsetUnits(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  result = (int)(arg1)->unsetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Rule_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  Rule *arg1 = (Rule *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_getType(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  RuleType_t result;
  
  arg1 = (Rule *)jarg1; 
  result = (RuleType_t)((Rule const *)arg1)->getType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isAlgebraic(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isAlgebraic();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isAssignment(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isAssignment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isCompartmentVolume(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isCompartmentVolume();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isParameter(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isParameter();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isRate(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isRate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isScalar(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isScalar();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_isSpeciesConcentration(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->isSpeciesConcentration();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_getTypeCode(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  result = (int)((Rule const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_getL1TypeCode(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  result = (int)((Rule const *)arg1)->getL1TypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Rule_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (std::string *) &((Rule const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Rule_setL1TypeCode(void * jarg1, int jarg2) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (Rule *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setL1TypeCode(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Rule_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  bool result;
  
  arg1 = (Rule *)jarg1; 
  result = (bool)((Rule const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Rule_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Rule_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Rule_getId(void * jarg1) {
  wchar_t* jresult ;
  Rule *arg1 = (Rule *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Rule *)jarg1; 
  result = (std::string *) &((Rule const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Rule_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Rule_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Rule_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Rule *arg1 = (Rule *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Rule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfRules__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfRules *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfRules *)new ListOfRules(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfRules__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfRules *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfRules *)new ListOfRules(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_clone(void * jarg1) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  ListOfRules *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  result = (ListOfRules *)((ListOfRules const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfRules_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  int result;
  
  arg1 = (ListOfRules *)jarg1; 
  result = (int)((ListOfRules const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfRules_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  result = (std::string *) &((ListOfRules const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  unsigned int arg2 ;
  Rule *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Rule *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  unsigned int arg2 ;
  Rule *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Rule *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfRules_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Rule *result = 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Rule *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfRules(void * jarg1) {
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_AlgebraicRule__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  AlgebraicRule *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (AlgebraicRule *)new AlgebraicRule(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_AlgebraicRule__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  AlgebraicRule *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (AlgebraicRule *)new AlgebraicRule(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_AlgebraicRule(void * jarg1) {
  AlgebraicRule *arg1 = (AlgebraicRule *) 0 ;
  
  arg1 = (AlgebraicRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_AlgebraicRule_clone(void * jarg1) {
  void * jresult ;
  AlgebraicRule *arg1 = (AlgebraicRule *) 0 ;
  AlgebraicRule *result = 0 ;
  
  arg1 = (AlgebraicRule *)jarg1; 
  result = (AlgebraicRule *)((AlgebraicRule const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_AlgebraicRule_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  AlgebraicRule *arg1 = (AlgebraicRule *) 0 ;
  bool result;
  
  arg1 = (AlgebraicRule *)jarg1; 
  result = (bool)((AlgebraicRule const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_AssignmentRule__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  AssignmentRule *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (AssignmentRule *)new AssignmentRule(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_AssignmentRule__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  AssignmentRule *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (AssignmentRule *)new AssignmentRule(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_AssignmentRule(void * jarg1) {
  AssignmentRule *arg1 = (AssignmentRule *) 0 ;
  
  arg1 = (AssignmentRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_AssignmentRule_clone(void * jarg1) {
  void * jresult ;
  AssignmentRule *arg1 = (AssignmentRule *) 0 ;
  AssignmentRule *result = 0 ;
  
  arg1 = (AssignmentRule *)jarg1; 
  result = (AssignmentRule *)((AssignmentRule const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_AssignmentRule_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  AssignmentRule *arg1 = (AssignmentRule *) 0 ;
  bool result;
  
  arg1 = (AssignmentRule *)jarg1; 
  result = (bool)((AssignmentRule const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_AssignmentRule_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  AssignmentRule *arg1 = (AssignmentRule *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (AssignmentRule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RateRule__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  RateRule *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (RateRule *)new RateRule(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RateRule__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  RateRule *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (RateRule *)new RateRule(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RateRule(void * jarg1) {
  RateRule *arg1 = (RateRule *) 0 ;
  
  arg1 = (RateRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RateRule_clone(void * jarg1) {
  void * jresult ;
  RateRule *arg1 = (RateRule *) 0 ;
  RateRule *result = 0 ;
  
  arg1 = (RateRule *)jarg1; 
  result = (RateRule *)((RateRule const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RateRule_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  RateRule *arg1 = (RateRule *) 0 ;
  bool result;
  
  arg1 = (RateRule *)jarg1; 
  result = (bool)((RateRule const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_RateRule_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  RateRule *arg1 = (RateRule *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (RateRule *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Constraint__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Constraint *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Constraint *)new Constraint(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Constraint__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Constraint *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Constraint *)new Constraint(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Constraint(void * jarg1) {
  Constraint *arg1 = (Constraint *) 0 ;
  
  arg1 = (Constraint *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Constraint__SWIG_2(void * jarg1) {
  void * jresult ;
  Constraint *arg1 = 0 ;
  Constraint *result = 0 ;
  
  arg1 = (Constraint *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Constraint const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Constraint *)new Constraint((Constraint const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Constraint_clone(void * jarg1) {
  void * jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  Constraint *result = 0 ;
  
  arg1 = (Constraint *)jarg1; 
  result = (Constraint *)((Constraint const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Constraint_getMessage(void * jarg1) {
  void * jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (Constraint *)jarg1; 
  result = (XMLNode *)((Constraint const *)arg1)->getMessage();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Constraint_getMessageString(void * jarg1) {
  wchar_t* jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  std::string result;
  
  arg1 = (Constraint *)jarg1; 
  result = ((Constraint const *)arg1)->getMessageString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Constraint_getMath(void * jarg1) {
  void * jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (Constraint *)jarg1; 
  result = (ASTNode *)((Constraint const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Constraint_isSetMessage(void * jarg1) {
  unsigned int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  bool result;
  
  arg1 = (Constraint *)jarg1; 
  result = (bool)((Constraint const *)arg1)->isSetMessage();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Constraint_isSetMath(void * jarg1) {
  unsigned int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  bool result;
  
  arg1 = (Constraint *)jarg1; 
  result = (bool)((Constraint const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_setMessage__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->setMessage((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_setMessage__SWIG_1(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->setMessage((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_setMessage__SWIG_2(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setMessage((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_unsetMessage(void * jarg1) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  result = (int)(arg1)->unsetMessage();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Constraint_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Constraint *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Constraint_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Constraint *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Constraint_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Constraint *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT int SWIGSTDCALL CSharp_Constraint_getTypeCode(void * jarg1) {
  int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  int result;
  
  arg1 = (Constraint *)jarg1; 
  result = (int)((Constraint const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Constraint_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Constraint *)jarg1; 
  result = (std::string *) &((Constraint const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Constraint_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Constraint *arg1 = (Constraint *) 0 ;
  bool result;
  
  arg1 = (Constraint *)jarg1; 
  result = (bool)((Constraint const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfConstraints__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfConstraints *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfConstraints *)new ListOfConstraints(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfConstraints__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfConstraints *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfConstraints *)new ListOfConstraints(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfConstraints_clone(void * jarg1) {
  void * jresult ;
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  ListOfConstraints *result = 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  result = (ListOfConstraints *)((ListOfConstraints const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfConstraints_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  int result;
  
  arg1 = (ListOfConstraints *)jarg1; 
  result = (int)((ListOfConstraints const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfConstraints_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  result = (std::string *) &((ListOfConstraints const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfConstraints_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  unsigned int arg2 ;
  Constraint *result = 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Constraint *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfConstraints_remove(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  unsigned int arg2 ;
  Constraint *result = 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Constraint *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfConstraints(void * jarg1) {
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Reaction__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Reaction *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Reaction *)new Reaction(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Reaction__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Reaction *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Reaction *)new Reaction(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Reaction(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Reaction__SWIG_2(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = 0 ;
  Reaction *result = 0 ;
  
  arg1 = (Reaction *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Reaction const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Reaction *)new Reaction((Reaction const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_clone(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Reaction *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (Reaction *)((Reaction const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Reaction_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Reaction_initDefaults(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Reaction_getId(void * jarg1) {
  wchar_t* jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (std::string *) &((Reaction const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Reaction_getName(void * jarg1) {
  wchar_t* jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (std::string *) &((Reaction const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getKineticLaw__SWIG_0(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (KineticLaw *)((Reaction const *)arg1)->getKineticLaw();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_getReversible(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->getReversible();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_getFast(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->getFast();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Reaction_getCompartment(void * jarg1) {
  wchar_t* jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (std::string *) &((Reaction const *)arg1)->getCompartment();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetId(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetName(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetKineticLaw(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetKineticLaw();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetFast(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetFast();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetCompartment(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetCompartment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_isSetReversible(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->isSetReversible();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setKineticLaw(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  KineticLaw *arg2 = (KineticLaw *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (KineticLaw *)jarg2; 
  result = (int)(arg1)->setKineticLaw((KineticLaw const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setReversible(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setReversible(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setFast(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setFast(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_setCompartment(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setCompartment((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_unsetName(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_unsetKineticLaw(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)(arg1)->unsetKineticLaw();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_unsetFast(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)(arg1)->unsetFast();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_unsetCompartment(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)(arg1)->unsetCompartment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_unsetReversible(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)(arg1)->unsetReversible();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addReactant__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  SpeciesReference *arg2 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (SpeciesReference *)jarg2; 
  result = (int)(arg1)->addReactant((SpeciesReference const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addReactant__SWIG_1(void * jarg1, void * jarg2, double jarg3, wchar_t* jarg4, unsigned int jarg5) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  std::string *arg4 = 0 ;
  bool arg5 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  arg5 = jarg5 ? true : false; 
  result = (int)(arg1)->addReactant((Species const *)arg2,arg3,(std::string const &)*arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addReactant__SWIG_2(void * jarg1, void * jarg2, double jarg3, wchar_t* jarg4) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->addReactant((Species const *)arg2,arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addReactant__SWIG_3(void * jarg1, void * jarg2, double jarg3) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  result = (int)(arg1)->addReactant((Species const *)arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addReactant__SWIG_4(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  result = (int)(arg1)->addReactant((Species const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addProduct__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  SpeciesReference *arg2 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (SpeciesReference *)jarg2; 
  result = (int)(arg1)->addProduct((SpeciesReference const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addProduct__SWIG_1(void * jarg1, void * jarg2, double jarg3, wchar_t* jarg4, unsigned int jarg5) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  std::string *arg4 = 0 ;
  bool arg5 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  arg5 = jarg5 ? true : false; 
  result = (int)(arg1)->addProduct((Species const *)arg2,arg3,(std::string const &)*arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addProduct__SWIG_2(void * jarg1, void * jarg2, double jarg3, wchar_t* jarg4) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->addProduct((Species const *)arg2,arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addProduct__SWIG_3(void * jarg1, void * jarg2, double jarg3) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  double arg3 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  result = (int)(arg1)->addProduct((Species const *)arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addProduct__SWIG_4(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  result = (int)(arg1)->addProduct((Species const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addModifier__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  ModifierSpeciesReference *arg2 = (ModifierSpeciesReference *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (ModifierSpeciesReference *)jarg2; 
  result = (int)(arg1)->addModifier((ModifierSpeciesReference const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addModifier__SWIG_1(void * jarg1, void * jarg2, wchar_t* jarg3) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->addModifier((Species const *)arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_addModifier__SWIG_2(void * jarg1, void * jarg2) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  result = (int)(arg1)->addModifier((Species const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_createReactant(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (SpeciesReference *)(arg1)->createReactant();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_createProduct(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (SpeciesReference *)(arg1)->createProduct();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_createModifier(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (ModifierSpeciesReference *)(arg1)->createModifier();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_createKineticLaw(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (KineticLaw *)(arg1)->createKineticLaw();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getListOfReactants__SWIG_0(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  ListOfSpeciesReferences *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (ListOfSpeciesReferences *)((Reaction const *)arg1)->getListOfReactants();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getListOfProducts__SWIG_0(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  ListOfSpeciesReferences *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (ListOfSpeciesReferences *)((Reaction const *)arg1)->getListOfProducts();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getListOfModifiers__SWIG_0(void * jarg1) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  ListOfSpeciesReferences *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (ListOfSpeciesReferences *)((Reaction const *)arg1)->getListOfModifiers();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getReactant__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesReference *)((Reaction const *)arg1)->getReactant(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getReactant__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesReference *)((Reaction const *)arg1)->getReactant((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getProduct__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesReference *)((Reaction const *)arg1)->getProduct(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getProduct__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesReference *)((Reaction const *)arg1)->getProduct((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getModifier__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ModifierSpeciesReference *)((Reaction const *)arg1)->getModifier(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_getModifier__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ModifierSpeciesReference *)((Reaction const *)arg1)->getModifier((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_getNumReactants(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (unsigned int)((Reaction const *)arg1)->getNumReactants();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_getNumProducts(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (unsigned int)((Reaction const *)arg1)->getNumProducts();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_getNumModifiers(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (unsigned int)((Reaction const *)arg1)->getNumModifiers();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeReactant__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesReference *)(arg1)->removeReactant(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeReactant__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesReference *)(arg1)->removeReactant((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeProduct__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SpeciesReference *)(arg1)->removeProduct(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeProduct__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SpeciesReference *)(arg1)->removeProduct((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeModifier__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  unsigned int arg2 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ModifierSpeciesReference *)(arg1)->removeModifier(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Reaction_removeModifier__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ModifierSpeciesReference *)(arg1)->removeModifier((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Reaction_connectToChild(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Reaction_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Reaction *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_Reaction_getTypeCode(void * jarg1) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  result = (int)((Reaction const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Reaction_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Reaction *)jarg1; 
  result = (std::string *) &((Reaction const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Reaction_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  bool result;
  
  arg1 = (Reaction *)jarg1; 
  result = (bool)((Reaction const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfReactions__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfReactions *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfReactions *)new ListOfReactions(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfReactions__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfReactions *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfReactions *)new ListOfReactions(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfReactions_clone(void * jarg1) {
  void * jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  ListOfReactions *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  result = (ListOfReactions *)((ListOfReactions const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfReactions_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  int result;
  
  arg1 = (ListOfReactions *)jarg1; 
  result = (int)((ListOfReactions const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfReactions_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  result = (std::string *) &((ListOfReactions const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfReactions_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  unsigned int arg2 ;
  Reaction *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Reaction *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfReactions_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Reaction *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Reaction *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfReactions_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  unsigned int arg2 ;
  Reaction *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Reaction *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfReactions_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Reaction *result = 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Reaction *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfReactions(void * jarg1) {
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_KineticLaw__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  KineticLaw *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (KineticLaw *)new KineticLaw(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_KineticLaw__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (KineticLaw *)new KineticLaw(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_KineticLaw(void * jarg1) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_KineticLaw__SWIG_2(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "KineticLaw const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (KineticLaw *)new KineticLaw((KineticLaw const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_clone(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  KineticLaw *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (KineticLaw *)((KineticLaw const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_KineticLaw_getFormula(void * jarg1) {
  wchar_t* jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (std::string *) &((KineticLaw const *)arg1)->getFormula();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getMath(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (ASTNode *)((KineticLaw const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_KineticLaw_getTimeUnits(void * jarg1) {
  wchar_t* jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (std::string *) &((KineticLaw const *)arg1)->getTimeUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_KineticLaw_getSubstanceUnits(void * jarg1) {
  wchar_t* jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (std::string *) &((KineticLaw const *)arg1)->getSubstanceUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_isSetFormula(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->isSetFormula();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_isSetMath(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_isSetTimeUnits(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->isSetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_isSetSubstanceUnits(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->isSetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_setFormula(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setFormula((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_setTimeUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setTimeUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_setSubstanceUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSubstanceUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_unsetTimeUnits(void * jarg1) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (int)(arg1)->unsetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_unsetSubstanceUnits(void * jarg1) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (int)(arg1)->unsetSubstanceUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_addParameter(void * jarg1, void * jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  Parameter *arg2 = (Parameter *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  arg2 = (Parameter *)jarg2; 
  result = (int)(arg1)->addParameter((Parameter const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_addLocalParameter(void * jarg1, void * jarg2) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  LocalParameter *arg2 = (LocalParameter *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  arg2 = (LocalParameter *)jarg2; 
  result = (int)(arg1)->addLocalParameter((LocalParameter const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_createParameter(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  Parameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (Parameter *)(arg1)->createParameter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_createLocalParameter(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  LocalParameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (LocalParameter *)(arg1)->createLocalParameter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getListOfParameters__SWIG_0(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  ListOfParameters *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (ListOfParameters *)((KineticLaw const *)arg1)->getListOfParameters();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getListOfLocalParameters__SWIG_0(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  ListOfLocalParameters *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (ListOfLocalParameters *)((KineticLaw const *)arg1)->getListOfLocalParameters();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)((KineticLaw const *)arg1)->getParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getLocalParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int arg2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (LocalParameter *)((KineticLaw const *)arg1)->getLocalParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getParameter__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)((KineticLaw const *)arg1)->getParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getLocalParameter__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (LocalParameter *)((KineticLaw const *)arg1)->getLocalParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_getNumParameters(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (unsigned int)((KineticLaw const *)arg1)->getNumParameters();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_getNumLocalParameters(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (unsigned int)((KineticLaw const *)arg1)->getNumLocalParameters();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_removeParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int arg2 ;
  Parameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Parameter *)(arg1)->removeParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_removeLocalParameter__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  unsigned int arg2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (LocalParameter *)(arg1)->removeLocalParameter(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_removeParameter__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Parameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Parameter *)(arg1)->removeParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_KineticLaw_removeLocalParameter__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  LocalParameter *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (LocalParameter *)(arg1)->removeLocalParameter((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_connectToChild(void * jarg1) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_getTypeCode(void * jarg1) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (int)((KineticLaw const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_KineticLaw_getElementName(void * jarg1) {
  wchar_t* jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (std::string *) &((KineticLaw const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_KineticLaw_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  bool result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (bool)((KineticLaw const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_KineticLaw_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  int result;
  
  arg1 = (KineticLaw *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_KineticLaw_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (KineticLaw *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SimpleSpeciesReference(void * jarg1) {
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SimpleSpeciesReference_getId(void * jarg1) {
  wchar_t* jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (std::string *) &((SimpleSpeciesReference const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SimpleSpeciesReference_getName(void * jarg1) {
  wchar_t* jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (std::string *) &((SimpleSpeciesReference const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SimpleSpeciesReference_getSpecies(void * jarg1) {
  wchar_t* jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (std::string *) &((SimpleSpeciesReference const *)arg1)->getSpecies();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SimpleSpeciesReference_isSetId(void * jarg1) {
  unsigned int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (bool)((SimpleSpeciesReference const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SimpleSpeciesReference_isSetName(void * jarg1) {
  unsigned int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (bool)((SimpleSpeciesReference const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SimpleSpeciesReference_isSetSpecies(void * jarg1) {
  unsigned int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (bool)((SimpleSpeciesReference const *)arg1)->isSetSpecies();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_setSpecies(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setSpecies((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_unsetId(void * jarg1) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_unsetName(void * jarg1) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SimpleSpeciesReference_unsetSpecies(void * jarg1) {
  int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  int result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetSpecies();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SimpleSpeciesReference_isModifier(void * jarg1) {
  unsigned int jresult ;
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  result = (bool)((SimpleSpeciesReference const *)arg1)->isModifier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SimpleSpeciesReference_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesReference__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  SpeciesReference *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (SpeciesReference *)new SpeciesReference(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesReference__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (SpeciesReference *)new SpeciesReference(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SpeciesReference(void * jarg1) {
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpeciesReference__SWIG_2(void * jarg1) {
  void * jresult ;
  SpeciesReference *arg1 = 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (SpeciesReference *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SpeciesReference const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (SpeciesReference *)new SpeciesReference((SpeciesReference const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpeciesReference_clone(void * jarg1) {
  void * jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  SpeciesReference *result = 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (SpeciesReference *)((SpeciesReference const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SpeciesReference_initDefaults(void * jarg1) {
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpeciesReference_getStoichiometry(void * jarg1) {
  double jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  double result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (double)((SpeciesReference const *)arg1)->getStoichiometry();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpeciesReference_getStoichiometryMath__SWIG_0(void * jarg1) {
  void * jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  StoichiometryMath *result = 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (StoichiometryMath *)((SpeciesReference const *)arg1)->getStoichiometryMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_getDenominator(void * jarg1) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (int)((SpeciesReference const *)arg1)->getDenominator();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesReference_getConstant(void * jarg1) {
  unsigned int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (bool)((SpeciesReference const *)arg1)->getConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesReference_isSetStoichiometryMath(void * jarg1) {
  unsigned int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (bool)((SpeciesReference const *)arg1)->isSetStoichiometryMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesReference_isSetConstant(void * jarg1) {
  unsigned int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (bool)((SpeciesReference const *)arg1)->isSetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesReference_isSetStoichiometry(void * jarg1) {
  unsigned int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (bool)((SpeciesReference const *)arg1)->isSetStoichiometry();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setStoichiometry(void * jarg1, double jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setStoichiometry(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setStoichiometryMath(void * jarg1, void * jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  StoichiometryMath *arg2 = (StoichiometryMath *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = (StoichiometryMath *)jarg2; 
  result = (int)(arg1)->setStoichiometryMath((StoichiometryMath const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setDenominator(void * jarg1, int jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setDenominator(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setConstant(void * jarg1, unsigned int jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setConstant(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_unsetStoichiometryMath(void * jarg1) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetStoichiometryMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_unsetStoichiometry(void * jarg1) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetStoichiometry();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_unsetConstant(void * jarg1) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (int)(arg1)->unsetConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpeciesReference_createStoichiometryMath(void * jarg1) {
  void * jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  StoichiometryMath *result = 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (StoichiometryMath *)(arg1)->createStoichiometryMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->setAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_setAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_appendAnnotation__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->appendAnnotation((XMLNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_appendAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->appendAnnotation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpeciesReference_getTypeCode(void * jarg1) {
  int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  int result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (int)((SpeciesReference const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SpeciesReference_getElementName(void * jarg1) {
  wchar_t* jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (std::string *) &((SpeciesReference const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SpeciesReference_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  bool result;
  
  arg1 = (SpeciesReference *)jarg1; 
  result = (bool)((SpeciesReference const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpeciesReferences__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfSpeciesReferences *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfSpeciesReferences *)new ListOfSpeciesReferences(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfSpeciesReferences__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfSpeciesReferences *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfSpeciesReferences *)new ListOfSpeciesReferences(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesReferences_clone(void * jarg1) {
  void * jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  ListOfSpeciesReferences *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  result = (ListOfSpeciesReferences *)((ListOfSpeciesReferences const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfSpeciesReferences_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  int result;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  result = (int)((ListOfSpeciesReferences const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfSpeciesReferences_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  result = (std::string *) &((ListOfSpeciesReferences const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesReferences_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  unsigned int arg2 ;
  SimpleSpeciesReference *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SimpleSpeciesReference *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesReferences_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SimpleSpeciesReference *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SimpleSpeciesReference *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesReferences_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  unsigned int arg2 ;
  SimpleSpeciesReference *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SimpleSpeciesReference *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfSpeciesReferences_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SimpleSpeciesReference *result = 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SimpleSpeciesReference *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ListOfSpeciesReferences_getType(void * jarg1) {
  unsigned int jresult ;
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  unsigned int result;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  result = (unsigned int)((ListOfSpeciesReferences const *)arg1)->getType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfSpeciesReferences(void * jarg1) {
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModifierSpeciesReference__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ModifierSpeciesReference *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ModifierSpeciesReference *)new ModifierSpeciesReference(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModifierSpeciesReference__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ModifierSpeciesReference *)new ModifierSpeciesReference(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ModifierSpeciesReference(void * jarg1) {
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModifierSpeciesReference_clone(void * jarg1) {
  void * jresult ;
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  ModifierSpeciesReference *result = 0 ;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  result = (ModifierSpeciesReference *)((ModifierSpeciesReference const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModifierSpeciesReference_getTypeCode(void * jarg1) {
  int jresult ;
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  int result;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  result = (int)((ModifierSpeciesReference const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModifierSpeciesReference_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  result = (std::string *) &((ModifierSpeciesReference const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModifierSpeciesReference_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  bool result;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  result = (bool)((ModifierSpeciesReference const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Event__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Event *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Event *)new Event(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Event__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Event *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Event *)new Event(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Event(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Event__SWIG_2(void * jarg1) {
  void * jresult ;
  Event *arg1 = 0 ;
  Event *result = 0 ;
  
  arg1 = (Event *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Event const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Event *)new Event((Event const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_clone(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Event *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Event *)((Event const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Event_initDefaults(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Event_getId(void * jarg1) {
  wchar_t* jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (std::string *) &((Event const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Event_getName(void * jarg1) {
  wchar_t* jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (std::string *) &((Event const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getTrigger__SWIG_0(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Trigger *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Trigger *)((Event const *)arg1)->getTrigger();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getDelay__SWIG_0(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Delay *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Delay *)((Event const *)arg1)->getDelay();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getPriority__SWIG_0(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Priority *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Priority *)((Event const *)arg1)->getPriority();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Event_getTimeUnits(void * jarg1) {
  wchar_t* jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (std::string *) &((Event const *)arg1)->getTimeUnits();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_getUseValuesFromTriggerTime(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->getUseValuesFromTriggerTime();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetId(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetName(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetTrigger(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetTrigger();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetDelay(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetDelay();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetPriority(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetPriority();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetTimeUnits(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_isSetUseValuesFromTriggerTime(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->isSetUseValuesFromTriggerTime();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setTrigger(void * jarg1, void * jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  Trigger *arg2 = (Trigger *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  arg2 = (Trigger *)jarg2; 
  result = (int)(arg1)->setTrigger((Trigger const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setDelay(void * jarg1, void * jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  Delay *arg2 = (Delay *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  arg2 = (Delay *)jarg2; 
  result = (int)(arg1)->setDelay((Delay const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setPriority(void * jarg1, void * jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  Priority *arg2 = (Priority *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  arg2 = (Priority *)jarg2; 
  result = (int)(arg1)->setPriority((Priority const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setTimeUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setTimeUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_setUseValuesFromTriggerTime(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setUseValuesFromTriggerTime(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetId(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetName(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetUseValuesFromTriggerTime(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetUseValuesFromTriggerTime();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetDelay(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetDelay();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetPriority(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetPriority();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetTrigger(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetTrigger();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_unsetTimeUnits(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)(arg1)->unsetTimeUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_addEventAssignment(void * jarg1, void * jarg2) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  EventAssignment *arg2 = (EventAssignment *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  arg2 = (EventAssignment *)jarg2; 
  result = (int)(arg1)->addEventAssignment((EventAssignment const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_createEventAssignment(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (EventAssignment *)(arg1)->createEventAssignment();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_createTrigger(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Trigger *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Trigger *)(arg1)->createTrigger();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_createDelay(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Delay *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Delay *)(arg1)->createDelay();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_createPriority(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  Priority *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (Priority *)(arg1)->createPriority();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getListOfEventAssignments__SWIG_0(void * jarg1) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  ListOfEventAssignments *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (ListOfEventAssignments *)((Event const *)arg1)->getListOfEventAssignments();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getEventAssignment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  unsigned int arg2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (EventAssignment *)((Event const *)arg1)->getEventAssignment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_getEventAssignment__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (EventAssignment *)((Event const *)arg1)->getEventAssignment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_getNumEventAssignments(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  unsigned int result;
  
  arg1 = (Event *)jarg1; 
  result = (unsigned int)((Event const *)arg1)->getNumEventAssignments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_removeEventAssignment__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  unsigned int arg2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (EventAssignment *)(arg1)->removeEventAssignment(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Event_removeEventAssignment__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (EventAssignment *)(arg1)->removeEventAssignment((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Event_connectToChild(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_Event_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Event *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT int SWIGSTDCALL CSharp_Event_getTypeCode(void * jarg1) {
  int jresult ;
  Event *arg1 = (Event *) 0 ;
  int result;
  
  arg1 = (Event *)jarg1; 
  result = (int)((Event const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Event_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Event *arg1 = (Event *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Event *)jarg1; 
  result = (std::string *) &((Event const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Event_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Event *arg1 = (Event *) 0 ;
  bool result;
  
  arg1 = (Event *)jarg1; 
  result = (bool)((Event const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfEvents__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfEvents *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfEvents *)new ListOfEvents(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfEvents__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfEvents *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfEvents *)new ListOfEvents(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEvents_clone(void * jarg1) {
  void * jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  ListOfEvents *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  result = (ListOfEvents *)((ListOfEvents const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfEvents_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  int result;
  
  arg1 = (ListOfEvents *)jarg1; 
  result = (int)((ListOfEvents const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfEvents_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  result = (std::string *) &((ListOfEvents const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEvents_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  unsigned int arg2 ;
  Event *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Event *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEvents_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Event *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Event *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEvents_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  unsigned int arg2 ;
  Event *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Event *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEvents_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  Event *result = 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (Event *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfEvents(void * jarg1) {
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_EventAssignment__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  EventAssignment *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (EventAssignment *)new EventAssignment(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_EventAssignment__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  EventAssignment *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (EventAssignment *)new EventAssignment(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_EventAssignment(void * jarg1) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_EventAssignment__SWIG_2(void * jarg1) {
  void * jresult ;
  EventAssignment *arg1 = 0 ;
  EventAssignment *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "EventAssignment const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (EventAssignment *)new EventAssignment((EventAssignment const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_EventAssignment_clone(void * jarg1) {
  void * jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  EventAssignment *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (EventAssignment *)((EventAssignment const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_EventAssignment_getVariable(void * jarg1) {
  wchar_t* jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (std::string *) &((EventAssignment const *)arg1)->getVariable();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_EventAssignment_getMath(void * jarg1) {
  void * jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (ASTNode *)((EventAssignment const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_EventAssignment_isSetVariable(void * jarg1) {
  unsigned int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  bool result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (bool)((EventAssignment const *)arg1)->isSetVariable();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_EventAssignment_isSetMath(void * jarg1) {
  unsigned int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  bool result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (bool)((EventAssignment const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_EventAssignment_setVariable(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setVariable((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_EventAssignment_unsetVariable(void * jarg1) {
  int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  int result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (int)(arg1)->unsetVariable();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_EventAssignment_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (EventAssignment *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_EventAssignment_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_EventAssignment_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  bool result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_EventAssignment_getTypeCode(void * jarg1) {
  int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  int result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (int)((EventAssignment const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_EventAssignment_getElementName(void * jarg1) {
  wchar_t* jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (std::string *) &((EventAssignment const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_EventAssignment_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  bool result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (bool)((EventAssignment const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_EventAssignment_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  bool result;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (bool)((EventAssignment const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_EventAssignment_getId(void * jarg1) {
  wchar_t* jresult ;
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  result = (std::string *) &((EventAssignment const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_EventAssignment_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_EventAssignment_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_EventAssignment_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_EventAssignment_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_EventAssignment_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (EventAssignment *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfEventAssignments__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  ListOfEventAssignments *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (ListOfEventAssignments *)new ListOfEventAssignments(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ListOfEventAssignments__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ListOfEventAssignments *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (ListOfEventAssignments *)new ListOfEventAssignments(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_clone(void * jarg1) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  ListOfEventAssignments *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  result = (ListOfEventAssignments *)((ListOfEventAssignments const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ListOfEventAssignments_getItemTypeCode(void * jarg1) {
  int jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  int result;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  result = (int)((ListOfEventAssignments const *)arg1)->getItemTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ListOfEventAssignments_getElementName(void * jarg1) {
  wchar_t* jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  result = (std::string *) &((ListOfEventAssignments const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_get__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  unsigned int arg2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (EventAssignment *)(arg1)->get(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_get__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (EventAssignment *)(arg1)->get((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_remove__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  unsigned int arg2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (EventAssignment *)(arg1)->remove(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  EventAssignment *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (EventAssignment *)(arg1)->remove((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ListOfEventAssignments_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ListOfEventAssignments(void * jarg1) {
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Trigger__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Trigger *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Trigger *)new Trigger(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Trigger__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Trigger *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Trigger *)new Trigger(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Trigger(void * jarg1) {
  Trigger *arg1 = (Trigger *) 0 ;
  
  arg1 = (Trigger *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Trigger__SWIG_2(void * jarg1) {
  void * jresult ;
  Trigger *arg1 = 0 ;
  Trigger *result = 0 ;
  
  arg1 = (Trigger *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Trigger const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Trigger *)new Trigger((Trigger const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Trigger_clone(void * jarg1) {
  void * jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  Trigger *result = 0 ;
  
  arg1 = (Trigger *)jarg1; 
  result = (Trigger *)((Trigger const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Trigger_getMath(void * jarg1) {
  void * jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (Trigger *)jarg1; 
  result = (ASTNode *)((Trigger const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_getInitialValue(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->getInitialValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_getPersistent(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->getPersistent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_isSetMath(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_isSetInitialValue(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->isSetInitialValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_isSetPersistent(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->isSetPersistent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_setInitialValue(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setInitialValue(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_setPersistent(void * jarg1, unsigned int jarg2) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setPersistent(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_unsetInitialValue(void * jarg1) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  result = (int)(arg1)->unsetInitialValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_unsetPersistent(void * jarg1) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  result = (int)(arg1)->unsetPersistent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_getTypeCode(void * jarg1) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  result = (int)((Trigger const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Trigger_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Trigger *)jarg1; 
  result = (std::string *) &((Trigger const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Trigger_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Trigger *arg1 = (Trigger *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Trigger *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Trigger_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Trigger *arg1 = (Trigger *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Trigger *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Trigger_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Trigger *arg1 = (Trigger *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Trigger *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Trigger_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  bool result;
  
  arg1 = (Trigger *)jarg1; 
  result = (bool)((Trigger const *)arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Trigger_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  Trigger *arg1 = (Trigger *) 0 ;
  int result;
  
  arg1 = (Trigger *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Delay__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Delay *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Delay *)new Delay(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Delay__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Delay *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Delay *)new Delay(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Delay(void * jarg1) {
  Delay *arg1 = (Delay *) 0 ;
  
  arg1 = (Delay *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Delay__SWIG_2(void * jarg1) {
  void * jresult ;
  Delay *arg1 = 0 ;
  Delay *result = 0 ;
  
  arg1 = (Delay *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Delay const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Delay *)new Delay((Delay const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Delay_clone(void * jarg1) {
  void * jresult ;
  Delay *arg1 = (Delay *) 0 ;
  Delay *result = 0 ;
  
  arg1 = (Delay *)jarg1; 
  result = (Delay *)((Delay const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Delay_getMath(void * jarg1) {
  void * jresult ;
  Delay *arg1 = (Delay *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (Delay *)jarg1; 
  result = (ASTNode *)((Delay const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Delay_isSetMath(void * jarg1) {
  unsigned int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  bool result;
  
  arg1 = (Delay *)jarg1; 
  result = (bool)((Delay const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Delay_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (Delay *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Delay_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  Delay *arg1 = (Delay *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (Delay *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Delay_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  bool result;
  
  arg1 = (Delay *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Delay_getTypeCode(void * jarg1) {
  int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  int result;
  
  arg1 = (Delay *)jarg1; 
  result = (int)((Delay const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Delay_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Delay *arg1 = (Delay *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Delay *)jarg1; 
  result = (std::string *) &((Delay const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Delay_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  bool result;
  
  arg1 = (Delay *)jarg1; 
  result = (bool)((Delay const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Delay_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  Delay *arg1 = (Delay *) 0 ;
  int result;
  
  arg1 = (Delay *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Delay_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Delay *arg1 = (Delay *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Delay *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Delay_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Delay *arg1 = (Delay *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Delay *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Delay_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Delay *arg1 = (Delay *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Delay *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Priority__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Priority *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (Priority *)new Priority(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Priority__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  Priority *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (Priority *)new Priority(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Priority(void * jarg1) {
  Priority *arg1 = (Priority *) 0 ;
  
  arg1 = (Priority *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Priority__SWIG_2(void * jarg1) {
  void * jresult ;
  Priority *arg1 = 0 ;
  Priority *result = 0 ;
  
  arg1 = (Priority *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Priority const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (Priority *)new Priority((Priority const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Priority_clone(void * jarg1) {
  void * jresult ;
  Priority *arg1 = (Priority *) 0 ;
  Priority *result = 0 ;
  
  arg1 = (Priority *)jarg1; 
  result = (Priority *)((Priority const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Priority_getMath(void * jarg1) {
  void * jresult ;
  Priority *arg1 = (Priority *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (Priority *)jarg1; 
  result = (ASTNode *)((Priority const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Priority_isSetMath(void * jarg1) {
  unsigned int jresult ;
  Priority *arg1 = (Priority *) 0 ;
  bool result;
  
  arg1 = (Priority *)jarg1; 
  result = (bool)((Priority const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Priority_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  Priority *arg1 = (Priority *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (Priority *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Priority_getTypeCode(void * jarg1) {
  int jresult ;
  Priority *arg1 = (Priority *) 0 ;
  int result;
  
  arg1 = (Priority *)jarg1; 
  result = (int)((Priority const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Priority_getElementName(void * jarg1) {
  wchar_t* jresult ;
  Priority *arg1 = (Priority *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Priority *)jarg1; 
  result = (std::string *) &((Priority const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Priority_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  Priority *arg1 = (Priority *) 0 ;
  bool result;
  
  arg1 = (Priority *)jarg1; 
  result = (bool)((Priority const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Priority_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  Priority *arg1 = (Priority *) 0 ;
  int result;
  
  arg1 = (Priority *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Priority_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Priority *arg1 = (Priority *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Priority *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Priority_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  Priority *arg1 = (Priority *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (Priority *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_Priority_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  Priority *arg1 = (Priority *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (Priority *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isQuantitativeParameter(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isQuantitativeParameter(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isParticipantRole(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isParticipantRole(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isModellingFramework(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isModellingFramework(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isMathematicalExpression(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isMathematicalExpression(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isKineticConstant(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isKineticConstant(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isReactant(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isReactant(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isProduct(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isProduct(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isModifier(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isModifier(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isRateLaw(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isRateLaw(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isEvent(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isEvent(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isPhysicalParticipant(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isPhysicalParticipant(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isParticipant(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isParticipant(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isInteraction(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isInteraction(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isEntity(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isEntity(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isFunctionalEntity(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isFunctionalEntity(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isMaterialEntity(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isMaterialEntity(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isConservationLaw(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isConservationLaw(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isSteadyStateExpression(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isSteadyStateExpression(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isFunctionalCompartment(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isFunctionalCompartment(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isContinuousFramework(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isContinuousFramework(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isDiscreteFramework(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isDiscreteFramework(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isLogicalFramework(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isLogicalFramework(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isMetadataRepresentation(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isMetadataRepresentation(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isOccurringEntityRepresentation(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isOccurringEntityRepresentation(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isPhysicalEntityRepresentation(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isPhysicalEntityRepresentation(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isSystemsDescriptionParameter(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isSystemsDescriptionParameter(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isQuantitativeSystemsDescriptionParameter(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isQuantitativeSystemsDescriptionParameter(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_isObselete(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  bool result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (bool)SBO::isObselete(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBO_intToString(int jarg1) {
  wchar_t* jresult ;
  int arg1 ;
  std::string result;
  
  arg1 = (int)jarg1; 
  result = SBO::intToString(arg1);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBO_stringToInt(wchar_t* jarg1) {
  int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  int result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (int)SBO::stringToInt((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_checkTerm__SWIG_0(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (bool)SBO::checkTerm((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_checkTerm__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)SBO::checkTerm(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_getParentBranch(long long jarg1) {
  unsigned int jresult ;
  unsigned int arg1 ;
  unsigned int result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (unsigned int)SBO::getParentBranch(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBO() {
  void * jresult ;
  SBO *result = 0 ;
  
  result = (SBO *)new SBO();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBO(void * jarg1) {
  SBO *arg1 = (SBO *) 0 ;
  
  arg1 = (SBO *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidSBMLSId(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidSBMLSId(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidXMLID(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidXMLID(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidXMLanyURI(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidXMLanyURI(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidUnitSId(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidUnitSId(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_0(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  bool result;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  result = (bool)SyntaxChecker::hasExpectedXHTMLSyntax((XMLNode const *)arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  bool result;
  
  arg1 = (XMLNode *)jarg1; 
  result = (bool)SyntaxChecker::hasExpectedXHTMLSyntax((XMLNode const *)arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidInternalSId(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidInternalSId(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SyntaxChecker_isValidInternalUnitSId(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string arg1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)SyntaxChecker::isValidInternalUnitSId(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SyntaxChecker() {
  void * jresult ;
  SyntaxChecker *result = 0 ;
  
  result = (SyntaxChecker *)new SyntaxChecker();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SyntaxChecker(void * jarg1) {
  SyntaxChecker *arg1 = (SyntaxChecker *) 0 ;
  
  arg1 = (SyntaxChecker *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StoichiometryMath__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  StoichiometryMath *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (StoichiometryMath *)new StoichiometryMath(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StoichiometryMath__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  StoichiometryMath *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  
  try {
    result = (StoichiometryMath *)new StoichiometryMath(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_StoichiometryMath(void * jarg1) {
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StoichiometryMath__SWIG_2(void * jarg1) {
  void * jresult ;
  StoichiometryMath *arg1 = 0 ;
  StoichiometryMath *result = 0 ;
  
  arg1 = (StoichiometryMath *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "StoichiometryMath const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (StoichiometryMath *)new StoichiometryMath((StoichiometryMath const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_StoichiometryMath_clone(void * jarg1) {
  void * jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  StoichiometryMath *result = 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (StoichiometryMath *)((StoichiometryMath const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_StoichiometryMath_getMath(void * jarg1) {
  void * jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (ASTNode *)((StoichiometryMath const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_StoichiometryMath_isSetMath(void * jarg1) {
  unsigned int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  bool result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (bool)((StoichiometryMath const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_StoichiometryMath_setMath(void * jarg1, void * jarg2) {
  int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->setMath((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_StoichiometryMath_getDerivedUnitDefinition__SWIG_0(void * jarg1) {
  void * jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (UnitDefinition *)(arg1)->getDerivedUnitDefinition();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_StoichiometryMath_containsUndeclaredUnits__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  bool result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (bool)(arg1)->containsUndeclaredUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_StoichiometryMath_getTypeCode(void * jarg1) {
  int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  int result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (int)((StoichiometryMath const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_StoichiometryMath_getElementName(void * jarg1) {
  wchar_t* jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (std::string *) &((StoichiometryMath const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_StoichiometryMath_hasRequiredElements(void * jarg1) {
  unsigned int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  bool result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (bool)((StoichiometryMath const *)arg1)->hasRequiredElements();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_StoichiometryMath_removeFromParentAndDelete(void * jarg1) {
  int jresult ;
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  int result;
  
  arg1 = (StoichiometryMath *)jarg1; 
  result = (int)(arg1)->removeFromParentAndDelete();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_StoichiometryMath_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_StoichiometryMath_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_StoichiometryMath_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  SBMLNamespaces *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces(arg1,arg2);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_1(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  SBMLNamespaces *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces(arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_2() {
  void * jresult ;
  SBMLNamespaces *result = 0 ;
  
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces();
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_3(long long jarg1, long long jarg2, wchar_t* jarg3, long long jarg4, wchar_t* jarg5) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  std::string *arg3 = 0 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  std::string arg_str3 ;
  std::string arg_str5 ;
  SBMLNamespaces *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return 0;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces(arg1,arg2,(std::string const &)*arg3,arg4,(std::string const &)*arg5);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_4(long long jarg1, long long jarg2, wchar_t* jarg3, long long jarg4) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  std::string *arg3 = 0 ;
  unsigned int arg4 ;
  std::string arg_str3 ;
  SBMLNamespaces *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces(arg1,arg2,(std::string const &)*arg3,arg4);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLNamespaces(void * jarg1) {
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLNamespaces__SWIG_5(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLNamespaces const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces((SBMLNamespaces const &)*arg1);
  }
  catch (const SBMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  catch (const SBMLExtensionException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),0);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLNamespaces_clone(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (SBMLNamespaces *)((SBMLNamespaces const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLNamespaces_getSBMLNamespaceURI(long long jarg1, long long jarg2) {
  wchar_t* jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  std::string result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = SBMLNamespaces::getSBMLNamespaceURI(arg1,arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLNamespaces_getSupportedNamespaces() {
  void * jresult ;
  List *result = 0 ;
  
  result = (List *)SBMLNamespaces::getSupportedNamespaces();
  {
    ListWrapper<SBMLNamespaces> *listw = (result != 0) ? new ListWrapper<SBMLNamespaces>(result) : 0;  
    jresult = (void*)listw;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLNamespaces_freeSBMLNamespaces(void * jarg1) {
  List *arg1 = (List *) 0 ;
  
  arg1 = (List *)jarg1; 
  SBMLNamespaces::freeSBMLNamespaces(arg1);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLNamespaces_getURI(void * jarg1) {
  wchar_t* jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = ((SBMLNamespaces const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLNamespaces_getLevel__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (unsigned int)(arg1)->getLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLNamespaces_getVersion__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (unsigned int)(arg1)->getVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLNamespaces_getNamespaces__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (XMLNamespaces *)(arg1)->getNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addNamespaces(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  result = (int)(arg1)->addNamespaces((XMLNamespaces const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addNamespace(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->addNamespace((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_removeNamespace(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->removeNamespace((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPackageNamespace__SWIG_0(void * jarg1, wchar_t* jarg2, long long jarg3, wchar_t* jarg4) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->addPackageNamespace((std::string const &)*arg2,arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPackageNamespace__SWIG_1(void * jarg1, wchar_t* jarg2, long long jarg3) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (int)(arg1)->addPackageNamespace((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPackageNamespaces(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  result = (int)(arg1)->addPackageNamespaces((XMLNamespaces const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_removePackageNamespace(void * jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  result = (int)(arg1)->removePackageNamespace(arg2,arg3,(std::string const &)*arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPkgNamespace__SWIG_0(void * jarg1, wchar_t* jarg2, long long jarg3, wchar_t* jarg4) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->addPkgNamespace((std::string const &)*arg2,arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPkgNamespace__SWIG_1(void * jarg1, wchar_t* jarg2, long long jarg3) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (int)(arg1)->addPkgNamespace((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_addPkgNamespaces(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  result = (int)(arg1)->addPkgNamespaces((XMLNamespaces const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLNamespaces_removePkgNamespace(void * jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5) {
  int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  result = (int)(arg1)->removePkgNamespace(arg2,arg3,(std::string const &)*arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLNamespaces_isSBMLNamespace(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (bool)SBMLNamespaces::isSBMLNamespace((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLNamespaces_isValidCombination(void * jarg1) {
  unsigned int jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  bool result;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (bool)(arg1)->isValidCombination();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLNamespaces_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (std::string *) &((SBMLNamespaces const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLTransforms_replaceFD__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  FunctionDefinition *arg2 = (FunctionDefinition *) 0 ;
  IdList *arg3 = (IdList *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (FunctionDefinition *)jarg2; 
  arg3 = (IdList *)jarg3; 
  SBMLTransforms::replaceFD(arg1,(FunctionDefinition const *)arg2,(IdList const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLTransforms_replaceFD__SWIG_1(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  FunctionDefinition *arg2 = (FunctionDefinition *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (FunctionDefinition *)jarg2; 
  SBMLTransforms::replaceFD(arg1,(FunctionDefinition const *)arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLTransforms_replaceFD__SWIG_2(void * jarg1, void * jarg2, void * jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  ListOfFunctionDefinitions *arg2 = (ListOfFunctionDefinitions *) 0 ;
  IdList *arg3 = (IdList *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ListOfFunctionDefinitions *)jarg2; 
  arg3 = (IdList *)jarg3; 
  SBMLTransforms::replaceFD(arg1,(ListOfFunctionDefinitions const *)arg2,(IdList const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLTransforms_replaceFD__SWIG_3(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  ListOfFunctionDefinitions *arg2 = (ListOfFunctionDefinitions *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ListOfFunctionDefinitions *)jarg2; 
  SBMLTransforms::replaceFD(arg1,(ListOfFunctionDefinitions const *)arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLTransforms_expandInitialAssignments(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)SBMLTransforms::expandInitialAssignments(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SBMLTransforms_evaluateASTNode__SWIG_0(void * jarg1, void * jarg2) {
  double jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  Model *arg2 = (Model *) 0 ;
  double result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (Model *)jarg2; 
  result = (double)SBMLTransforms::evaluateASTNode((ASTNode const *)arg1,(Model const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SBMLTransforms_evaluateASTNode__SWIG_1(void * jarg1) {
  double jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (double)SBMLTransforms::evaluateASTNode((ASTNode const *)arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLTransforms_expandL3V2InitialAssignments(void * jarg1) {
  unsigned int jresult ;
  Model *arg1 = (Model *) 0 ;
  bool result;
  
  arg1 = (Model *)jarg1; 
  result = (bool)SBMLTransforms::expandL3V2InitialAssignments(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLTransforms_mapComponentValues(void * jarg1) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  IdList result;
  
  arg1 = (Model *)jarg1; 
  result = SBMLTransforms::mapComponentValues((Model const *)arg1);
  jresult = new IdList((const IdList &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLTransforms_clearComponentValues() {
  SBMLTransforms::clearComponentValues();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLTransforms_nodeContainsId(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  IdList *arg2 = 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (IdList *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "IdList & type is null", 0);
    return 0;
  } 
  result = (bool)SBMLTransforms::nodeContainsId((ASTNode const *)arg1,*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLTransforms() {
  void * jresult ;
  SBMLTransforms *result = 0 ;
  
  result = (SBMLTransforms *)new SBMLTransforms();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLTransforms(void * jarg1) {
  SBMLTransforms *arg1 = (SBMLTransforms *) 0 ;
  
  arg1 = (SBMLTransforms *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConstructorException__SWIG_0() {
  void * jresult ;
  SBMLConstructorException *result = 0 ;
  
  result = (SBMLConstructorException *)new SBMLConstructorException();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConstructorException__SWIG_1(wchar_t* jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::string arg1 ;
  std::string arg2 ;
  SBMLConstructorException *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBMLConstructorException *)new SBMLConstructorException(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConstructorException__SWIG_2(wchar_t* jarg1, void * jarg2) {
  void * jresult ;
  std::string arg1 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  SBMLConstructorException *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  arg2 = (SBMLNamespaces *)jarg2; 
  result = (SBMLConstructorException *)new SBMLConstructorException(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLConstructorException(void * jarg1) {
  SBMLConstructorException *arg1 = (SBMLConstructorException *) 0 ;
  
  arg1 = (SBMLConstructorException *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLConstructorException_getSBMLErrMsg(void * jarg1) {
  wchar_t* jresult ;
  SBMLConstructorException *arg1 = (SBMLConstructorException *) 0 ;
  std::string result;
  
  arg1 = (SBMLConstructorException *)jarg1; 
  result = ((SBMLConstructorException const *)arg1)->getSBMLErrMsg();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_0(wchar_t* jarg1, wchar_t* jarg2, int jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  ConversionOptionType_t arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ConversionOptionType_t)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,(std::string const &)*arg2,arg3,(std::string const &)*arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_1(wchar_t* jarg1, wchar_t* jarg2, int jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  ConversionOptionType_t arg3 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ConversionOptionType_t)jarg3; 
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,(std::string const &)*arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_2(wchar_t* jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,(std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_3(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_4(wchar_t* jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  char *arg2 = (char *) 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToUTF8(jarg2);
      if (!arg2) return 0;
    }
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,(char const *)arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_6(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_7(wchar_t* jarg1, unsigned int jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_8(wchar_t* jarg1, double jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  double arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (double)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_9(wchar_t* jarg1, double jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  double arg2 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (double)jarg2; 
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_10(wchar_t* jarg1, float jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  float arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (float)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_11(wchar_t* jarg1, float jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  float arg2 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (float)jarg2; 
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_12(wchar_t* jarg1, int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (int)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_13(wchar_t* jarg1, int jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (int)jarg2; 
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionOption__SWIG_14(void * jarg1) {
  void * jresult ;
  ConversionOption *arg1 = 0 ;
  ConversionOption *result = 0 ;
  
  arg1 = (ConversionOption *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionOption const & type is null", 0);
    return 0;
  } 
  result = (ConversionOption *)new ConversionOption((ConversionOption const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ConversionOption(void * jarg1) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionOption_clone(void * jarg1) {
  void * jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  ConversionOption *result = 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (ConversionOption *)((ConversionOption const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ConversionOption_getKey(void * jarg1) {
  wchar_t* jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (std::string *) &((ConversionOption const *)arg1)->getKey();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setKey(void * jarg1, wchar_t* jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->setKey((std::string const &)*arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ConversionOption_getValue(void * jarg1) {
  wchar_t* jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (std::string *) &((ConversionOption const *)arg1)->getValue();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setValue(void * jarg1, wchar_t* jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->setValue((std::string const &)*arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ConversionOption_getDescription(void * jarg1) {
  wchar_t* jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (std::string *) &((ConversionOption const *)arg1)->getDescription();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setDescription(void * jarg1, wchar_t* jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->setDescription((std::string const &)*arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ConversionOption_getType(void * jarg1) {
  int jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  ConversionOptionType_t result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (ConversionOptionType_t)((ConversionOption const *)arg1)->getType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setType(void * jarg1, int jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  ConversionOptionType_t arg2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  arg2 = (ConversionOptionType_t)jarg2; 
  (arg1)->setType(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConversionOption_getBoolValue(void * jarg1) {
  unsigned int jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  bool result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (bool)((ConversionOption const *)arg1)->getBoolValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setBoolValue(void * jarg1, unsigned int jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  bool arg2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setBoolValue(arg2);
}


SWIGEXPORT double SWIGSTDCALL CSharp_ConversionOption_getDoubleValue(void * jarg1) {
  double jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  double result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (double)((ConversionOption const *)arg1)->getDoubleValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setDoubleValue(void * jarg1, double jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  double arg2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  arg2 = (double)jarg2; 
  (arg1)->setDoubleValue(arg2);
}


SWIGEXPORT float SWIGSTDCALL CSharp_ConversionOption_getFloatValue(void * jarg1) {
  float jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  float result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (float)((ConversionOption const *)arg1)->getFloatValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setFloatValue(void * jarg1, float jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  float arg2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  arg2 = (float)jarg2; 
  (arg1)->setFloatValue(arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ConversionOption_getIntValue(void * jarg1) {
  int jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  int result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (int)((ConversionOption const *)arg1)->getIntValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionOption_setIntValue(void * jarg1, int jarg2) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  int arg2 ;
  
  arg1 = (ConversionOption *)jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->setIntValue(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionProperties__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ConversionProperties *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (ConversionProperties *)new ConversionProperties(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionProperties__SWIG_1() {
  void * jresult ;
  ConversionProperties *result = 0 ;
  
  result = (ConversionProperties *)new ConversionProperties();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConversionProperties__SWIG_2(void * jarg1) {
  void * jresult ;
  ConversionProperties *arg1 = 0 ;
  ConversionProperties *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (ConversionProperties *)new ConversionProperties((ConversionProperties const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionProperties_clone(void * jarg1) {
  void * jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  ConversionProperties *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  result = (ConversionProperties *)((ConversionProperties const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ConversionProperties(void * jarg1) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionProperties_getTargetNamespaces(void * jarg1) {
  void * jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  result = (SBMLNamespaces *)((ConversionProperties const *)arg1)->getTargetNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConversionProperties_hasTargetNamespaces(void * jarg1) {
  unsigned int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  bool result;
  
  arg1 = (ConversionProperties *)jarg1; 
  result = (bool)((ConversionProperties const *)arg1)->hasTargetNamespaces();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setTargetNamespaces(void * jarg1, void * jarg2) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->setTargetNamespaces(arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ConversionProperties_getDescription(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (std::string *) &((ConversionProperties const *)arg1)->getDescription((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ConversionProperties_getType(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ConversionOptionType_t result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ConversionOptionType_t)((ConversionProperties const *)arg1)->getType((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionProperties_getOption__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ConversionOption *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ConversionOption *)((ConversionProperties const *)arg1)->getOption((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionProperties_getOption__SWIG_1(void * jarg1, int jarg2) {
  void * jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  int arg2 ;
  ConversionOption *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  arg2 = (int)jarg2; 
  result = (ConversionOption *)((ConversionProperties const *)arg1)->getOption(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_0(void * jarg1, void * jarg2) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  ConversionOption *arg2 = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  arg2 = (ConversionOption *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionOption const & type is null", 0);
    return ;
  } 
  (arg1)->addOption((ConversionOption const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, int jarg4, wchar_t* jarg5) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  ConversionOptionType_t arg4 ;
  std::string *arg5 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str5 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = (ConversionOptionType_t)jarg4; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,(std::string const &)*arg3,arg4,(std::string const &)*arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_2(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, int jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  ConversionOptionType_t arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = (ConversionOptionType_t)jarg4; 
  (arg1)->addOption((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_3(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_4(void * jarg1, wchar_t* jarg2) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_5(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  char *arg3 = (char *) 0 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    if (jarg3)
    {
      arg3 = convertUnicodeToUTF8(jarg3);
      if (!arg3) return ;
    }
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,(char const *)arg3,(std::string const &)*arg4);
  {
    delete[] arg3;
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_7(void * jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,(std::string const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_8(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  (arg1)->addOption((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_9(void * jarg1, wchar_t* jarg2, double jarg3, wchar_t* jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  double arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,(std::string const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_10(void * jarg1, wchar_t* jarg2, double jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  double arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (double)jarg3; 
  (arg1)->addOption((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_11(void * jarg1, wchar_t* jarg2, float jarg3, wchar_t* jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  float arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (float)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,(std::string const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_12(void * jarg1, wchar_t* jarg2, float jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  float arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (float)jarg3; 
  (arg1)->addOption((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_13(void * jarg1, wchar_t* jarg2, int jarg3, wchar_t* jarg4) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  int arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (int)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,(std::string const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_addOption__SWIG_14(void * jarg1, wchar_t* jarg2, int jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  int arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (int)jarg3; 
  (arg1)->addOption((std::string const &)*arg2,arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ConversionProperties_removeOption(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ConversionOption *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ConversionOption *)(arg1)->removeOption((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConversionProperties_hasOption(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ConversionProperties const *)arg1)->hasOption((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ConversionProperties_getValue(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string *result = 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (std::string *) &((ConversionProperties const *)arg1)->getValue((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setValue(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->setValue((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConversionProperties_getBoolValue(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ConversionProperties const *)arg1)->getBoolValue((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setBoolValue(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  (arg1)->setBoolValue((std::string const &)*arg2,arg3);
}


SWIGEXPORT double SWIGSTDCALL CSharp_ConversionProperties_getDoubleValue(void * jarg1, wchar_t* jarg2) {
  double jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  double result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (double)((ConversionProperties const *)arg1)->getDoubleValue((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setDoubleValue(void * jarg1, wchar_t* jarg2, double jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  double arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (double)jarg3; 
  (arg1)->setDoubleValue((std::string const &)*arg2,arg3);
}


SWIGEXPORT float SWIGSTDCALL CSharp_ConversionProperties_getFloatValue(void * jarg1, wchar_t* jarg2) {
  float jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  float result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (float)((ConversionProperties const *)arg1)->getFloatValue((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setFloatValue(void * jarg1, wchar_t* jarg2, float jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  float arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (float)jarg3; 
  (arg1)->setFloatValue((std::string const &)*arg2,arg3);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ConversionProperties_getIntValue(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((ConversionProperties const *)arg1)->getIntValue((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ConversionProperties_setIntValue(void * jarg1, wchar_t* jarg2, int jarg3) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  std::string *arg2 = 0 ;
  int arg3 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (int)jarg3; 
  (arg1)->setIntValue((std::string const &)*arg2,arg3);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ConversionProperties_getNumOptions(void * jarg1) {
  int jresult ;
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  int result;
  
  arg1 = (ConversionProperties *)jarg1; 
  result = (int)((ConversionProperties const *)arg1)->getNumOptions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConverter__SWIG_0() {
  void * jresult ;
  SBMLConverter *result = 0 ;
  
  result = (SBMLConverter *)new SwigDirector_SBMLConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConverter__SWIG_1(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  SBMLConverter *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (SBMLConverter *)new SwigDirector_SBMLConverter((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLConverter__SWIG_2(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = 0 ;
  SBMLConverter *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLConverter *)new SwigDirector_SBMLConverter((SBMLConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLConverter(void * jarg1) {
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLConverter *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLConverter *)((SBMLConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_cloneSwigExplicitSBMLConverter(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLConverter *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLConverter *)((SBMLConverter const *)arg1)->SBMLConverter::clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getDocument__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLDocument *)(arg1)->getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getDocumentSwigExplicitSBMLConverter__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLDocument *)(arg1)->SBMLConverter::getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getDocumentSwigExplicitSBMLConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLDocument *)((SBMLConverter const *)arg1)->SBMLConverter::getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = ((SBMLConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getDefaultPropertiesSwigExplicitSBMLConverter(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = ((SBMLConverter const *)arg1)->SBMLConverter::getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getTargetNamespaces(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLNamespaces *)(arg1)->getTargetNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getTargetNamespacesSwigExplicitSBMLConverter(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (SBMLNamespaces *)(arg1)->SBMLConverter::getTargetNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLConverter_matchesPropertiesSwigExplicitSBMLConverter(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLConverter const *)arg1)->SBMLConverter::matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_setDocument(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->setDocument(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_setDocumentSwigExplicitSBMLConverter(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->SBMLConverter::setDocument(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_setProperties(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *arg2 = (ConversionProperties *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2; 
  result = (int)(arg1)->setProperties((ConversionProperties const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_setPropertiesSwigExplicitSBMLConverter(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *arg2 = (ConversionProperties *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2; 
  result = (int)(arg1)->SBMLConverter::setProperties((ConversionProperties const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getProperties(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (ConversionProperties *)((SBMLConverter const *)arg1)->getProperties();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverter_getPropertiesSwigExplicitSBMLConverter(void * jarg1) {
  void * jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  ConversionProperties *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (ConversionProperties *)((SBMLConverter const *)arg1)->SBMLConverter::getProperties();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_convert(void * jarg1) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverter_convertSwigExplicitSBMLConverter(void * jarg1) {
  int jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  int result;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (int)(arg1)->SBMLConverter::convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLConverter_getName(void * jarg1) {
  wchar_t* jresult ;
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  result = (std::string *) &((SBMLConverter const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLConverter_director_connect(void *objarg, SwigDirector_SBMLConverter::SWIG_Callback0_t callback0, SwigDirector_SBMLConverter::SWIG_Callback1_t callback1, SwigDirector_SBMLConverter::SWIG_Callback2_t callback2, SwigDirector_SBMLConverter::SWIG_Callback3_t callback3, SwigDirector_SBMLConverter::SWIG_Callback4_t callback4, SwigDirector_SBMLConverter::SWIG_Callback5_t callback5, SwigDirector_SBMLConverter::SWIG_Callback6_t callback6, SwigDirector_SBMLConverter::SWIG_Callback7_t callback7, SwigDirector_SBMLConverter::SWIG_Callback8_t callback8, SwigDirector_SBMLConverter::SWIG_Callback9_t callback9) {
  SBMLConverter *obj = (SBMLConverter *)objarg;
  SwigDirector_SBMLConverter *director = dynamic_cast<SwigDirector_SBMLConverter *>(obj);
  if (director) {
    director->swig_connect_director(callback0, callback1, callback2, callback3, callback4, callback5, callback6, callback7, callback8, callback9);
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverterRegistry_getInstance() {
  void * jresult ;
  SBMLConverterRegistry *result = 0 ;
  
  result = (SBMLConverterRegistry *) &SBMLConverterRegistry::getInstance();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverterRegistry_addConverter(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  SBMLConverter *arg2 = (SBMLConverter *) 0 ;
  int result;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  arg2 = (SBMLConverter *)jarg2; 
  result = (int)(arg1)->addConverter((SBMLConverter const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverterRegistry_getConverterByIndex(void * jarg1, int jarg2) {
  void * jresult ;
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  int arg2 ;
  SBMLConverter *result = 0 ;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  arg2 = (int)jarg2; 
  result = (SBMLConverter *)((SBMLConverterRegistry const *)arg1)->getConverterByIndex(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLConverterRegistry_getConverterFor(void * jarg1, void * jarg2) {
  void * jresult ;
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  ConversionProperties *arg2 = 0 ;
  SBMLConverter *result = 0 ;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (SBMLConverter *)((SBMLConverterRegistry const *)arg1)->getConverterFor((ConversionProperties const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLConverterRegistry_getNumConverters(void * jarg1) {
  int jresult ;
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  int result;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  result = (int)((SBMLConverterRegistry const *)arg1)->getNumConverters();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLConverterRegistry(void * jarg1) {
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_init() {
  SBMLFunctionDefinitionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLFunctionDefinitionConverter__SWIG_0() {
  void * jresult ;
  SBMLFunctionDefinitionConverter *result = 0 ;
  
  result = (SBMLFunctionDefinitionConverter *)new SBMLFunctionDefinitionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLFunctionDefinitionConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLFunctionDefinitionConverter *arg1 = 0 ;
  SBMLFunctionDefinitionConverter *result = 0 ;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLFunctionDefinitionConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLFunctionDefinitionConverter *)new SBMLFunctionDefinitionConverter((SBMLFunctionDefinitionConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  SBMLFunctionDefinitionConverter *result = 0 ;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  result = (SBMLFunctionDefinitionConverter *)((SBMLFunctionDefinitionConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLFunctionDefinitionConverter(void * jarg1) {
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLFunctionDefinitionConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_convert(void * jarg1) {
  int jresult ;
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  int result;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  result = ((SBMLFunctionDefinitionConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLIdConverter_init() {
  SBMLIdConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLIdConverter__SWIG_0() {
  void * jresult ;
  SBMLIdConverter *result = 0 ;
  
  result = (SBMLIdConverter *)new SBMLIdConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLIdConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLIdConverter *arg1 = 0 ;
  SBMLIdConverter *result = 0 ;
  
  arg1 = (SBMLIdConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLIdConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLIdConverter *)new SBMLIdConverter((SBMLIdConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLIdConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  SBMLIdConverter *result = 0 ;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  result = (SBMLIdConverter *)((SBMLIdConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLIdConverter(void * jarg1) {
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLIdConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLIdConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLIdConverter_convert(void * jarg1) {
  int jresult ;
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  int result;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLIdConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  result = ((SBMLIdConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLInferUnitsConverter_init() {
  SBMLInferUnitsConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLInferUnitsConverter__SWIG_0() {
  void * jresult ;
  SBMLInferUnitsConverter *result = 0 ;
  
  result = (SBMLInferUnitsConverter *)new SBMLInferUnitsConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLInferUnitsConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLInferUnitsConverter *arg1 = 0 ;
  SBMLInferUnitsConverter *result = 0 ;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLInferUnitsConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLInferUnitsConverter *)new SBMLInferUnitsConverter((SBMLInferUnitsConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLInferUnitsConverter(void * jarg1) {
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLInferUnitsConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  SBMLInferUnitsConverter *result = 0 ;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  result = (SBMLInferUnitsConverter *)((SBMLInferUnitsConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLInferUnitsConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLInferUnitsConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLInferUnitsConverter_convert(void * jarg1) {
  int jresult ;
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  int result;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLInferUnitsConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  result = ((SBMLInferUnitsConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_init() {
  SBMLInitialAssignmentConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLInitialAssignmentConverter__SWIG_0() {
  void * jresult ;
  SBMLInitialAssignmentConverter *result = 0 ;
  
  result = (SBMLInitialAssignmentConverter *)new SBMLInitialAssignmentConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLInitialAssignmentConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLInitialAssignmentConverter *arg1 = 0 ;
  SBMLInitialAssignmentConverter *result = 0 ;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLInitialAssignmentConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLInitialAssignmentConverter *)new SBMLInitialAssignmentConverter((SBMLInitialAssignmentConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  SBMLInitialAssignmentConverter *result = 0 ;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  result = (SBMLInitialAssignmentConverter *)((SBMLInitialAssignmentConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLInitialAssignmentConverter(void * jarg1) {
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLInitialAssignmentConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_convert(void * jarg1) {
  int jresult ;
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  int result;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  result = ((SBMLInitialAssignmentConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLLevelVersionConverter_init() {
  SBMLLevelVersionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLevelVersionConverter__SWIG_0() {
  void * jresult ;
  SBMLLevelVersionConverter *result = 0 ;
  
  result = (SBMLLevelVersionConverter *)new SBMLLevelVersionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLevelVersionConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLLevelVersionConverter *arg1 = 0 ;
  SBMLLevelVersionConverter *result = 0 ;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLLevelVersionConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLLevelVersionConverter *)new SBMLLevelVersionConverter((SBMLLevelVersionConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLLevelVersionConverter(void * jarg1) {
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLevelVersionConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  SBMLLevelVersionConverter *result = 0 ;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (SBMLLevelVersionConverter *)((SBMLLevelVersionConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLLevelVersionConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_convert(void * jarg1) {
  int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  int result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLevelVersionConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = ((SBMLLevelVersionConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_getTargetLevel(void * jarg1) {
  unsigned int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (unsigned int)(arg1)->getTargetLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_getTargetVersion(void * jarg1) {
  unsigned int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (unsigned int)(arg1)->getTargetVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_getValidityFlag(void * jarg1) {
  unsigned int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  bool result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (bool)(arg1)->getValidityFlag();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevelVersionConverter_getAddDefaultUnits(void * jarg1) {
  unsigned int jresult ;
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  bool result;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  result = (bool)(arg1)->getAddDefaultUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MathFilter() {
  void * jresult ;
  MathFilter *result = 0 ;
  
  result = (MathFilter *)new MathFilter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_MathFilter(void * jarg1) {
  MathFilter *arg1 = (MathFilter *) 0 ;
  
  arg1 = (MathFilter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MathFilter_filter(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  MathFilter *arg1 = (MathFilter *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (MathFilter *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)(arg1)->filter((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_init() {
  SBMLLevel1Version1Converter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLevel1Version1Converter__SWIG_0() {
  void * jresult ;
  SBMLLevel1Version1Converter *result = 0 ;
  
  result = (SBMLLevel1Version1Converter *)new SBMLLevel1Version1Converter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLevel1Version1Converter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLLevel1Version1Converter *arg1 = 0 ;
  SBMLLevel1Version1Converter *result = 0 ;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLLevel1Version1Converter const & type is null", 0);
    return 0;
  } 
  result = (SBMLLevel1Version1Converter *)new SBMLLevel1Version1Converter((SBMLLevel1Version1Converter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLLevel1Version1Converter(void * jarg1) {
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_clone(void * jarg1) {
  void * jresult ;
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  SBMLLevel1Version1Converter *result = 0 ;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  result = (SBMLLevel1Version1Converter *)((SBMLLevel1Version1Converter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLLevel1Version1Converter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_convert(void * jarg1) {
  int jresult ;
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  int result;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  result = ((SBMLLevel1Version1Converter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLLocalParameterConverter_init() {
  SBMLLocalParameterConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLocalParameterConverter__SWIG_0() {
  void * jresult ;
  SBMLLocalParameterConverter *result = 0 ;
  
  result = (SBMLLocalParameterConverter *)new SBMLLocalParameterConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLLocalParameterConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLLocalParameterConverter *arg1 = 0 ;
  SBMLLocalParameterConverter *result = 0 ;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLLocalParameterConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLLocalParameterConverter *)new SBMLLocalParameterConverter((SBMLLocalParameterConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLocalParameterConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  SBMLLocalParameterConverter *result = 0 ;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  result = (SBMLLocalParameterConverter *)((SBMLLocalParameterConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLLocalParameterConverter(void * jarg1) {
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLLocalParameterConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLLocalParameterConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLLocalParameterConverter_convert(void * jarg1) {
  int jresult ;
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  int result;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLLocalParameterConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  result = ((SBMLLocalParameterConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLReactionConverter_init() {
  SBMLReactionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLReactionConverter__SWIG_0() {
  void * jresult ;
  SBMLReactionConverter *result = 0 ;
  
  result = (SBMLReactionConverter *)new SBMLReactionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLReactionConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLReactionConverter *arg1 = 0 ;
  SBMLReactionConverter *result = 0 ;
  
  arg1 = (SBMLReactionConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLReactionConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLReactionConverter *)new SBMLReactionConverter((SBMLReactionConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLReactionConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  SBMLReactionConverter *result = 0 ;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  result = (SBMLReactionConverter *)((SBMLReactionConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLReactionConverter(void * jarg1) {
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLReactionConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLReactionConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLReactionConverter_convert(void * jarg1) {
  int jresult ;
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  int result;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLReactionConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  result = ((SBMLReactionConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLReactionConverter_setDocument(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->setDocument(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLRuleConverter_init() {
  SBMLRuleConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLRuleConverter__SWIG_0() {
  void * jresult ;
  SBMLRuleConverter *result = 0 ;
  
  result = (SBMLRuleConverter *)new SBMLRuleConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLRuleConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLRuleConverter *arg1 = 0 ;
  SBMLRuleConverter *result = 0 ;
  
  arg1 = (SBMLRuleConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLRuleConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLRuleConverter *)new SBMLRuleConverter((SBMLRuleConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLRuleConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  SBMLRuleConverter *result = 0 ;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  result = (SBMLRuleConverter *)((SBMLRuleConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLRuleConverter(void * jarg1) {
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLRuleConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLRuleConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLRuleConverter_convert(void * jarg1) {
  int jresult ;
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  int result;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLRuleConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  result = ((SBMLRuleConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLStripPackageConverter_init() {
  SBMLStripPackageConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLStripPackageConverter__SWIG_0() {
  void * jresult ;
  SBMLStripPackageConverter *result = 0 ;
  
  result = (SBMLStripPackageConverter *)new SBMLStripPackageConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLStripPackageConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLStripPackageConverter *arg1 = 0 ;
  SBMLStripPackageConverter *result = 0 ;
  
  arg1 = (SBMLStripPackageConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLStripPackageConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLStripPackageConverter *)new SBMLStripPackageConverter((SBMLStripPackageConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLStripPackageConverter(void * jarg1) {
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLStripPackageConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  SBMLStripPackageConverter *result = 0 ;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  result = (SBMLStripPackageConverter *)((SBMLStripPackageConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLStripPackageConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLStripPackageConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLStripPackageConverter_convert(void * jarg1) {
  int jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  int result;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLStripPackageConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  result = ((SBMLStripPackageConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLStripPackageConverter_getPackageToStrip(void * jarg1) {
  wchar_t* jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  std::string result;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  result = ((SBMLStripPackageConverter const *)arg1)->getPackageToStrip();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLStripPackageConverter_isStripAllUnrecognizedPackages(void * jarg1) {
  unsigned int jresult ;
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  bool result;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  result = (bool)((SBMLStripPackageConverter const *)arg1)->isStripAllUnrecognizedPackages();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLUnitsConverter_init() {
  SBMLUnitsConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLUnitsConverter__SWIG_0() {
  void * jresult ;
  SBMLUnitsConverter *result = 0 ;
  
  result = (SBMLUnitsConverter *)new SBMLUnitsConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLUnitsConverter__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLUnitsConverter *arg1 = 0 ;
  SBMLUnitsConverter *result = 0 ;
  
  arg1 = (SBMLUnitsConverter *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLUnitsConverter const & type is null", 0);
    return 0;
  } 
  result = (SBMLUnitsConverter *)new SBMLUnitsConverter((SBMLUnitsConverter const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLUnitsConverter(void * jarg1) {
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLUnitsConverter_clone(void * jarg1) {
  void * jresult ;
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  SBMLUnitsConverter *result = 0 ;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  result = (SBMLUnitsConverter *)((SBMLUnitsConverter const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLUnitsConverter_matchesProperties(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  ConversionProperties *arg2 = 0 ;
  bool result;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  arg2 = (ConversionProperties *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ConversionProperties const & type is null", 0);
    return 0;
  } 
  result = (bool)((SBMLUnitsConverter const *)arg1)->matchesProperties((ConversionProperties const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLUnitsConverter_convert(void * jarg1) {
  int jresult ;
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  int result;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  result = (int)(arg1)->convert();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLUnitsConverter_getDefaultProperties(void * jarg1) {
  void * jresult ;
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  ConversionProperties result;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  result = ((SBMLUnitsConverter const *)arg1)->getDefaultProperties();
  jresult = new ConversionProperties((const ConversionProperties &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLValidator__SWIG_0() {
  void * jresult ;
  SBMLValidator *result = 0 ;
  
  result = (SBMLValidator *)new SwigDirector_SBMLValidator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLValidator__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = 0 ;
  SBMLValidator *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLValidator const & type is null", 0);
    return 0;
  } 
  result = (SBMLValidator *)new SwigDirector_SBMLValidator((SBMLValidator const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLValidator(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_clone(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLValidator *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLValidator *)((SBMLValidator const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_cloneSwigExplicitSBMLValidator(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLValidator *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLValidator *)((SBMLValidator const *)arg1)->SBMLValidator::clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getDocument__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLDocument *)(arg1)->getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getDocumentSwigExplicitSBMLValidator__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLDocument *)(arg1)->SBMLValidator::getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getDocumentSwigExplicitSBMLValidator__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLDocument *)((SBMLValidator const *)arg1)->SBMLValidator::getDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLValidator_setDocument(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->setDocument((SBMLDocument const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLValidator_setDocumentSwigExplicitSBMLValidator(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->SBMLValidator::setDocument((SBMLDocument const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLValidator_validate__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (unsigned int)(arg1)->validate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLValidator_validateSwigExplicitSBMLValidator__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (unsigned int)(arg1)->SBMLValidator::validate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLValidator_clearFailures(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  (arg1)->clearFailures();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLValidator_clearFailuresSwigExplicitSBMLValidator(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  (arg1)->SBMLValidator::clearFailures();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLValidator_logFailure(void * jarg1, void * jarg2) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLError *arg2 = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  arg2 = (SBMLError *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLError const & type is null", 0);
    return ;
  } 
  (arg1)->logFailure((SBMLError const &)*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLValidator_validate__SWIG_1(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLDocument *arg2 = 0 ;
  unsigned int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  arg2 = (SBMLDocument *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLDocument const & type is null", 0);
    return 0;
  } 
  result = (unsigned int)(arg1)->validate((SBMLDocument const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLValidator_validate__SWIG_2(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  unsigned int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToACP(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (unsigned int)(arg1)->validate((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getErrorLog(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  SBMLErrorLog *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (SBMLErrorLog *)(arg1)->getErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getModel__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  Model *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (Model *)((SBMLValidator const *)arg1)->getModel();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLValidator_getNumFailures(void * jarg1) {
  unsigned int jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLValidator *)jarg1; 
  result = (unsigned int)((SBMLValidator const *)arg1)->getNumFailures();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLValidator_getFailure(void * jarg1, long long jarg2) {
  void * jresult ;
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  unsigned int arg2 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBMLError *)((SBMLValidator const *)arg1)->getFailure(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLValidator_director_connect(void *objarg, SwigDirector_SBMLValidator::SWIG_Callback0_t callback0, SwigDirector_SBMLValidator::SWIG_Callback1_t callback1, SwigDirector_SBMLValidator::SWIG_Callback2_t callback2, SwigDirector_SBMLValidator::SWIG_Callback3_t callback3, SwigDirector_SBMLValidator::SWIG_Callback4_t callback4, SwigDirector_SBMLValidator::SWIG_Callback5_t callback5) {
  SBMLValidator *obj = (SBMLValidator *)objarg;
  SwigDirector_SBMLValidator *director = dynamic_cast<SwigDirector_SBMLValidator *>(obj);
  if (director) {
    director->swig_connect_director(callback0, callback1, callback2, callback3, callback4, callback5);
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLExternalValidator__SWIG_0() {
  void * jresult ;
  SBMLExternalValidator *result = 0 ;
  
  result = (SBMLExternalValidator *)new SBMLExternalValidator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLExternalValidator__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLExternalValidator *arg1 = 0 ;
  SBMLExternalValidator *result = 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLExternalValidator const & type is null", 0);
    return 0;
  } 
  result = (SBMLExternalValidator *)new SBMLExternalValidator((SBMLExternalValidator const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExternalValidator_clone(void * jarg1) {
  void * jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  SBMLValidator *result = 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (SBMLValidator *)((SBMLExternalValidator const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLExternalValidator(void * jarg1) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExternalValidator_validate(void * jarg1) {
  unsigned int jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (unsigned int)(arg1)->validate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExternalValidator_getProgram(void * jarg1) {
  wchar_t* jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (std::string *) &((SBMLExternalValidator const *)arg1)->getProgram();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExternalValidator_setProgram(void * jarg1, wchar_t* jarg2) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string arg2 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->setProgram(arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExternalValidator_getOutputFileName(void * jarg1) {
  wchar_t* jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (std::string *) &((SBMLExternalValidator const *)arg1)->getOutputFileName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExternalValidator_setOutputFileName(void * jarg1, wchar_t* jarg2) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string arg2 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->setOutputFileName(arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExternalValidator_getSBMLFileName(void * jarg1) {
  wchar_t* jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (std::string *) &((SBMLExternalValidator const *)arg1)->getSBMLFileName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExternalValidator_setSBMLFileName(void * jarg1, wchar_t* jarg2) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string arg2 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->setSBMLFileName(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExternalValidator_clearArguments(void * jarg1) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  (arg1)->clearArguments();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExternalValidator_addArgument(void * jarg1, wchar_t* jarg2) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  std::string arg2 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addArgument(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExternalValidator_getNumArguments(void * jarg1) {
  unsigned int jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  result = (unsigned int)((SBMLExternalValidator const *)arg1)->getNumArguments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExternalValidator_getArgument(void * jarg1, long long jarg2) {
  wchar_t* jresult ;
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  unsigned int arg2 ;
  std::string result;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = ((SBMLExternalValidator const *)arg1)->getArgument(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLAttributes__SWIG_0() {
  void * jresult ;
  XMLAttributes *result = 0 ;
  
  
  try {
    result = (XMLAttributes *)new XMLAttributes();
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLAttributes(void * jarg1) {
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  
  arg1 = (XMLAttributes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLAttributes__SWIG_1(void * jarg1) {
  void * jresult ;
  XMLAttributes *arg1 = 0 ;
  XMLAttributes *result = 0 ;
  
  arg1 = (XMLAttributes *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLAttributes *)new XMLAttributes((XMLAttributes const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLAttributes_clone(void * jarg1) {
  void * jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLAttributes *result = 0 ;
  
  arg1 = (XMLAttributes *)jarg1; 
  result = (XMLAttributes *)((XMLAttributes const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_add__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4, wchar_t* jarg5) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string *arg5 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  std::string arg_str5 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return 0;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4,(std::string const &)*arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_add__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_add__SWIG_2(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_add__SWIG_3(void * jarg1, void * jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLTriple *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((XMLTriple const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_removeResource(void * jarg1, int jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->removeResource(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_remove__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->remove(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_remove__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->remove((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_remove__SWIG_2(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->remove((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_remove__SWIG_3(void * jarg1, void * jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLTriple *arg2 = 0 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->remove((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_clear(void * jarg1) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  result = (int)(arg1)->clear();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_getIndex__SWIG_0(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((XMLAttributes const *)arg1)->getIndex((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_getIndex__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)((XMLAttributes const *)arg1)->getIndex((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_getIndex__SWIG_2(void * jarg1, void * jarg2) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLTriple *arg2 = 0 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (int)((XMLAttributes const *)arg1)->getIndex((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_getLength(void * jarg1) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  result = (int)((XMLAttributes const *)arg1)->getLength();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLAttributes_getNumAttributes(void * jarg1) {
  int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int result;
  
  arg1 = (XMLAttributes *)jarg1; 
  result = (int)((XMLAttributes const *)arg1)->getNumAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getName(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLAttributes const *)arg1)->getName(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getPrefix(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLAttributes const *)arg1)->getPrefix(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getPrefixedName(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLAttributes const *)arg1)->getPrefixedName(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getURI(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLAttributes const *)arg1)->getURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getValue__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLAttributes const *)arg1)->getValue(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getValue__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string arg2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = ((XMLAttributes const *)arg1)->getValue(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getValue__SWIG_2(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = ((XMLAttributes const *)arg1)->getValue(arg2,arg3);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLAttributes_getValue__SWIG_3(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLTriple *arg2 = 0 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = ((XMLAttributes const *)arg1)->getValue((XMLTriple const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLAttributes_hasAttribute__SWIG_0(void * jarg1, int jarg2) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((XMLAttributes const *)arg1)->hasAttribute(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLAttributes_hasAttribute__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  bool result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLAttributes const *)arg1)->hasAttribute(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLAttributes_hasAttribute__SWIG_2(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string arg2 ;
  bool result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLAttributes const *)arg1)->hasAttribute(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLAttributes_hasAttribute__SWIG_3(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  XMLTriple *arg2 = 0 ;
  bool result;
  
  arg1 = (XMLAttributes *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (bool)((XMLAttributes const *)arg1)->hasAttribute((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLAttributes_isEmpty(void * jarg1) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  bool result;
  
  arg1 = (XMLAttributes *)jarg1; 
  result = (bool)((XMLAttributes const *)arg1)->isEmpty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLConstructorException() {
  void * jresult ;
  XMLConstructorException *result = 0 ;
  
  result = (XMLConstructorException *)new XMLConstructorException();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLConstructorException(void * jarg1) {
  XMLConstructorException *arg1 = (XMLConstructorException *) 0 ;
  
  arg1 = (XMLConstructorException *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNamespaces__SWIG_0() {
  void * jresult ;
  XMLNamespaces *result = 0 ;
  
  
  try {
    result = (XMLNamespaces *)new XMLNamespaces();
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLNamespaces(void * jarg1) {
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  
  arg1 = (XMLNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNamespaces__SWIG_1(void * jarg1) {
  void * jresult ;
  XMLNamespaces *arg1 = 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (XMLNamespaces *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNamespaces *)new XMLNamespaces((XMLNamespaces const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNamespaces_clone(void * jarg1) {
  void * jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = (XMLNamespaces *)((XMLNamespaces const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_add__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_add__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_remove__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->remove(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_remove__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->remove((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_clear(void * jarg1) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = (int)(arg1)->clear();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_getIndex(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)((XMLNamespaces const *)arg1)->getIndex(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNamespaces_containsUri(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string arg2 ;
  bool result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLNamespaces const *)arg1)->containsUri(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_getIndexByPrefix(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)((XMLNamespaces const *)arg1)->getIndexByPrefix(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_getLength(void * jarg1) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = (int)((XMLNamespaces const *)arg1)->getLength();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNamespaces_getNumNamespaces(void * jarg1) {
  int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = (int)((XMLNamespaces const *)arg1)->getNumNamespaces();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNamespaces_getPrefix__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLNamespaces const *)arg1)->getPrefix(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNamespaces_getPrefix__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = ((XMLNamespaces const *)arg1)->getPrefix((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNamespaces_getURI__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLNamespaces const *)arg1)->getURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNamespaces_getURI__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = ((XMLNamespaces const *)arg1)->getURI((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNamespaces_getURI__SWIG_2(void * jarg1) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = ((XMLNamespaces const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNamespaces_isEmpty(void * jarg1) {
  unsigned int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  bool result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  result = (bool)((XMLNamespaces const *)arg1)->isEmpty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNamespaces_hasURI(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((XMLNamespaces const *)arg1)->hasURI((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNamespaces_hasPrefix(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((XMLNamespaces const *)arg1)->hasPrefix((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNamespaces_hasNS(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)((XMLNamespaces const *)arg1)->hasNS((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_0() {
  void * jresult ;
  XMLToken *result = 0 ;
  
  
  try {
    result = (XMLToken *)new XMLToken();
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_1(void * jarg1, void * jarg2, void * jarg3, long long jarg4, long long jarg5) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3,arg4,arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_2(void * jarg1, void * jarg2, void * jarg3, long long jarg4) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  unsigned int arg4 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_3(void * jarg1, void * jarg2, void * jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_4(void * jarg1, void * jarg2, long long jarg3, long long jarg4) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_5(void * jarg1, void * jarg2, long long jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  unsigned int arg3 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_6(void * jarg1, void * jarg2) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_7(void * jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_8(void * jarg1, long long jarg2) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  unsigned int arg2 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_9(void * jarg1) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLToken *)new XMLToken((XMLTriple const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_10(wchar_t* jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string arg_str1 ;
  XMLToken *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((std::string const &)*arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_11(wchar_t* jarg1, long long jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  std::string arg_str1 ;
  XMLToken *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (XMLToken *)new XMLToken((std::string const &)*arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_12(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLToken *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  
  try {
    result = (XMLToken *)new XMLToken((std::string const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLToken(void * jarg1) {
  XMLToken *arg1 = (XMLToken *) 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLToken__SWIG_13(void * jarg1) {
  void * jresult ;
  XMLToken *arg1 = 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLToken *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLToken *)new XMLToken((XMLToken const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLToken_clone(void * jarg1) {
  void * jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (XMLToken *)((XMLToken const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLToken_getAttributes(void * jarg1) {
  void * jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLAttributes *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (XMLAttributes *) &((XMLToken const *)arg1)->getAttributes();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setAttributes(void * jarg1, void * jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLAttributes *arg2 = 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->setAttributes((XMLAttributes const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addAttr__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4, wchar_t* jarg5) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string *arg5 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  std::string arg_str5 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return 0;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4,(std::string const &)*arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addAttr__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addAttr__SWIG_2(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addAttr__SWIG_3(void * jarg1, void * jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((XMLTriple const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeAttr__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->removeAttr(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeAttr__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->removeAttr((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeAttr__SWIG_2(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->removeAttr((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeAttr__SWIG_3(void * jarg1, void * jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->removeAttr((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_clearAttributes(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)(arg1)->clearAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getAttrIndex__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)((XMLToken const *)arg1)->getAttrIndex((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getAttrIndex__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((XMLToken const *)arg1)->getAttrIndex((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getAttrIndex__SWIG_2(void * jarg1, void * jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (int)((XMLToken const *)arg1)->getAttrIndex((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getAttributesLength(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)((XMLToken const *)arg1)->getAttributesLength();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrName(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getAttrName(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrPrefix(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getAttrPrefix(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrPrefixedName(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getAttrPrefixedName(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrURI(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getAttrURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrValue__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getAttrValue(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrValue__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = ((XMLToken const *)arg1)->getAttrValue(arg2,arg3);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrValue__SWIG_2(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = ((XMLToken const *)arg1)->getAttrValue(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getAttrValue__SWIG_3(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = ((XMLToken const *)arg1)->getAttrValue((XMLTriple const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasAttr__SWIG_0(void * jarg1, int jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((XMLToken const *)arg1)->hasAttr(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasAttr__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string arg2 ;
  std::string arg3 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasAttr(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasAttr__SWIG_2(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string arg2 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasAttr(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasAttr__SWIG_3(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (bool)((XMLToken const *)arg1)->hasAttr((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isAttributesEmpty(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isAttributesEmpty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLToken_getNamespaces(void * jarg1) {
  void * jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLNamespaces *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (XMLNamespaces *) &((XMLToken const *)arg1)->getNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setNamespaces(void * jarg1, void * jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLNamespaces *arg2 = 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->setNamespaces((XMLNamespaces const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addNamespace__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (int)(arg1)->addNamespace((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_addNamespace__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->addNamespace((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeNamespace__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->removeNamespace(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_removeNamespace__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->removeNamespace((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_clearNamespaces(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)(arg1)->clearNamespaces();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getNamespaceIndex(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((XMLToken const *)arg1)->getNamespaceIndex((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getNamespaceIndexByPrefix(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((XMLToken const *)arg1)->getNamespaceIndexByPrefix((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_getNamespacesLength(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)((XMLToken const *)arg1)->getNamespacesLength();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getNamespacePrefix__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getNamespacePrefix(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getNamespacePrefix__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = ((XMLToken const *)arg1)->getNamespacePrefix((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getNamespaceURI__SWIG_0(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int arg2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (int)jarg2; 
  result = ((XMLToken const *)arg1)->getNamespaceURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getNamespaceURI__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = ((XMLToken const *)arg1)->getNamespaceURI((std::string const &)*arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getNamespaceURI__SWIG_2(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  result = ((XMLToken const *)arg1)->getNamespaceURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isNamespacesEmpty(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isNamespacesEmpty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasNamespaceURI(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasNamespaceURI((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasNamespacePrefix(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasNamespacePrefix((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_hasNamespaceNS(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasNamespaceNS((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setTriple(void * jarg1, void * jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLTriple *arg2 = 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->setTriple((XMLTriple const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getName(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (std::string *) &((XMLToken const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getPrefix(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (std::string *) &((XMLToken const *)arg1)->getPrefix();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getURI(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (std::string *) &((XMLToken const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_getCharacters(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  result = (std::string *) &((XMLToken const *)arg1)->getCharacters();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setCharacters(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setCharacters((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_append(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->append((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_getColumn(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  unsigned int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (unsigned int)((XMLToken const *)arg1)->getColumn();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_getLine(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  unsigned int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (unsigned int)((XMLToken const *)arg1)->getLine();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isElement(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isElement();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isEnd(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isEnd();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isEndFor(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  XMLToken *arg2 = 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  arg2 = (XMLToken *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  result = (bool)((XMLToken const *)arg1)->isEndFor((XMLToken const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isEOF(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isEOF();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isStart(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isStart();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLToken_isText(void * jarg1) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  bool result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (bool)((XMLToken const *)arg1)->isText();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setEnd(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)(arg1)->setEnd();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_setEOF(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)(arg1)->setEOF();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLToken_unsetEnd(void * jarg1) {
  int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  int result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (int)(arg1)->unsetEnd();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLToken_toString(void * jarg1) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string result;
  
  arg1 = (XMLToken *)jarg1; 
  result = (arg1)->toString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_0() {
  void * jresult ;
  XMLNode *result = 0 ;
  
  
  try {
    result = (XMLNode *)new XMLNode();
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_1(void * jarg1) {
  void * jresult ;
  XMLToken *arg1 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLToken *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode((XMLToken const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_2(void * jarg1, void * jarg2, void * jarg3, long long jarg4, long long jarg5) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3,arg4,arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_3(void * jarg1, void * jarg2, void * jarg3, long long jarg4) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  unsigned int arg4 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_4(void * jarg1, void * jarg2, void * jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNamespaces *arg3 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (XMLNamespaces *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNamespaces const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,(XMLNamespaces const &)*arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_5(void * jarg1, void * jarg2, long long jarg3, long long jarg4) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_6(void * jarg1, void * jarg2, long long jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  unsigned int arg3 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_7(void * jarg1, void * jarg2) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLAttributes *arg2 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,(XMLAttributes const &)*arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_8(void * jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_9(void * jarg1, long long jarg2) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  unsigned int arg2 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_10(void * jarg1) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode((XMLTriple const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_11(wchar_t* jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string arg_str1 ;
  XMLNode *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((std::string const &)*arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_12(wchar_t* jarg1, long long jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  std::string arg_str1 ;
  XMLNode *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  
  try {
    result = (XMLNode *)new XMLNode((std::string const &)*arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_13(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLNode *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  
  try {
    result = (XMLNode *)new XMLNode((std::string const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_14(void * jarg1) {
  void * jresult ;
  XMLInputStream *arg1 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode(*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLNode(void * jarg1) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLNode__SWIG_15(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLNode *)new XMLNode((XMLNode const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_clone(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  result = (XMLNode *)((XMLNode const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNode_addChild(void * jarg1, void * jarg2) {
  int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *arg2 = 0 ;
  int result;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (XMLNode *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode const & type is null", 0);
    return 0;
  } 
  result = (int)(arg1)->addChild((XMLNode const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_insertChild(void * jarg1, long long jarg2, void * jarg3) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  unsigned int arg2 ;
  XMLNode *arg3 = 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (XMLNode *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode const & type is null", 0);
    return 0;
  } 
  result = (XMLNode *) &(arg1)->insertChild(arg2,(XMLNode const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_removeChild(void * jarg1, long long jarg2) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  unsigned int arg2 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (XMLNode *)(arg1)->removeChild(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNode_removeChildren(void * jarg1) {
  int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (XMLNode *)jarg1; 
  result = (int)(arg1)->removeChildren();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_getChild__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  unsigned int arg2 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (XMLNode *) &(arg1)->getChild(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_getChild__SWIG_2(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (XMLNode *) &(arg1)->getChild((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLNode_getIndex(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (XMLNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((XMLNode const *)arg1)->getIndex((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNode_hasChild(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (XMLNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((XMLNode const *)arg1)->hasChild((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNode_equals__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *arg2 = 0 ;
  bool arg3 ;
  bool result;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (XMLNode *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode const & type is null", 0);
    return 0;
  } 
  arg3 = jarg3 ? true : false; 
  result = (bool)((XMLNode const *)arg1)->equals((XMLNode const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNode_equals__SWIG_1(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *arg2 = 0 ;
  bool result;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (XMLNode *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode const & type is null", 0);
    return 0;
  } 
  result = (bool)((XMLNode const *)arg1)->equals((XMLNode const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLNode_getNumChildren(void * jarg1) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  unsigned int result;
  
  arg1 = (XMLNode *)jarg1; 
  result = (unsigned int)((XMLNode const *)arg1)->getNumChildren();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNode_toXMLString(void * jarg1) {
  wchar_t* jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  std::string result;
  
  arg1 = (XMLNode *)jarg1; 
  result = ((XMLNode const *)arg1)->toXMLString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLNode_convertXMLNodeToString(void * jarg1) {
  wchar_t* jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  std::string result;
  
  arg1 = (XMLNode *)jarg1; 
  result = XMLNode::convertXMLNodeToString((XMLNode const *)arg1);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_convertStringToXMLNode__SWIG_0(wchar_t* jarg1, void * jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  std::string arg_str1 ;
  XMLNode *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (XMLNamespaces *)jarg2; 
  result = (XMLNode *)XMLNode::convertStringToXMLNode((std::string const &)*arg1,(XMLNamespaces const *)arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLNode_convertStringToXMLNode__SWIG_1(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLNode *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (XMLNode *)XMLNode::convertStringToXMLNode((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLTriple__SWIG_0() {
  void * jresult ;
  XMLTriple *result = 0 ;
  
  result = (XMLTriple *)new XMLTriple();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLTriple__SWIG_1(wchar_t* jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  XMLTriple *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (XMLTriple *)new XMLTriple((std::string const &)*arg1,(std::string const &)*arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLTriple__SWIG_2(wchar_t* jarg1, char jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  char arg2 ;
  std::string arg_str1 ;
  XMLTriple *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (char)jarg2; 
  result = (XMLTriple *)new XMLTriple((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLTriple__SWIG_3(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLTriple *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (XMLTriple *)new XMLTriple((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLTriple__SWIG_4(void * jarg1) {
  void * jresult ;
  XMLTriple *arg1 = 0 ;
  XMLTriple *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return 0;
  } 
  result = (XMLTriple *)new XMLTriple((XMLTriple const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLTriple_clone(void * jarg1) {
  void * jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  XMLTriple *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  result = (XMLTriple *)((XMLTriple const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLTriple_getName(void * jarg1) {
  wchar_t* jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  result = (std::string *) &((XMLTriple const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLTriple_getPrefix(void * jarg1) {
  wchar_t* jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  result = (std::string *) &((XMLTriple const *)arg1)->getPrefix();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLTriple_getURI(void * jarg1) {
  wchar_t* jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  result = (std::string *) &((XMLTriple const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLTriple_getPrefixedName(void * jarg1) {
  wchar_t* jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  std::string result;
  
  arg1 = (XMLTriple *)jarg1; 
  result = ((XMLTriple const *)arg1)->getPrefixedName();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLTriple_isEmpty(void * jarg1) {
  unsigned int jresult ;
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  bool result;
  
  arg1 = (XMLTriple *)jarg1; 
  result = (bool)((XMLTriple const *)arg1)->isEmpty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLTriple(void * jarg1) {
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOutputStream__SWIG_0(void * jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4, wchar_t* jarg5) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string *arg4 = 0 ;
  std::string *arg5 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  std::string arg_str5 ;
  XMLOutputStream *result = 0 ;
  
  arg1 = (std::ostream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return 0;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,(std::string const &)*arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOutputStream__SWIG_1(void * jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  XMLOutputStream *result = 0 ;
  
  arg1 = (std::ostream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,(std::string const &)*arg2,arg3,(std::string const &)*arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOutputStream__SWIG_2(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  XMLOutputStream *result = 0 ;
  
  arg1 = (std::ostream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,(std::string const &)*arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOutputStream__SWIG_3(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  XMLOutputStream *result = 0 ;
  
  arg1 = (std::ostream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,(std::string const &)*arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOutputStream__SWIG_4(void * jarg1) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  XMLOutputStream *result = 0 ;
  
  arg1 = (std::ostream *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLOutputStream(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_endElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->endElement((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_endElement__SWIG_1(void * jarg1, wchar_t* jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->endElement((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_endElement__SWIG_2(void * jarg1, void * jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  (arg1)->endElement((XMLTriple const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setAutoIndent(void * jarg1, unsigned int jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  bool arg2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setAutoIndent(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->startElement((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startElement__SWIG_1(void * jarg1, wchar_t* jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->startElement((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startElement__SWIG_2(void * jarg1, void * jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  (arg1)->startElement((XMLTriple const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startEndElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->startEndElement((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startEndElement__SWIG_1(void * jarg1, wchar_t* jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->startEndElement((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_startEndElement__SWIG_2(void * jarg1, void * jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  (arg1)->startEndElement((XMLTriple const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, wchar_t* jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return ;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_2(void * jarg1, void * jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->writeAttribute((XMLTriple const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_6(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  bool *arg3 = 0 ;
  std::string arg_str2 ;
  bool temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  temp3 = jarg3 ? true : false; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((std::string const &)*arg2,(bool const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_7(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  bool temp4 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  temp4 = jarg4 ? true : false; 
  arg4 = &temp4; 
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3,(bool const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_8(void * jarg1, void * jarg2, unsigned int jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  bool *arg3 = 0 ;
  bool temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  temp3 = jarg3 ? true : false; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((XMLTriple const &)*arg2,(bool const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_9(void * jarg1, wchar_t* jarg2, double jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  double *arg3 = 0 ;
  std::string arg_str2 ;
  double temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  temp3 = (double)jarg3; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((std::string const &)*arg2,(double const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_10(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, double jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  double *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  double temp4 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  temp4 = (double)jarg4; 
  arg4 = &temp4; 
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3,(double const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_11(void * jarg1, void * jarg2, double jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  double *arg3 = 0 ;
  double temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  temp3 = (double)jarg3; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((XMLTriple const &)*arg2,(double const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_12(void * jarg1, wchar_t* jarg2, long jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  long *arg3 = 0 ;
  std::string arg_str2 ;
  long temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  temp3 = (long)jarg3; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((std::string const &)*arg2,(long const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_13(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, long jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  long *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  long temp4 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  temp4 = (long)jarg4; 
  arg4 = &temp4; 
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3,(long const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_14(void * jarg1, void * jarg2, long jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  long *arg3 = 0 ;
  long temp3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  temp3 = (long)jarg3; 
  arg3 = &temp3; 
  (arg1)->writeAttribute((XMLTriple const &)*arg2,(long const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeAttribute__SWIG_18(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, const long long& jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  unsigned int *arg4 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  unsigned int temp4 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  temp4 = (unsigned int)jarg4; 
  arg4 = &temp4; 
  (arg1)->writeAttribute((std::string const &)*arg2,(std::string const &)*arg3,(unsigned int const &)*arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeXMLDecl(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->writeXMLDecl();
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_downIndent(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->downIndent();
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_upIndent(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->upIndent();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLOutputStream_getSBMLNamespaces(void * jarg1) {
  void * jresult ;
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  result = (SBMLNamespaces *)(arg1)->getSBMLNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setSBMLNamespaces(void * jarg1, void * jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->setSBMLNamespaces(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteComment() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)XMLOutputStream::getWriteComment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteComment(unsigned int jarg1) {
  bool arg1 ;
  
  arg1 = jarg1 ? true : false; 
  XMLOutputStream::setWriteComment(arg1);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteTimestamp() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)XMLOutputStream::getWriteTimestamp();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteTimestamp(unsigned int jarg1) {
  bool arg1 ;
  
  arg1 = jarg1 ? true : false; 
  XMLOutputStream::setWriteTimestamp(arg1);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLOutputStream_getLibraryName() {
  wchar_t* jresult ;
  std::string result;
  
  result = XMLOutputStream::getLibraryName();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryName(wchar_t* jarg1) {
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return ;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  XMLOutputStream::setLibraryName((std::string const &)*arg1);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLOutputStream_getLibraryVersion() {
  wchar_t* jresult ;
  std::string result;
  
  result = XMLOutputStream::getLibraryVersion();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryVersion(wchar_t* jarg1) {
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return ;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  XMLOutputStream::setLibraryVersion((std::string const &)*arg1);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_0(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  std::string arg_str4 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream((std::string const &)*arg1,arg2,(std::string const &)*arg3,(std::string const &)*arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_1(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_2(wchar_t* jarg1, unsigned int jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string arg_str1 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_3(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_4() {
  void * jresult ;
  XMLOwningOutputStringStream *result = 0 ;
  
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLOwningOutputStringStream(void * jarg1) {
  XMLOwningOutputStringStream *arg1 = (XMLOwningOutputStringStream *) 0 ;
  
  arg1 = (XMLOwningOutputStringStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputFileStream__SWIG_0(wchar_t* jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4, wchar_t* jarg5) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string *arg4 = 0 ;
  std::string *arg5 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  std::string arg_str5 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return 0;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,(std::string const &)*arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputFileStream__SWIG_1(wchar_t* jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  std::string arg_str4 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,(std::string const &)*arg2,arg3,(std::string const &)*arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputFileStream__SWIG_2(wchar_t* jarg1, wchar_t* jarg2, unsigned int jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,(std::string const &)*arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputFileStream__SWIG_3(wchar_t* jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,(std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputFileStream__SWIG_4(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLOwningOutputFileStream(void * jarg1) {
  XMLOwningOutputFileStream *arg1 = (XMLOwningOutputFileStream *) 0 ;
  
  arg1 = (XMLOwningOutputFileStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLInputStream__SWIG_0(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3, void * jarg4) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  bool arg2 ;
  std::string arg3 ;
  XMLErrorLog *arg4 = (XMLErrorLog *) 0 ;
  XMLInputStream *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = jarg2 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  arg4 = (XMLErrorLog *)jarg4; 
  result = (XMLInputStream *)new XMLInputStream((char const *)arg1,arg2,arg3,arg4);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLInputStream__SWIG_1(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  bool arg2 ;
  std::string arg3 ;
  XMLInputStream *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = jarg2 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (XMLInputStream *)new XMLInputStream((char const *)arg1,arg2,arg3);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLInputStream__SWIG_2(wchar_t* jarg1, unsigned int jarg2) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  bool arg2 ;
  XMLInputStream *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = jarg2 ? true : false; 
  result = (XMLInputStream *)new XMLInputStream((char const *)arg1,arg2);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLInputStream__SWIG_3(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  XMLInputStream *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (XMLInputStream *)new XMLInputStream((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLInputStream(void * jarg1) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLInputStream_getEncoding(void * jarg1) {
  wchar_t* jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (std::string *) &(arg1)->getEncoding();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLInputStream_getVersion(void * jarg1) {
  wchar_t* jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (std::string *) &(arg1)->getVersion();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLInputStream_getErrorLog(void * jarg1) {
  void * jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  XMLErrorLog *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (XMLErrorLog *)(arg1)->getErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_isEOF(void * jarg1) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  bool result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (bool)((XMLInputStream const *)arg1)->isEOF();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_isError(void * jarg1) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  bool result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (bool)((XMLInputStream const *)arg1)->isError();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_isGood(void * jarg1) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  bool result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (bool)((XMLInputStream const *)arg1)->isGood();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLInputStream_next(void * jarg1) {
  void * jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  XMLToken result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (arg1)->next();
  jresult = new XMLToken((const XMLToken &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLInputStream_peek(void * jarg1) {
  void * jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  XMLToken *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (XMLToken *) &(arg1)->peek();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLInputStream_skipPastEnd(void * jarg1, void * jarg2) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  XMLToken *arg2 = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  arg2 = (XMLToken *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return ;
  } 
  (arg1)->skipPastEnd((XMLToken const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLInputStream_skipText(void * jarg1) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  (arg1)->skipText();
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLInputStream_setErrorLog(void * jarg1, void * jarg2) {
  int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  XMLErrorLog *arg2 = (XMLErrorLog *) 0 ;
  int result;
  
  arg1 = (XMLInputStream *)jarg1; 
  arg2 = (XMLErrorLog *)jarg2; 
  result = (int)(arg1)->setErrorLog(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLInputStream_toString(void * jarg1) {
  wchar_t* jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (arg1)->toString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLInputStream_getSBMLNamespaces(void * jarg1) {
  void * jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (SBMLNamespaces *)(arg1)->getSBMLNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLInputStream_setSBMLNamespaces(void * jarg1, void * jarg2) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->setSBMLNamespaces(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_determineNumberChildren__SWIG_0(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  unsigned int result;
  
  arg1 = (XMLInputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (unsigned int)(arg1)->determineNumberChildren((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_determineNumberChildren__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  unsigned int result;
  
  arg1 = (XMLInputStream *)jarg1; 
  result = (unsigned int)(arg1)->determineNumberChildren();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_determineNumSpecificChildren(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  unsigned int result;
  
  arg1 = (XMLInputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (unsigned int)(arg1)->determineNumSpecificChildren((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLInputStream_containsChild(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (XMLInputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)(arg1)->containsChild((std::string const &)*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_0(int jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6) {
  void * jresult ;
  int arg1 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg_str2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,(std::string const &)*arg2,arg3,arg4,arg5,arg6);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_1(int jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5) {
  void * jresult ;
  int arg1 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  std::string arg_str2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,(std::string const &)*arg2,arg3,arg4,arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_2(int jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  void * jresult ;
  int arg1 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,(std::string const &)*arg2,arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_3(int jarg1, wchar_t* jarg2, long long jarg3) {
  void * jresult ;
  int arg1 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string arg_str2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,(std::string const &)*arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_4(int jarg1, wchar_t* jarg2) {
  void * jresult ;
  int arg1 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,(std::string const &)*arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_5(int jarg1) {
  void * jresult ;
  int arg1 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  
  try {
    result = (XMLError *)new XMLError(arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_6() {
  void * jresult ;
  XMLError *result = 0 ;
  
  
  try {
    result = (XMLError *)new XMLError();
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLError__SWIG_7(void * jarg1) {
  void * jresult ;
  XMLError *arg1 = 0 ;
  XMLError *result = 0 ;
  
  arg1 = (XMLError *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLError const & type is null", 0);
    return 0;
  } 
  
  try {
    result = (XMLError *)new XMLError((XMLError const &)*arg1);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLError(void * jarg1) {
  XMLError *arg1 = (XMLError *) 0 ;
  
  arg1 = (XMLError *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getErrorId(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getErrorId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getMessage(void * jarg1) {
  wchar_t* jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLError *)jarg1; 
  result = (std::string *) &((XMLError const *)arg1)->getMessage();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getShortMessage(void * jarg1) {
  wchar_t* jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLError *)jarg1; 
  result = (std::string *) &((XMLError const *)arg1)->getShortMessage();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getLine(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getLine();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getColumn(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getColumn();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getSeverity(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getSeverity();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getSeverityAsString(void * jarg1) {
  wchar_t* jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLError *)jarg1; 
  result = (std::string *) &((XMLError const *)arg1)->getSeverityAsString();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getCategory(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getCategory();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getCategoryAsString(void * jarg1) {
  wchar_t* jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLError *)jarg1; 
  result = (std::string *) &((XMLError const *)arg1)->getCategoryAsString();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isInfo(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isInfo();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isWarning(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isWarning();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isError(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isError();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isFatal(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isFatal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isInternal(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isInternal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isSystem(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isSystem();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isXML(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isXML();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_isValid(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  bool result;
  
  arg1 = (XMLError *)jarg1; 
  result = (bool)((XMLError const *)arg1)->isValid();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLError_setLine(void * jarg1, long long jarg2) {
  int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (XMLError *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setLine(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLError_setColumn(void * jarg1, long long jarg2) {
  int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (XMLError *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setColumn(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getStandardMessage(int jarg1) {
  wchar_t* jresult ;
  int arg1 ;
  std::string result;
  
  arg1 = (int)jarg1; 
  result = XMLError::getStandardMessage(arg1);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLError_getPackage(void * jarg1) {
  wchar_t* jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (XMLError *)jarg1; 
  result = (std::string *) &((XMLError const *)arg1)->getPackage();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLError_getErrorIdOffset(void * jarg1) {
  unsigned int jresult ;
  XMLError *arg1 = (XMLError *) 0 ;
  unsigned int result;
  
  arg1 = (XMLError *)jarg1; 
  result = (unsigned int)((XMLError const *)arg1)->getErrorIdOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLErrorLog_getNumErrors(void * jarg1) {
  unsigned int jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  unsigned int result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  result = (unsigned int)((XMLErrorLog const *)arg1)->getNumErrors();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_XMLErrorLog_getError(void * jarg1, long long jarg2) {
  void * jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  unsigned int arg2 ;
  XMLError *result = 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (XMLError *)((XMLErrorLog const *)arg1)->getError(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_clearLog(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  (arg1)->clearLog();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLErrorLog__SWIG_0() {
  void * jresult ;
  XMLErrorLog *result = 0 ;
  
  result = (XMLErrorLog *)new XMLErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLErrorLog__SWIG_1(void * jarg1) {
  void * jresult ;
  XMLErrorLog *arg1 = 0 ;
  XMLErrorLog *result = 0 ;
  
  arg1 = (XMLErrorLog *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLErrorLog const & type is null", 0);
    return 0;
  } 
  result = (XMLErrorLog *)new XMLErrorLog((XMLErrorLog const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_XMLErrorLog(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_add__SWIG_0(void * jarg1, void * jarg2) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLError *arg2 = 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (XMLError *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLError const & type is null", 0);
    return ;
  } 
  (arg1)->add((XMLError const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_add__SWIG_1(void * jarg1, void * jarg2) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  std::vector< XMLError * > *arg2 = 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (std::vector< XMLError * > *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< XMLError * > const & type is null", 0);
    return ;
  } 
  (arg1)->add((std::vector< XMLError * > const &)*arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLErrorLog_toString(void * jarg1) {
  wchar_t* jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  std::string result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  result = ((XMLErrorLog const *)arg1)->toString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_printErrors__SWIG_0(void * jarg1, void * jarg2) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  std::ostream *arg2 = 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (std::ostream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return ;
  } 
  ((XMLErrorLog const *)arg1)->printErrors(*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_printErrors__SWIG_1(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  ((XMLErrorLog const *)arg1)->printErrors();
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_printErrors__SWIG_2(void * jarg1, void * jarg2, long long jarg3) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  std::ostream *arg2 = 0 ;
  unsigned int arg3 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (std::ostream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::ostream & type is null", 0);
    return ;
  } 
  {
    arg3 = (unsigned int)jarg3;  
  }
  ((XMLErrorLog const *)arg1)->printErrors(*arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLErrorLog_isSeverityOverridden(void * jarg1) {
  unsigned int jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  bool result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  result = (bool)((XMLErrorLog const *)arg1)->isSeverityOverridden();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_unsetSeverityOverride(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  (arg1)->unsetSeverityOverride();
}


SWIGEXPORT int SWIGSTDCALL CSharp_XMLErrorLog_getSeverityOverride(void * jarg1) {
  int jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLErrorSeverityOverride_t result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  result = (XMLErrorSeverityOverride_t)((XMLErrorLog const *)arg1)->getSeverityOverride();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_setSeverityOverride(void * jarg1, int jarg2) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLErrorSeverityOverride_t arg2 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (XMLErrorSeverityOverride_t)jarg2; 
  (arg1)->setSeverityOverride(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_changeErrorSeverity__SWIG_0(void * jarg1, int jarg2, int jarg3, wchar_t* jarg4) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLErrorSeverity_t arg2 ;
  XMLErrorSeverity_t arg3 ;
  std::string arg4 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (XMLErrorSeverity_t)jarg2; 
  arg3 = (XMLErrorSeverity_t)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->changeErrorSeverity(arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_XMLErrorLog_changeErrorSeverity__SWIG_1(void * jarg1, int jarg2, int jarg3) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLErrorSeverity_t arg2 ;
  XMLErrorSeverity_t arg3 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  arg2 = (XMLErrorSeverity_t)jarg2; 
  arg3 = (XMLErrorSeverity_t)jarg3; 
  (arg1)->changeErrorSeverity(arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLErrorLog_contains(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  unsigned int arg2 ;
  bool result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (bool)((XMLErrorLog const *)arg1)->contains(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLErrorLog_getError(void * jarg1, long long jarg2) {
  void * jresult ;
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBMLError *)((SBMLErrorLog const *)arg1)->getError(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLErrorLog_getErrorWithSeverity(void * jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (SBMLError *)((SBMLErrorLog const *)arg1)->getErrorWithSeverity(arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLErrorLog_getNumFailsWithSeverity__SWIG_0(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int result;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (unsigned int)(arg1)->getNumFailsWithSeverity(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLErrorLog__SWIG_0() {
  void * jresult ;
  SBMLErrorLog *result = 0 ;
  
  result = (SBMLErrorLog *)new SBMLErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLErrorLog__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLErrorLog *arg1 = 0 ;
  SBMLErrorLog *result = 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLErrorLog const & type is null", 0);
    return 0;
  } 
  result = (SBMLErrorLog *)new SBMLErrorLog((SBMLErrorLog const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLErrorLog(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_0(void * jarg1, long long jarg2, long long jarg3, long long jarg4, wchar_t* jarg5, long long jarg6, long long jarg7, long long jarg8, long long jarg9) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  std::string arg_str5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  (arg1)->logError(arg2,arg3,arg4,(std::string const &)*arg5,arg6,arg7,arg8,arg9);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_1(void * jarg1, long long jarg2, long long jarg3, long long jarg4, wchar_t* jarg5, long long jarg6, long long jarg7, long long jarg8) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string arg_str5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  (arg1)->logError(arg2,arg3,arg4,(std::string const &)*arg5,arg6,arg7,arg8);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_2(void * jarg1, long long jarg2, long long jarg3, long long jarg4, wchar_t* jarg5, long long jarg6, long long jarg7) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  std::string arg_str5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  (arg1)->logError(arg2,arg3,arg4,(std::string const &)*arg5,arg6,arg7);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_3(void * jarg1, long long jarg2, long long jarg3, long long jarg4, wchar_t* jarg5, long long jarg6) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  unsigned int arg6 ;
  std::string arg_str5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  (arg1)->logError(arg2,arg3,arg4,(std::string const &)*arg5,arg6);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_4(void * jarg1, long long jarg2, long long jarg3, long long jarg4, wchar_t* jarg5) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *arg5 = 0 ;
  std::string arg_str5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  (arg1)->logError(arg2,arg3,arg4,(std::string const &)*arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_5(void * jarg1, long long jarg2, long long jarg3, long long jarg4) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  (arg1)->logError(arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_6(void * jarg1, long long jarg2, long long jarg3) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  (arg1)->logError(arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_7(void * jarg1, long long jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->logError(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logError__SWIG_8(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  (arg1)->logError();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_0(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, wchar_t* jarg7, long long jarg8, long long jarg9, long long jarg10, long long jarg11) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string *arg7 = 0 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  unsigned int arg10 ;
  unsigned int arg11 ;
  std::string arg_str2 ;
  std::string arg_str7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    if (!mbstr) return ;
    
    arg_str7.assign(mbstr);
    arg7 = &arg_str7;
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  {
    arg11 = (unsigned int)jarg11;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6,(std::string const &)*arg7,arg8,arg9,arg10,arg11);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_1(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, wchar_t* jarg7, long long jarg8, long long jarg9, long long jarg10) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string *arg7 = 0 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  unsigned int arg10 ;
  std::string arg_str2 ;
  std::string arg_str7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    if (!mbstr) return ;
    
    arg_str7.assign(mbstr);
    arg7 = &arg_str7;
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6,(std::string const &)*arg7,arg8,arg9,arg10);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_2(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, wchar_t* jarg7, long long jarg8, long long jarg9) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string *arg7 = 0 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  std::string arg_str2 ;
  std::string arg_str7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    if (!mbstr) return ;
    
    arg_str7.assign(mbstr);
    arg7 = &arg_str7;
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6,(std::string const &)*arg7,arg8,arg9);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_3(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, wchar_t* jarg7, long long jarg8) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string *arg7 = 0 ;
  unsigned int arg8 ;
  std::string arg_str2 ;
  std::string arg_str7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    if (!mbstr) return ;
    
    arg_str7.assign(mbstr);
    arg7 = &arg_str7;
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6,(std::string const &)*arg7,arg8);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_4(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, wchar_t* jarg7) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string *arg7 = 0 ;
  std::string arg_str2 ;
  std::string arg_str7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    if (!mbstr) return ;
    
    arg_str7.assign(mbstr);
    arg7 = &arg_str7;
    delete[] mbstr;
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6,(std::string const &)*arg7);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_5(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5,arg6);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_6(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4,arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_7(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_8(void * jarg1, wchar_t* jarg2, long long jarg3) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  (arg1)->logPackageError((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_9(void * jarg1, wchar_t* jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->logPackageError((std::string const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_logPackageError__SWIG_10(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  (arg1)->logPackageError();
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_add(void * jarg1, void * jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  SBMLError *arg2 = 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  arg2 = (SBMLError *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLError const & type is null", 0);
    return ;
  } 
  (arg1)->add((SBMLError const &)*arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_remove(void * jarg1, long long jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->remove(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLErrorLog_removeAll(void * jarg1, long long jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->removeAll(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLErrorLog_contains(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  unsigned int arg2 ;
  bool result;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (bool)((SBMLErrorLog const *)arg1)->contains(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_0(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8, wchar_t* jarg9, long long jarg10) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string *arg9 = 0 ;
  unsigned int arg10 ;
  std::string arg_str4 ;
  std::string arg_str9 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg9);
    if (!mbstr) return 0;
    
    arg_str9.assign(mbstr);
    arg9 = &arg_str9;
    delete[] mbstr;
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5,arg6,arg7,arg8,(std::string const &)*arg9,arg10);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_1(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8, wchar_t* jarg9) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string *arg9 = 0 ;
  std::string arg_str4 ;
  std::string arg_str9 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg9);
    if (!mbstr) return 0;
    
    arg_str9.assign(mbstr);
    arg9 = &arg_str9;
    delete[] mbstr;
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5,arg6,arg7,arg8,(std::string const &)*arg9);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_2(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string arg_str4 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5,arg6,arg7,arg8);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_3(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5, long long jarg6, long long jarg7) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  std::string arg_str4 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5,arg6,arg7);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_4(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5, long long jarg6) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg_str4 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5,arg6);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_5(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4, long long jarg5) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  unsigned int arg5 ;
  std::string arg_str4 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_6(long long jarg1, long long jarg2, long long jarg3, wchar_t* jarg4) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str4 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,(std::string const &)*arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_7(long long jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_8(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_9(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (SBMLError *)new SBMLError(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_10() {
  void * jresult ;
  SBMLError *result = 0 ;
  
  result = (SBMLError *)new SBMLError();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLError__SWIG_11(void * jarg1) {
  void * jresult ;
  SBMLError *arg1 = 0 ;
  SBMLError *result = 0 ;
  
  arg1 = (SBMLError *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLError const & type is null", 0);
    return 0;
  } 
  result = (SBMLError *)new SBMLError((SBMLError const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLError(void * jarg1) {
  SBMLError *arg1 = (SBMLError *) 0 ;
  
  arg1 = (SBMLError *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CVTerm__SWIG_0(int jarg1) {
  void * jresult ;
  QualifierType_t arg1 ;
  CVTerm *result = 0 ;
  
  arg1 = (QualifierType_t)jarg1; 
  result = (CVTerm *)new CVTerm(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CVTerm__SWIG_1() {
  void * jresult ;
  CVTerm *result = 0 ;
  
  result = (CVTerm *)new CVTerm();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CVTerm__SWIG_2(void * jarg1) {
  void * jresult ;
  XMLNode arg1 ;
  XMLNode const *argp1 ;
  CVTerm *result = 0 ;
  
  argp1 = (XMLNode *)jarg1; 
  if (!argp1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null XMLNode const", 0);
    return 0;
  }
  arg1 = *argp1; 
  result = (CVTerm *)new CVTerm(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CVTerm(void * jarg1) {
  CVTerm *arg1 = (CVTerm *) 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CVTerm__SWIG_3(void * jarg1) {
  void * jresult ;
  CVTerm *arg1 = 0 ;
  CVTerm *result = 0 ;
  
  arg1 = (CVTerm *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "CVTerm const & type is null", 0);
    return 0;
  } 
  result = (CVTerm *)new CVTerm((CVTerm const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_clone(void * jarg1) {
  void * jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  CVTerm *result = 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  result = (CVTerm *)((CVTerm const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_getQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  QualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (QualifierType_t)(arg1)->getQualifierType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_getModelQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  ModelQualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (ModelQualifierType_t)(arg1)->getModelQualifierType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_getBiologicalQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  BiolQualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (BiolQualifierType_t)(arg1)->getBiologicalQualifierType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_getResources__SWIG_0(void * jarg1) {
  void * jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  XMLAttributes *result = 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  result = (XMLAttributes *)(arg1)->getResources();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CVTerm_getNumResources__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  unsigned int result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (unsigned int)(arg1)->getNumResources();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_CVTerm_getResourceURI__SWIG_0(void * jarg1, long long jarg2) {
  wchar_t* jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  unsigned int arg2 ;
  std::string result;
  
  arg1 = (CVTerm *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (arg1)->getResourceURI(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_setQualifierType(void * jarg1, int jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  QualifierType_t arg2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  arg2 = (QualifierType_t)jarg2; 
  result = (int)(arg1)->setQualifierType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_setModelQualifierType__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  ModelQualifierType_t arg2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  arg2 = (ModelQualifierType_t)jarg2; 
  result = (int)(arg1)->setModelQualifierType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_setBiologicalQualifierType__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  BiolQualifierType_t arg2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  arg2 = (BiolQualifierType_t)jarg2; 
  result = (int)(arg1)->setBiologicalQualifierType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_setModelQualifierType__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setModelQualifierType((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_setBiologicalQualifierType__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setBiologicalQualifierType((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_addResource(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->addResource((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_removeResource(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->removeResource(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CVTerm_hasRequiredAttributes__SWIG_0(void * jarg1) {
  unsigned int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  bool result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (bool)(arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CVTerm_hasBeenModified(void * jarg1) {
  unsigned int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  bool result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (bool)(arg1)->hasBeenModified();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_CVTerm_resetModifiedFlags(void * jarg1) {
  CVTerm *arg1 = (CVTerm *) 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CVTerm_getNumNestedCVTerms(void * jarg1) {
  unsigned int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  unsigned int result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (unsigned int)((CVTerm const *)arg1)->getNumNestedCVTerms();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_getNestedCVTerm__SWIG_0(void * jarg1, long long jarg2) {
  void * jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  unsigned int arg2 ;
  CVTerm *result = 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CVTerm *)(arg1)->getNestedCVTerm(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_getListNestedCVTerms__SWIG_0(void * jarg1) {
  void * jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  List *result = 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  result = (List *)(arg1)->getListNestedCVTerms();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_CVTerm_addNestedCVTerm(void * jarg1, void * jarg2) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  CVTerm *arg2 = (CVTerm *) 0 ;
  int result;
  
  arg1 = (CVTerm *)jarg1; 
  arg2 = (CVTerm *)jarg2; 
  result = (int)(arg1)->addNestedCVTerm((CVTerm const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_removeNestedCVTerm(void * jarg1, long long jarg2) {
  void * jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  unsigned int arg2 ;
  CVTerm *result = 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (CVTerm *)(arg1)->removeNestedCVTerm(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelQualifierType_toString(int jarg1) {
  wchar_t* jresult ;
  ModelQualifierType_t arg1 ;
  char *result = 0 ;
  
  arg1 = (ModelQualifierType_t)jarg1; 
  result = (char *)ModelQualifierType_toString(arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_BiolQualifierType_toString(int jarg1) {
  wchar_t* jresult ;
  BiolQualifierType_t arg1 ;
  char *result = 0 ;
  
  arg1 = (BiolQualifierType_t)jarg1; 
  result = (char *)BiolQualifierType_toString(arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelQualifierType_fromString(wchar_t* jarg1) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  ModelQualifierType_t result;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
  jresult = result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_BiolQualifierType_fromString(wchar_t* jarg1) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  BiolQualifierType_t result;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
  jresult = result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_0(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8, long long jarg9) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_1(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_2(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, long long jarg7) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_3(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4,arg5,arg6);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_4(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_5(long long jarg1, long long jarg2, long long jarg3, long long jarg4) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  result = (Date *)new Date(arg1,arg2,arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_6(long long jarg1, long long jarg2, long long jarg3) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (Date *)new Date(arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_7(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Date *)new Date(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_8(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  Date *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (Date *)new Date(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_9() {
  void * jresult ;
  Date *result = 0 ;
  
  result = (Date *)new Date();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_10(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  Date *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (Date *)new Date((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Date(void * jarg1) {
  Date *arg1 = (Date *) 0 ;
  
  arg1 = (Date *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_11(void * jarg1) {
  void * jresult ;
  Date *arg1 = 0 ;
  Date *result = 0 ;
  
  arg1 = (Date *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Date const & type is null", 0);
    return 0;
  } 
  result = (Date *)new Date((Date const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Date_clone(void * jarg1) {
  void * jresult ;
  Date *arg1 = (Date *) 0 ;
  Date *result = 0 ;
  
  arg1 = (Date *)jarg1; 
  result = (Date *)((Date const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getYear(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getYear();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getMonth(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getMonth();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getDay(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getDay();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getHour(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getHour();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getMinute(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getMinute();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getSecond(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getSecond();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getSignOffset(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getSignOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getHoursOffset(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getHoursOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_getMinutesOffset(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int result;
  
  arg1 = (Date *)jarg1; 
  result = (unsigned int)(arg1)->getMinutesOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_Date_getDateAsString(void * jarg1) {
  wchar_t* jresult ;
  Date *arg1 = (Date *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (Date *)jarg1; 
  result = (std::string *) &(arg1)->getDateAsString();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setYear(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setYear(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setMonth(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setMonth(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setDay(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setDay(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setHour(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setHour(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setMinute(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setMinute(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setSecond(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setSecond(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setSignOffset(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setSignOffset(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setHoursOffset(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setHoursOffset(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setMinutesOffset(void * jarg1, long long jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->setMinutesOffset(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_Date_setDateAsString(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  Date *arg1 = (Date *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (Date *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setDateAsString((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_representsValidDate(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  bool result;
  
  arg1 = (Date *)jarg1; 
  result = (bool)(arg1)->representsValidDate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Date_hasBeenModified(void * jarg1) {
  unsigned int jresult ;
  Date *arg1 = (Date *) 0 ;
  bool result;
  
  arg1 = (Date *)jarg1; 
  result = (bool)(arg1)->hasBeenModified();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Date_resetModifiedFlags(void * jarg1) {
  Date *arg1 = (Date *) 0 ;
  
  arg1 = (Date *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelCreator__SWIG_0() {
  void * jresult ;
  ModelCreator *result = 0 ;
  
  result = (ModelCreator *)new ModelCreator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelCreator__SWIG_1(void * jarg1) {
  void * jresult ;
  XMLNode arg1 ;
  XMLNode const *argp1 ;
  ModelCreator *result = 0 ;
  
  argp1 = (XMLNode *)jarg1; 
  if (!argp1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null XMLNode const", 0);
    return 0;
  }
  arg1 = *argp1; 
  result = (ModelCreator *)new ModelCreator(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ModelCreator(void * jarg1) {
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelCreator__SWIG_2(void * jarg1) {
  void * jresult ;
  ModelCreator *arg1 = 0 ;
  ModelCreator *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ModelCreator const & type is null", 0);
    return 0;
  } 
  result = (ModelCreator *)new ModelCreator((ModelCreator const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelCreator_clone(void * jarg1) {
  void * jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  ModelCreator *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (ModelCreator *)((ModelCreator const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getFamilyName(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getFamilyName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getGivenName(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getGivenName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getEmail(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getEmail();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getOrganization(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getOrganization();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getOrganisation(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getOrganisation();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelCreator_getName(void * jarg1) {
  wchar_t* jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (std::string *) &((ModelCreator const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetFamilyName(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetFamilyName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetGivenName(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetGivenName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetEmail(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetEmail();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetOrganization(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetOrganization();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetOrganisation(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetOrganisation();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_isSetName(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->isSetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setFamilyName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setFamilyName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setGivenName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setGivenName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setEmail(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setEmail((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setOrganization(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setOrganization((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setOrganisation(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setOrganisation((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetFamilyName(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetFamilyName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetGivenName(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetGivenName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetEmail(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetEmail();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetOrganization(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetOrganization();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetOrganisation(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetOrganisation();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelCreator_unsetName(void * jarg1) {
  int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (int)(arg1)->unsetName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_hasBeenModified(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->hasBeenModified();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ModelCreator_resetModifiedFlags(void * jarg1) {
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_usingFNVcard4(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->usingFNVcard4();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelCreator_usingSingleName(void * jarg1) {
  unsigned int jresult ;
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool result;
  
  arg1 = (ModelCreator *)jarg1; 
  result = (bool)(arg1)->usingSingleName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ModelCreator_setUseSingleName(void * jarg1, unsigned int jarg2) {
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  bool arg2 ;
  
  arg1 = (ModelCreator *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setUseSingleName(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelHistory__SWIG_0() {
  void * jresult ;
  ModelHistory *result = 0 ;
  
  result = (ModelHistory *)new ModelHistory();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ModelHistory(void * jarg1) {
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ModelHistory__SWIG_1(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ModelHistory const & type is null", 0);
    return 0;
  } 
  result = (ModelHistory *)new ModelHistory((ModelHistory const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_clone(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (ModelHistory *)((ModelHistory const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getCreatedDate(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  Date *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (Date *)(arg1)->getCreatedDate();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getModifiedDate__SWIG_0(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  Date *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (Date *)(arg1)->getModifiedDate();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_isSetCreatedDate(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  bool result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (bool)(arg1)->isSetCreatedDate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_isSetModifiedDate(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  bool result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (bool)(arg1)->isSetModifiedDate();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelHistory_setCreatedDate(void * jarg1, void * jarg2) {
  int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  Date *arg2 = (Date *) 0 ;
  int result;
  
  arg1 = (ModelHistory *)jarg1; 
  arg2 = (Date *)jarg2; 
  result = (int)(arg1)->setCreatedDate(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelHistory_setModifiedDate(void * jarg1, void * jarg2) {
  int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  Date *arg2 = (Date *) 0 ;
  int result;
  
  arg1 = (ModelHistory *)jarg1; 
  arg2 = (Date *)jarg2; 
  result = (int)(arg1)->setModifiedDate(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelHistory_addModifiedDate(void * jarg1, void * jarg2) {
  int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  Date *arg2 = (Date *) 0 ;
  int result;
  
  arg1 = (ModelHistory *)jarg1; 
  arg2 = (Date *)jarg2; 
  result = (int)(arg1)->addModifiedDate(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getListModifiedDates(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  List *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (List *)(arg1)->getListModifiedDates();
  {
    ListWrapper<Date> *listw = (result != 0) ? new ListWrapper<Date>(result) : 0;  
    jresult = (void*)listw;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getModifiedDate__SWIG_1(void * jarg1, long long jarg2) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  unsigned int arg2 ;
  Date *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (Date *)(arg1)->getModifiedDate(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_getNumModifiedDates(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  unsigned int result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (unsigned int)(arg1)->getNumModifiedDates();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ModelHistory_addCreator(void * jarg1, void * jarg2) {
  int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  ModelCreator *arg2 = (ModelCreator *) 0 ;
  int result;
  
  arg1 = (ModelHistory *)jarg1; 
  arg2 = (ModelCreator *)jarg2; 
  result = (int)(arg1)->addCreator(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getListCreators(void * jarg1) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  List *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (List *)(arg1)->getListCreators();
  {
    ListWrapper<ModelCreator> *listw = (result != 0) ? new ListWrapper<ModelCreator>(result) : 0;  
    jresult = (void*)listw;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ModelHistory_getCreator(void * jarg1, long long jarg2) {
  void * jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  unsigned int arg2 ;
  ModelCreator *result = 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ModelCreator *)(arg1)->getCreator(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_getNumCreators(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  unsigned int result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (unsigned int)(arg1)->getNumCreators();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_hasRequiredAttributes(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  bool result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (bool)(arg1)->hasRequiredAttributes();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ModelHistory_hasBeenModified(void * jarg1) {
  unsigned int jresult ;
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  bool result;
  
  arg1 = (ModelHistory *)jarg1; 
  result = (bool)(arg1)->hasBeenModified();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ModelHistory_resetModifiedFlags(void * jarg1) {
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_0(void * jarg1, wchar_t* jarg2, void * jarg3) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  char *arg2 = (char *) 0 ;
  XMLInputStream *arg3 = (XMLInputStream *) 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToUTF8(jarg2);
      if (!arg2) return 0;
    }
  }
  arg3 = (XMLInputStream *)jarg3; 
  result = (ModelHistory *)RDFAnnotationParser::parseRDFAnnotation((XMLNode const *)arg1,(char const *)arg2,arg3);
  jresult = (void *)result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_1(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  char *arg2 = (char *) 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToUTF8(jarg2);
      if (!arg2) return 0;
    }
  }
  result = (ModelHistory *)RDFAnnotationParser::parseRDFAnnotation((XMLNode const *)arg1,(char const *)arg2);
  jresult = (void *)result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_2(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  ModelHistory *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  result = (ModelHistory *)RDFAnnotationParser::parseRDFAnnotation((XMLNode const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_createAnnotation() {
  void * jresult ;
  XMLNode *result = 0 ;
  
  result = (XMLNode *)RDFAnnotationParser::createAnnotation();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_createRDFAnnotation__SWIG_0(long long jarg1, long long jarg2) {
  void * jresult ;
  unsigned int arg1 ;
  unsigned int arg2 ;
  XMLNode *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (XMLNode *)RDFAnnotationParser::createRDFAnnotation(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_createRDFAnnotation__SWIG_1(long long jarg1) {
  void * jresult ;
  unsigned int arg1 ;
  XMLNode *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = (XMLNode *)RDFAnnotationParser::createRDFAnnotation(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_createRDFAnnotation__SWIG_2() {
  void * jresult ;
  XMLNode *result = 0 ;
  
  result = (XMLNode *)RDFAnnotationParser::createRDFAnnotation();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_createCVTerms(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::createCVTerms((SBase const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseCVTerms(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::parseCVTerms((SBase const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseModelHistory(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::parseModelHistory((SBase const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_parseOnlyModelHistory(void * jarg1) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::parseOnlyModelHistory((SBase const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_deleteRDFAnnotation(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::deleteRDFAnnotation((XMLNode const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_deleteRDFHistoryAnnotation(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::deleteRDFHistoryAnnotation((XMLNode const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RDFAnnotationParser_deleteRDFCVTermAnnotation(void * jarg1) {
  void * jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *result = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  result = (XMLNode *)RDFAnnotationParser::deleteRDFCVTermAnnotation((XMLNode const *)arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_3(void * jarg1, void * jarg2) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  ListWrapper< CVTerm > *arg2 = (ListWrapper< CVTerm > *) 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (ListWrapper< CVTerm > *)jarg2; 
  RDFAnnotationParser_parseRDFAnnotation__SWIG_3((XMLNode const *)arg1,arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_4(void * jarg1, void * jarg2, wchar_t* jarg3, void * jarg4) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  ListWrapper< CVTerm > *arg2 = (ListWrapper< CVTerm > *) 0 ;
  char *arg3 = (char *) 0 ;
  XMLInputStream *arg4 = (XMLInputStream *) 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (ListWrapper< CVTerm > *)jarg2; 
  {
    if (jarg3)
    {
      arg3 = convertUnicodeToUTF8(jarg3);
      if (!arg3) return ;
    }
  }
  arg4 = (XMLInputStream *)jarg4; 
  RDFAnnotationParser_parseRDFAnnotation__SWIG_4((XMLNode const *)arg1,arg2,(char const *)arg3,arg4);
  {
    delete[] arg3;
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_RDFAnnotationParser_parseRDFAnnotation__SWIG_5(void * jarg1, void * jarg2, wchar_t* jarg3) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  ListWrapper< CVTerm > *arg2 = (ListWrapper< CVTerm > *) 0 ;
  char *arg3 = (char *) 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (ListWrapper< CVTerm > *)jarg2; 
  {
    if (jarg3)
    {
      arg3 = convertUnicodeToUTF8(jarg3);
      if (!arg3) return ;
    }
  }
  RDFAnnotationParser_parseRDFAnnotation__SWIG_4((XMLNode const *)arg1,arg2,(char const *)arg3);
  {
    delete[] arg3;
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RDFAnnotationParser() {
  void * jresult ;
  RDFAnnotationParser *result = 0 ;
  
  result = (RDFAnnotationParser *)new RDFAnnotationParser();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RDFAnnotationParser(void * jarg1) {
  RDFAnnotationParser *arg1 = (RDFAnnotationParser *) 0 ;
  
  arg1 = (RDFAnnotationParser *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ISBMLExtensionNamespaces(void * jarg1) {
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ISBMLExtensionNamespaces_getURI(void * jarg1) {
  wchar_t* jresult ;
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  std::string result;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  result = ((ISBMLExtensionNamespaces const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ISBMLExtensionNamespaces_getPackageVersion(void * jarg1) {
  unsigned int jresult ;
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  unsigned int result;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  result = (unsigned int)((ISBMLExtensionNamespaces const *)arg1)->getPackageVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ISBMLExtensionNamespaces_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  result = (std::string *) &((ISBMLExtensionNamespaces const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ISBMLExtensionNamespaces_setPackageVersion(void * jarg1, long long jarg2) {
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->setPackageVersion(arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBaseExtensionPoint__SWIG_0(wchar_t* jarg1, int jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string arg_str1 ;
  SBaseExtensionPoint *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (int)jarg2; 
  result = (SBaseExtensionPoint *)new SBaseExtensionPoint((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBaseExtensionPoint__SWIG_1(wchar_t* jarg1, int jarg2, wchar_t* jarg3, unsigned int jarg4) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  SBaseExtensionPoint *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (int)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  result = (SBaseExtensionPoint *)new SBaseExtensionPoint((std::string const &)*arg1,arg2,(std::string const &)*arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBaseExtensionPoint__SWIG_2(wchar_t* jarg1, int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str1 ;
  std::string arg_str3 ;
  SBaseExtensionPoint *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  arg2 = (int)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (SBaseExtensionPoint *)new SBaseExtensionPoint((std::string const &)*arg1,arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBaseExtensionPoint(void * jarg1) {
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBaseExtensionPoint__SWIG_3(void * jarg1) {
  void * jresult ;
  SBaseExtensionPoint *arg1 = 0 ;
  SBaseExtensionPoint *result = 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBaseExtensionPoint const & type is null", 0);
    return 0;
  } 
  result = (SBaseExtensionPoint *)new SBaseExtensionPoint((SBaseExtensionPoint const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBaseExtensionPoint_clone(void * jarg1) {
  void * jresult ;
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  SBaseExtensionPoint *result = 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  result = (SBaseExtensionPoint *)((SBaseExtensionPoint const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBaseExtensionPoint_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  result = (std::string *) &((SBaseExtensionPoint const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBaseExtensionPoint_getTypeCode(void * jarg1) {
  int jresult ;
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  int result;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  result = (int)((SBaseExtensionPoint const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBaseExtensionPoint_getElementName(void * jarg1) {
  wchar_t* jresult ;
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  result = (std::string *) &((SBaseExtensionPoint const *)arg1)->getElementName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBaseExtensionPoint_isElementOnly(void * jarg1) {
  unsigned int jresult ;
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  bool result;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  result = (bool)((SBaseExtensionPoint const *)arg1)->isElementOnly();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBasePlugin(void * jarg1) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBasePlugin_getElementNamespace(void * jarg1) {
  wchar_t* jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (std::string *) &((SBasePlugin const *)arg1)->getElementNamespace();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBasePlugin_getPrefix(void * jarg1) {
  wchar_t* jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (std::string *) &((SBasePlugin const *)arg1)->getPrefix();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBasePlugin_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (std::string *) &((SBasePlugin const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_clone(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBasePlugin *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (SBasePlugin *)((SBasePlugin const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getElementBySId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementBySId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getElementByMetaId(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBase *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getElementByMetaId((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_connectToParent(void * jarg1, void * jarg2) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  arg2 = (SBase *)jarg2; 
  (arg1)->connectToParent(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_stripPackage(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (bool)(arg1)->stripPackage((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getSBMLDocument__SWIG_0(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBMLDocument *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (SBMLDocument *)(arg1)->getSBMLDocument();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBasePlugin_getURI(void * jarg1) {
  wchar_t* jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = ((SBasePlugin const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getParentSBMLObject__SWIG_0(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBase *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (SBase *)(arg1)->getParentSBMLObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBasePlugin_setElementNamespace(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setElementNamespace((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_getLevel(void * jarg1) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (unsigned int)((SBasePlugin const *)arg1)->getLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_getVersion(void * jarg1) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (unsigned int)((SBasePlugin const *)arg1)->getVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_getPackageVersion(void * jarg1) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (unsigned int)((SBasePlugin const *)arg1)->getPackageVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_replaceSIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceSIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_divideAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->divideAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_multiplyAssignmentsToSIdByFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->multiplyAssignmentsToSIdByFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_hasIdentifierBeginningWith(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->hasIdentifierBeginningWith((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBasePlugin_prependStringToAllIdentifiers(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->prependStringToAllIdentifiers((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_renameMetaIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameMetaIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBasePlugin_transformIdentifiers(void * jarg1, void * jarg2) {
  int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  IdentifierTransformer *arg2 = (IdentifierTransformer *) 0 ;
  int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  arg2 = (IdentifierTransformer *)jarg2; 
  result = (int)(arg1)->transformIdentifiers(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_getLine(void * jarg1) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (unsigned int)((SBasePlugin const *)arg1)->getLine();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_getColumn(void * jarg1) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (unsigned int)((SBasePlugin const *)arg1)->getColumn();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getSBMLNamespaces(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (SBMLNamespaces *)((SBasePlugin const *)arg1)->getSBMLNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBasePlugin_logUnknownElement(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4, long long jarg5) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  std::string arg_str2 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  (arg1)->logUnknownElement((std::string const &)*arg2,arg3,arg4,arg5);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBasePlugin_isValidTypeForList(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBase *arg2 = (SBase *) 0 ;
  bool result;
  
  arg1 = (SBasePlugin *)jarg1; 
  arg2 = (SBase *)jarg2; 
  result = (bool)((SBasePlugin const *)arg1)->isValidTypeForList(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getSBMLExtension(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  SBMLExtension *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (SBMLExtension *)((SBasePlugin const *)arg1)->getSBMLExtension();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getListOfAllElements__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  ElementFilter *arg2 = (ElementFilter *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  arg2 = (ElementFilter *)jarg2; 
  result = (ListWrapper< SBase > *)SBasePlugin_getListOfAllElements__SWIG_0(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBasePlugin_getListOfAllElements__SWIG_1(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  ListWrapper< SBase > *result = 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = (ListWrapper< SBase > *)SBasePlugin_getListOfAllElements__SWIG_0(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocumentPlugin__SWIG_0(wchar_t* jarg1, wchar_t* jarg2, void * jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  SBMLNamespaces *arg3 = (SBMLNamespaces *) 0 ;
  std::string arg_str1 ;
  std::string arg_str2 ;
  SBMLDocumentPlugin *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (SBMLNamespaces *)jarg3; 
  result = (SBMLDocumentPlugin *)new SBMLDocumentPlugin((std::string const &)*arg1,(std::string const &)*arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLDocumentPlugin__SWIG_1(void * jarg1) {
  void * jresult ;
  SBMLDocumentPlugin *arg1 = 0 ;
  SBMLDocumentPlugin *result = 0 ;
  
  arg1 = (SBMLDocumentPlugin *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBMLDocumentPlugin const & type is null", 0);
    return 0;
  } 
  result = (SBMLDocumentPlugin *)new SBMLDocumentPlugin((SBMLDocumentPlugin const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLDocumentPlugin(void * jarg1) {
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLDocumentPlugin_clone(void * jarg1) {
  void * jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  SBMLDocumentPlugin *result = 0 ;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (SBMLDocumentPlugin *)((SBMLDocumentPlugin const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocumentPlugin_setRequired(void * jarg1, unsigned int jarg2) {
  int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setRequired(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocumentPlugin_getRequired(void * jarg1) {
  unsigned int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  bool result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (bool)((SBMLDocumentPlugin const *)arg1)->getRequired();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocumentPlugin_isSetRequired(void * jarg1) {
  unsigned int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  bool result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (bool)((SBMLDocumentPlugin const *)arg1)->isSetRequired();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLDocumentPlugin_unsetRequired(void * jarg1) {
  int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  int result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (int)(arg1)->unsetRequired();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocumentPlugin_isCompFlatteningImplemented(void * jarg1) {
  unsigned int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  bool result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (bool)((SBMLDocumentPlugin const *)arg1)->isCompFlatteningImplemented();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocumentPlugin_checkConsistency(void * jarg1) {
  unsigned int jresult ;
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  result = (unsigned int)(arg1)->checkConsistency();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLExtension(void * jarg1) {
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLExtension_getNumOfSBasePlugins(void * jarg1) {
  int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (int)((SBMLExtension const *)arg1)->getNumOfSBasePlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getNumOfSupportedPackageURI(void * jarg1) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (unsigned int)((SBMLExtension const *)arg1)->getNumOfSupportedPackageURI();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_isSupported(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((SBMLExtension const *)arg1)->isSupported((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getSupportedPackageURI(void * jarg1, long long jarg2) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (std::string *) &((SBMLExtension const *)arg1)->getSupportedPackageURI(arg2);
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExtension_clone(void * jarg1) {
  void * jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  SBMLExtension *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (SBMLExtension *)((SBMLExtension const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getName(void * jarg1) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (std::string *) &((SBMLExtension const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getURI(void * jarg1, long long jarg2, long long jarg3, long long jarg4) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  result = (std::string *) &((SBMLExtension const *)arg1)->getURI(arg2,arg3,arg4);
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getLevel(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getLevel((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getVersion(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getVersion((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getPackageVersion(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getPackageVersion((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getStringFromTypeCode(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)((SBMLExtension const *)arg1)->getStringFromTypeCode(arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExtension_getSBMLExtensionNamespaces(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBMLNamespaces *)((SBMLExtension const *)arg1)->getSBMLExtensionNamespaces((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_setEnabled(void * jarg1, unsigned int jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  bool arg2 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (bool)(arg1)->setEnabled(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_isEnabled(void * jarg1) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (bool)((SBMLExtension const *)arg1)->isEnabled();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtension_removeL2Namespaces(void * jarg1, void * jarg2) {
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  ((SBMLExtension const *)arg1)->removeL2Namespaces(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtension_addL2Namespaces(void * jarg1, void * jarg2) {
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  ((SBMLExtension const *)arg1)->addL2Namespaces(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtension_enableL2NamespaceForDocument(void * jarg1, void * jarg2) {
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  ((SBMLExtension const *)arg1)->enableL2NamespaceForDocument(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_isInUse(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (bool)((SBMLExtension const *)arg1)->isInUse(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_hasMultipleVersions(void * jarg1) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (bool)((SBMLExtension const *)arg1)->hasMultipleVersions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getErrorTableIndex(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getErrorTableIndex(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getErrorIdOffset(void * jarg1) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (unsigned int)((SBMLExtension const *)arg1)->getErrorIdOffset();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getSeverity(void * jarg1, long long jarg2, long long jarg3) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getSeverity(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtension_getCategory(void * jarg1, long long jarg2) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  unsigned int result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (unsigned int)((SBMLExtension const *)arg1)->getCategory(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getMessage(void * jarg1, long long jarg2, long long jarg3, wchar_t* jarg4) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  std::string *arg4 = 0 ;
  std::string arg_str4 ;
  std::string result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    if (!mbstr) return 0;
    
    arg_str4.assign(mbstr);
    arg4 = &arg_str4;
    delete[] mbstr;
  }
  result = ((SBMLExtension const *)arg1)->getMessage(arg2,arg3,(std::string const &)*arg4);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtension_getShortMessage(void * jarg1, long long jarg2) {
  wchar_t* jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  unsigned int arg2 ;
  std::string result;
  
  arg1 = (SBMLExtension *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = ((SBMLExtension const *)arg1)->getShortMessage(arg2);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBMLExtensionException(wchar_t* jarg1) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  SBMLExtensionException *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (SBMLExtensionException *)new SBMLExtensionException((std::string const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBMLExtensionException(void * jarg1) {
  SBMLExtensionException *arg1 = (SBMLExtensionException *) 0 ;
  
  arg1 = (SBMLExtensionException *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExtensionRegistry_getInstance() {
  void * jresult ;
  SBMLExtensionRegistry *result = 0 ;
  
  result = (SBMLExtensionRegistry *) &SBMLExtensionRegistry::getInstance();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SBMLExtensionRegistry_addExtension(void * jarg1, void * jarg2) {
  int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  SBMLExtension *arg2 = (SBMLExtension *) 0 ;
  int result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (SBMLExtension *)jarg2; 
  result = (int)(arg1)->addExtension((SBMLExtension const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExtensionRegistry_getExtension(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  SBMLExtension *result = 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (SBMLExtension *)(arg1)->getExtension((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_removeL2Namespaces(void * jarg1, void * jarg2) {
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  ((SBMLExtensionRegistry const *)arg1)->removeL2Namespaces(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_addL2Namespaces(void * jarg1, void * jarg2) {
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  ((SBMLExtensionRegistry const *)arg1)->addL2Namespaces(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_enableL2NamespaceForDocument(void * jarg1, void * jarg2) {
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  ((SBMLExtensionRegistry const *)arg1)->enableL2NamespaceForDocument(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_disableUnusedPackages(void * jarg1, void * jarg2) {
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  (arg1)->disableUnusedPackages(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_disablePackage(wchar_t* jarg1) {
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return ;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  SBMLExtensionRegistry::disablePackage((std::string const &)*arg1);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_isPackageEnabled(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (bool)SBMLExtensionRegistry::isPackageEnabled((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBMLExtensionRegistry_enablePackage(wchar_t* jarg1) {
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return ;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  SBMLExtensionRegistry::enablePackage((std::string const &)*arg1);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_getNumExtension(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  SBaseExtensionPoint *arg2 = 0 ;
  unsigned int result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  arg2 = (SBaseExtensionPoint *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SBaseExtensionPoint const & type is null", 0);
    return 0;
  } 
  result = (unsigned int)(arg1)->getNumExtension((SBaseExtensionPoint const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_setEnabled(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  unsigned int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (bool)(arg1)->setEnabled((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_isEnabled(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isEnabled((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_isRegistered(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)(arg1)->isRegistered((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SBMLExtensionRegistry_getAllRegisteredPackageNames() {
  void * jresult ;
  SwigValueWrapper< std::vector< std::string > > result;
  
  result = SBMLExtensionRegistry::getAllRegisteredPackageNames();
  jresult = new std::vector< std::string >((const std::vector< std::string > &)result); 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLExtensionRegistry_getNumRegisteredPackages() {
  unsigned int jresult ;
  unsigned int result;
  
  result = (unsigned int)SBMLExtensionRegistry::getNumRegisteredPackages();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_SBMLExtensionRegistry_getRegisteredPackageName(long long jarg1) {
  wchar_t* jresult ;
  unsigned int arg1 ;
  std::string result;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  result = SBMLExtensionRegistry::getRegisteredPackageName(arg1);
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsNumber(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsNumber(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsFunction__SWIG_0(int jarg1, void * jarg2) {
  unsigned int jresult ;
  int arg1 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (int)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  result = (bool)representsFunction(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsFunction__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsFunction(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsUnaryFunction__SWIG_0(int jarg1, void * jarg2) {
  unsigned int jresult ;
  int arg1 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (int)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  result = (bool)representsUnaryFunction(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsUnaryFunction__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsUnaryFunction(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsBinaryFunction__SWIG_0(int jarg1, void * jarg2) {
  unsigned int jresult ;
  int arg1 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (int)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  result = (bool)representsBinaryFunction(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsBinaryFunction__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsBinaryFunction(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsNaryFunction__SWIG_0(int jarg1, void * jarg2) {
  unsigned int jresult ;
  int arg1 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (int)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  result = (bool)representsNaryFunction(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsNaryFunction__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsNaryFunction(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsQualifier__SWIG_0(int jarg1, void * jarg2) {
  unsigned int jresult ;
  int arg1 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (int)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  result = (bool)representsQualifier(arg1,arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsQualifier__SWIG_1(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsQualifier(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_representsFunctionRequiringAtLeastTwoArguments(int jarg1) {
  unsigned int jresult ;
  int arg1 ;
  bool result;
  
  arg1 = (int)jarg1; 
  result = (bool)representsFunctionRequiringAtLeastTwoArguments(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_getCoreTypeFromName(wchar_t* jarg1) {
  int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  int result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (int)getCoreTypeFromName((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_getNameFromCoreType(int jarg1) {
  wchar_t* jresult ;
  int arg1 ;
  char *result = 0 ;
  
  arg1 = (int)jarg1; 
  result = (char *)getNameFromCoreType(arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_isCoreTopLevelMathMLFunctionNodeTag(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (bool)isCoreTopLevelMathMLFunctionNodeTag((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_isCoreTopLevelMathMLNumberNodeTag(wchar_t* jarg1) {
  unsigned int jresult ;
  std::string *arg1 = 0 ;
  std::string arg_str1 ;
  bool result;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  result = (bool)isCoreTopLevelMathMLNumberNodeTag((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ASTBase(void * jarg1) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBase_deepCopy(void * jarg1) {
  void * jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTBase *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  result = (ASTBase *)((ASTBase const *)arg1)->deepCopy();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_loadASTPlugins(void * jarg1, void * jarg2) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->loadASTPlugins((SBMLNamespaces const *)arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_getType(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTNodeType_t result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (ASTNodeType_t)((ASTBase const *)arg1)->getType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_getExtendedType(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)((ASTBase const *)arg1)->getExtendedType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetType(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)(arg1)->isSetType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setType__SWIG_0(void * jarg1, int jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTNodeType_t arg2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (int)(arg1)->setType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isAvogadro(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isAvogadro();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isBoolean(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isBoolean();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isBinaryFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isBinaryFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isConstant(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isExponential(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isExponential();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isCiNumber(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isCiNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isConstantNumber(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isConstantNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isCSymbolFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isCSymbolFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isCSymbolNumber(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isCSymbolNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isInteger(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isInteger();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isLambda(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isLambda();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isLogical(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isLogical();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isName(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isNaryFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isNaryFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isNumber(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isOperator(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isOperator();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isPiecewise(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isPiecewise();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isQualifier(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isQualifier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isRational(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isRational();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isReal(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isReal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isRelational(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isRelational();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSemantics(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSemantics();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isUnaryFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isUnaryFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isUnknown(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isUnknown();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isUserFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isUserFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_representsBvar(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->representsBvar();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setIsBvar(void * jarg1, unsigned int jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool arg2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->setIsBvar(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isNumberNode(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isNumberNode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isFunctionNode(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isFunctionNode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isTopLevelMathMLFunctionNodeTag(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ASTBase const *)arg1)->isTopLevelMathMLFunctionNodeTag((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isTopLevelMathMLNumberNodeTag(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ASTBase const *)arg1)->isTopLevelMathMLNumberNodeTag((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_write(void * jarg1, void * jarg2) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  ((ASTBase const *)arg1)->write(*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_read__SWIG_0(void * jarg1, void * jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLInputStream *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)(arg1)->read(*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_read__SWIG_1(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLInputStream *arg2 = 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  result = (bool)(arg1)->read(*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_addExpectedAttributes(void * jarg1, void * jarg2, void * jarg3) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  ExpectedAttributes *arg2 = 0 ;
  XMLInputStream *arg3 = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (ExpectedAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ExpectedAttributes & type is null", 0);
    return ;
  } 
  arg3 = (XMLInputStream *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return ;
  } 
  (arg1)->addExpectedAttributes(*arg2,*arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_readAttributes(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLAttributes *arg2 = 0 ;
  ExpectedAttributes *arg3 = 0 ;
  XMLInputStream *arg4 = 0 ;
  XMLToken *arg5 = 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (ExpectedAttributes *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ExpectedAttributes const & type is null", 0);
    return 0;
  } 
  arg4 = (XMLInputStream *)jarg4;
  if (!arg4) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  arg5 = (XMLToken *)jarg5;
  if (!arg5) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  result = (bool)(arg1)->readAttributes((XMLAttributes const &)*arg2,(ExpectedAttributes const &)*arg3,*arg4,(XMLToken const &)*arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_logError__SWIG_0(void * jarg1, void * jarg2, void * jarg3, int jarg4, wchar_t* jarg5) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLInputStream *arg2 = 0 ;
  XMLToken *arg3 = 0 ;
  SBMLErrorCode_t arg4 ;
  std::string *arg5 = 0 ;
  std::string arg_str5 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return ;
  } 
  arg3 = (XMLToken *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return ;
  } 
  arg4 = (SBMLErrorCode_t)jarg4; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    if (!mbstr) return ;
    
    arg_str5.assign(mbstr);
    arg5 = &arg_str5;
    delete[] mbstr;
  }
  (arg1)->logError(*arg2,(XMLToken const &)*arg3,arg4,(std::string const &)*arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_logError__SWIG_1(void * jarg1, void * jarg2, void * jarg3, int jarg4) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLInputStream *arg2 = 0 ;
  XMLToken *arg3 = 0 ;
  SBMLErrorCode_t arg4 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return ;
  } 
  arg3 = (XMLToken *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return ;
  } 
  arg4 = (SBMLErrorCode_t)jarg4; 
  (arg1)->logError(*arg2,(XMLToken const &)*arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_setIsChildFlag(void * jarg1, unsigned int jarg2) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool arg2 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setIsChildFlag(arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getClass(void * jarg1) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string result;
  
  arg1 = (ASTBase *)jarg1; 
  result = ((ASTBase const *)arg1)->getClass();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getId(void * jarg1) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string result;
  
  arg1 = (ASTBase *)jarg1; 
  result = ((ASTBase const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getStyle(void * jarg1) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string result;
  
  arg1 = (ASTBase *)jarg1; 
  result = ((ASTBase const *)arg1)->getStyle();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBase_getParentSBMLObject(void * jarg1) {
  void * jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  SBase *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  result = (SBase *)((ASTBase const *)arg1)->getParentSBMLObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetClass(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSetClass();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetId(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetStyle(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSetStyle();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetParentSBMLObject(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSetParentSBMLObject();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setClass(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->setClass(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->setId(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setStyle(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string arg2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->setStyle(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_unsetClass(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)(arg1)->unsetClass();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_unsetId(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_unsetStyle(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)(arg1)->unsetStyle();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_unsetParentSBMLObject(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)(arg1)->unsetParentSBMLObject();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBase_getFunction(void * jarg1) {
  void * jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTBase *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  result = (ASTBase *)((ASTBase const *)arg1)->getFunction();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_addPlugin__SWIG_0(void * jarg1, void * jarg2) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  (arg1)->addPlugin(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_addPlugin__SWIG_1(void * jarg1, wchar_t* jarg2) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->addPlugin((std::string const &)*arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBase_getPlugin__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ASTBasePlugin *)(arg1)->getPlugin((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBase_getPlugin__SWIG_2(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  unsigned int arg2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTBasePlugin *)(arg1)->getPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_getNumPlugins(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  unsigned int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (unsigned int)((ASTBase const *)arg1)->getNumPlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_getTypeFromName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((ASTBase const *)arg1)->getTypeFromName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getNameFromType(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)((ASTBase const *)arg1)->getNameFromType(arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isSetUserData(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isSetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_unsetUserData(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)(arg1)->unsetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_writeNodeOfType__SWIG_0(void * jarg1, void * jarg2, int jarg3, unsigned int jarg4) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  int arg3 ;
  bool arg4 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  arg3 = (int)jarg3; 
  arg4 = jarg4 ? true : false; 
  ((ASTBase const *)arg1)->writeNodeOfType(*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBase_writeNodeOfType__SWIG_1(void * jarg1, void * jarg2, int jarg3) {
  ASTBase *arg1 = (ASTBase *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  int arg3 ;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  arg3 = (int)jarg3; 
  ((ASTBase const *)arg1)->writeNodeOfType(*arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isWellFormedNode(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isWellFormedNode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_hasCorrectNumberArguments(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->hasCorrectNumberArguments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_getTypeCode(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)((ASTBase const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  result = (std::string *) &((ASTBase const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_setPackageName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setPackageName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_hasCnUnits(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->hasCnUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBase_getUnitsPrefix(void * jarg1) {
  wchar_t* jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBase *)jarg1; 
  result = (std::string *) &((ASTBase const *)arg1)->getUnitsPrefix();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_isPackageInfixFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->isPackageInfixFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_hasPackageOnlyInfixSyntax(void * jarg1) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (bool)((ASTBase const *)arg1)->hasPackageOnlyInfixSyntax();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBase_getL3PackageInfixPrecedence(void * jarg1) {
  int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (int)((ASTBase const *)arg1)->getL3PackageInfixPrecedence();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBase_hasUnambiguousPackageInfixGrammar(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTBase *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (bool)((ASTBase const *)arg1)->hasUnambiguousPackageInfixGrammar((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_ASTBase_getValue(void * jarg1) {
  double jresult ;
  ASTBase *arg1 = (ASTBase *) 0 ;
  double result;
  
  arg1 = (ASTBase *)jarg1; 
  result = (double)((ASTBase const *)arg1)->getValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNode__SWIG_0(int jarg1) {
  void * jresult ;
  int arg1 ;
  ASTNode *result = 0 ;
  
  arg1 = (int)jarg1; 
  result = (ASTNode *)new ASTNode(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNode__SWIG_1() {
  void * jresult ;
  ASTNode *result = 0 ;
  
  result = (ASTNode *)new ASTNode();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNode__SWIG_2(void * jarg1, int jarg2) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  int arg2 ;
  ASTNode *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  arg2 = (int)jarg2; 
  result = (ASTNode *)new ASTNode(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNode__SWIG_3(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (ASTNode *)new ASTNode(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_ASTNode__SWIG_4(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ASTNode const & type is null", 0);
    return 0;
  } 
  result = (ASTNode *)new ASTNode((ASTNode const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ASTNode(void * jarg1) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_freeName(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->freeName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_canonicalize(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)(arg1)->canonicalize();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_addChild(void * jarg1, void * jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->addChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_prependChild(void * jarg1, void * jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->prependChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_removeChild(void * jarg1, long long jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->removeChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_replaceChild__SWIG_0(void * jarg1, long long jarg2, void * jarg3, unsigned int jarg4) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  bool arg4 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (ASTNode *)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->replaceChild(arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_replaceChild__SWIG_1(void * jarg1, long long jarg2, void * jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (ASTNode *)jarg3; 
  result = (int)(arg1)->replaceChild(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_insertChild(void * jarg1, long long jarg2, void * jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (ASTNode *)jarg3; 
  result = (int)(arg1)->insertChild(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_deepCopy(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ASTNode *)((ASTNode const *)arg1)->deepCopy();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getChild(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTNode *)((ASTNode const *)arg1)->getChild(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getLeftChild(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ASTNode *)((ASTNode const *)arg1)->getLeftChild();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getRightChild(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ASTNode *)((ASTNode const *)arg1)->getRightChild();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumChildren(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (unsigned int)((ASTNode const *)arg1)->getNumChildren();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_addSemanticsAnnotation(void * jarg1, void * jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLNode *arg2 = (XMLNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLNode *)jarg2; 
  result = (int)(arg1)->addSemanticsAnnotation(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumSemanticsAnnotations(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (unsigned int)((ASTNode const *)arg1)->getNumSemanticsAnnotations();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getSemanticsAnnotation(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  XMLNode *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (XMLNode *)((ASTNode const *)arg1)->getSemanticsAnnotation(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT char SWIGSTDCALL CSharp_ASTNode_getCharacter(void * jarg1) {
  char jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  char result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (char)((ASTNode const *)arg1)->getCharacter();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getId(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ((ASTNode const *)arg1)->getId();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getClass(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ((ASTNode const *)arg1)->getClass();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getStyle(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ((ASTNode const *)arg1)->getStyle();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_ASTNode_getInteger(void * jarg1) {
  long jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (long)((ASTNode const *)arg1)->getInteger();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getName(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (char *)((ASTNode const *)arg1)->getName();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getOperatorName(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (char *)((ASTNode const *)arg1)->getOperatorName();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_ASTNode_getNumerator(void * jarg1) {
  long jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (long)((ASTNode const *)arg1)->getNumerator();
  jresult = result; 
  return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_ASTNode_getDenominator(void * jarg1) {
  long jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (long)((ASTNode const *)arg1)->getDenominator();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_ASTNode_getReal(void * jarg1) {
  double jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (double)((ASTNode const *)arg1)->getReal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_ASTNode_getMantissa(void * jarg1) {
  double jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (double)((ASTNode const *)arg1)->getMantissa();
  jresult = result; 
  return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_ASTNode_getExponent(void * jarg1) {
  long jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (long)((ASTNode const *)arg1)->getExponent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_ASTNode_getValue(void * jarg1) {
  double jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (double)((ASTNode const *)arg1)->getValue();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_getPrecedence(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)((ASTNode const *)arg1)->getPrecedence();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_getType(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNodeType_t result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ASTNodeType_t)((ASTNode const *)arg1)->getType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_getExtendedType(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)((ASTNode const *)arg1)->getExtendedType();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getUnits(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ((ASTNode const *)arg1)->getUnits();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isAvogadro(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isAvogadro();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isBoolean(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isBoolean();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_returnsBoolean__SWIG_0(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  Model *arg2 = (Model *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (Model *)jarg2; 
  result = (bool)((ASTNode const *)arg1)->returnsBoolean((Model const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_returnsBoolean__SWIG_1(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->returnsBoolean();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isConstant(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isConstant();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isConstantNumber(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isConstantNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isFunction(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isInfinity(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isInfinity();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isInteger(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isInteger();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isLambda(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isLambda();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isLog10(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isLog10();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isLogical(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isLogical();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isName(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isName();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isNaN(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isNaN();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isNegInfinity(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isNegInfinity();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isNumber(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isOperator(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isOperator();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isPiecewise(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isPiecewise();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isQualifier(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isQualifier();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isRational(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isRational();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isReal(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isReal();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isRelational(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isRelational();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSemantics(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSemantics();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSqrt(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSqrt();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isUMinus(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isUMinus();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isUPlus(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isUPlus();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_hasTypeAndNumChildren(void * jarg1, int jarg2, long long jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int arg2 ;
  unsigned int arg3 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (int)jarg2; 
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (int)((ASTNode const *)arg1)->hasTypeAndNumChildren(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isUnknown(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isUnknown();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetId(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetClass(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetClass();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetStyle(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetStyle();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetUnits(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_hasUnits(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->hasUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setCharacter(void * jarg1, char jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  char arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (char)jarg2; 
  result = (int)(arg1)->setCharacter(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setId(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setId((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setClass(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setClass((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setStyle(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setStyle((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    if (jarg2)
    {
      arg2 = convertUnicodeToUTF8(jarg2);
      if (!arg2) return 0;
    }
  }
  result = (int)(arg1)->setName((char const *)arg2);
  jresult = result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setValue__SWIG_0(void * jarg1, long jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (long)jarg2; 
  result = (int)(arg1)->setValue(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setValue__SWIG_1(void * jarg1, long jarg2, long jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  long arg2 ;
  long arg3 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (long)jarg2; 
  arg3 = (long)jarg3; 
  result = (int)(arg1)->setValue(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setValue__SWIG_2(void * jarg1, double jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->setValue(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setValue__SWIG_3(void * jarg1, double jarg2, long jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  double arg2 ;
  long arg3 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (long)jarg3; 
  result = (int)(arg1)->setValue(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setType(void * jarg1, int jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->setType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setUnits(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setUnits((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_swapChildren(void * jarg1, void * jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (int)(arg1)->swapChildren(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_replaceIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_setIsChildFlag(void * jarg1, unsigned int jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool arg2 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setIsChildFlag(arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetUnits(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetId(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetId();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetClass(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetClass();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetStyle(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetStyle();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setDefinitionURL__SWIG_0(void * jarg1, void * jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLAttributes arg2 ;
  XMLAttributes *argp2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  argp2 = (XMLAttributes *)jarg2; 
  if (!argp2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null XMLAttributes", 0);
    return 0;
  }
  arg2 = *argp2; 
  result = (int)(arg1)->setDefinitionURL(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_setDefinitionURL__SWIG_1(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setDefinitionURL((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getDefinitionURL(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLAttributes *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (XMLAttributes *)((ASTNode const *)arg1)->getDefinitionURL();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_replaceArgument(void * jarg1, wchar_t* jarg2, void * jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceArgument((std::string const &)*arg2,arg3);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getParentSBMLObject(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  SBase *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (SBase *)((ASTNode const *)arg1)->getParentSBMLObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetParentSBMLObject(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetParentSBMLObject();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetParentSBMLObject(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetParentSBMLObject();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_reduceToBinary(void * jarg1) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  (arg1)->reduceToBinary();
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_unsetUserData(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)(arg1)->unsetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isSetUserData(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isSetUserData();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_isWellFormedASTNode(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isWellFormedASTNode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_hasCorrectNumberArguments(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->hasCorrectNumberArguments();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getDefinitionURLString(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ((ASTNode const *)arg1)->getDefinitionURLString();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_representsBvar(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->representsBvar();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_usesL3V2MathConstructs(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->usesL3V2MathConstructs();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_usesRateOf(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->usesRateOf();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_write(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  ((ASTNode const *)arg1)->write(*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_read__SWIG_0(void * jarg1, void * jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLInputStream *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (bool)(arg1)->read(*arg2,(std::string const &)*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_read__SWIG_1(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLInputStream *arg2 = 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  result = (bool)(arg1)->read(*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_writeNodeOfType__SWIG_0(void * jarg1, void * jarg2, int jarg3, unsigned int jarg4) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  int arg3 ;
  bool arg4 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  arg3 = (int)jarg3; 
  arg4 = jarg4 ? true : false; 
  ((ASTNode const *)arg1)->writeNodeOfType(*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTNode_writeNodeOfType__SWIG_1(void * jarg1, void * jarg2, int jarg3) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  int arg3 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  arg3 = (int)jarg3; 
  ((ASTNode const *)arg1)->writeNodeOfType(*arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumBvars(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (unsigned int)((ASTNode const *)arg1)->getNumBvars();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTNode_getTypeCode(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (int)((ASTNode const *)arg1)->getTypeCode();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTNode_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (std::string *) &((ASTNode const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getPlugin__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ASTBasePlugin *)(arg1)->getPlugin((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getPlugin__SWIG_2(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int arg2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTBasePlugin *)(arg1)->getPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumPlugins(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (unsigned int)((ASTNode const *)arg1)->getNumPlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumPiece(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  unsigned int result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getListOfNodes(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ListWrapper< ASTNode > *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ListWrapper< ASTNode > *)ASTNode_getListOfNodes(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MathML__SWIG_0(void * jarg1) {
  void * jresult ;
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  MathML *result = 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  result = (MathML *)new MathML(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MathML__SWIG_1() {
  void * jresult ;
  MathML *result = 0 ;
  
  result = (MathML *)new MathML();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_MathML(void * jarg1) {
  MathML *arg1 = (MathML *) 0 ;
  
  arg1 = (MathML *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_MathML_setPrefix(void * jarg1, wchar_t* jarg2) {
  MathML *arg1 = (MathML *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  
  arg1 = (MathML *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  (arg1)->setPrefix((std::string const &)*arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_readMathMLFromString(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (ASTNode_t *)readMathMLFromString((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_readMathMLFromStringWithNamespaces(wchar_t* jarg1, void * jarg2) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  XMLNamespaces_t *arg2 = (XMLNamespaces_t *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = (XMLNamespaces_t *)jarg2; 
  result = (ASTNode_t *)readMathMLFromStringWithNamespaces((char const *)arg1,arg2);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_writeMathMLToString(void * jarg1) {
  wchar_t* jresult ;
  ASTNode_t *arg1 = (ASTNode_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode_t *)jarg1; 
  result = (char *)writeMathMLToString((ASTNode const *)arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_writeMathMLWithNamespaceToString(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  ASTNode_t *arg1 = (ASTNode_t *) 0 ;
  SBMLNamespaces_t *arg2 = (SBMLNamespaces_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode_t *)jarg1; 
  arg2 = (SBMLNamespaces_t *)jarg2; 
  result = (char *)writeMathMLWithNamespaceToString((ASTNode const *)arg1,arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_parseFormula(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (ASTNode_t *)SBML_parseFormula((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_formulaToL3String(void * jarg1) {
  wchar_t* jresult ;
  ASTNode_t *arg1 = (ASTNode_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode_t *)jarg1; 
  result = (char *)SBML_formulaToL3String((ASTNode const *)arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_formulaToL3StringWithSettings(void * jarg1, void * jarg2) {
  wchar_t* jresult ;
  ASTNode_t *arg1 = (ASTNode_t *) 0 ;
  L3ParserSettings_t *arg2 = (L3ParserSettings_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode_t *)jarg1; 
  arg2 = (L3ParserSettings_t *)jarg2; 
  result = (char *)SBML_formulaToL3StringWithSettings((ASTNode const *)arg1,(L3ParserSettings const *)arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_formulaToString(void * jarg1) {
  wchar_t* jresult ;
  ASTNode_t *arg1 = (ASTNode_t *) 0 ;
  char *result = 0 ;
  
  arg1 = (ASTNode_t *)jarg1; 
  result = (char *)SBML_formulaToString((ASTNode const *)arg1);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_parseL3Formula(wchar_t* jarg1) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  result = (ASTNode_t *)SBML_parseL3Formula((char const *)arg1);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_parseL3FormulaWithModel(wchar_t* jarg1, void * jarg2) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  Model_t *arg2 = (Model_t *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = (Model_t *)jarg2; 
  result = (ASTNode_t *)SBML_parseL3FormulaWithModel((char const *)arg1,(Model const *)arg2);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_parseL3FormulaWithSettings(wchar_t* jarg1, void * jarg2) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  L3ParserSettings_t *arg2 = (L3ParserSettings_t *) 0 ;
  ASTNode_t *result = 0 ;
  
  {
    if (jarg1)
    {
      arg1 = convertUnicodeToUTF8(jarg1);
      if (!arg1) return 0;
    }
  }
  arg2 = (L3ParserSettings_t *)jarg2; 
  result = (ASTNode_t *)SBML_parseL3FormulaWithSettings((char const *)arg1,(L3ParserSettings const *)arg2);
  jresult = (void *)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_getDefaultL3ParserSettings() {
  void * jresult ;
  L3ParserSettings_t *result = 0 ;
  
  result = (L3ParserSettings_t *)SBML_getDefaultL3ParserSettings();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_getLastParseL3Error() {
  wchar_t* jresult ;
  char *result = 0 ;
  
  result = (char *)SBML_getLastParseL3Error();
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  free(result);
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SBML_deleteL3Parser() {
  SBML_deleteL3Parser();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_0() {
  void * jresult ;
  L3ParserSettings *result = 0 ;
  
  result = (L3ParserSettings *)new L3ParserSettings();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_1(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7, unsigned int jarg8, unsigned int jarg9) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ParseLogType_t arg2 ;
  bool arg3 ;
  bool arg4 ;
  bool arg5 ;
  bool arg6 ;
  SBMLNamespaces *arg7 = (SBMLNamespaces *) 0 ;
  bool arg8 ;
  bool arg9 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  arg6 = jarg6 ? true : false; 
  arg7 = (SBMLNamespaces *)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = jarg9 ? true : false; 
  result = (L3ParserSettings *)new L3ParserSettings(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_2(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7, unsigned int jarg8) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ParseLogType_t arg2 ;
  bool arg3 ;
  bool arg4 ;
  bool arg5 ;
  bool arg6 ;
  SBMLNamespaces *arg7 = (SBMLNamespaces *) 0 ;
  bool arg8 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  arg6 = jarg6 ? true : false; 
  arg7 = (SBMLNamespaces *)jarg7; 
  arg8 = jarg8 ? true : false; 
  result = (L3ParserSettings *)new L3ParserSettings(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_3(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ParseLogType_t arg2 ;
  bool arg3 ;
  bool arg4 ;
  bool arg5 ;
  bool arg6 ;
  SBMLNamespaces *arg7 = (SBMLNamespaces *) 0 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  arg6 = jarg6 ? true : false; 
  arg7 = (SBMLNamespaces *)jarg7; 
  result = (L3ParserSettings *)new L3ParserSettings(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_4(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ParseLogType_t arg2 ;
  bool arg3 ;
  bool arg4 ;
  bool arg5 ;
  bool arg6 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  arg6 = jarg6 ? true : false; 
  result = (L3ParserSettings *)new L3ParserSettings(arg1,arg2,arg3,arg4,arg5,arg6);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_5(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
  void * jresult ;
  Model *arg1 = (Model *) 0 ;
  ParseLogType_t arg2 ;
  bool arg3 ;
  bool arg4 ;
  bool arg5 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  result = (L3ParserSettings *)new L3ParserSettings(arg1,arg2,arg3,arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_L3ParserSettings__SWIG_6(void * jarg1) {
  void * jresult ;
  L3ParserSettings *arg1 = 0 ;
  L3ParserSettings *result = 0 ;
  
  arg1 = (L3ParserSettings *)jarg1;
  if (!arg1) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "L3ParserSettings const & type is null", 0);
    return 0;
  } 
  result = (L3ParserSettings *)new L3ParserSettings((L3ParserSettings const &)*arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_L3ParserSettings(void * jarg1) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setModel(void * jarg1, void * jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  Model *arg2 = (Model *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (Model *)jarg2; 
  (arg1)->setModel((Model const *)arg2);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_L3ParserSettings_getModel(void * jarg1) {
  void * jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  Model *result = 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (Model *)((L3ParserSettings const *)arg1)->getModel();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_unsetModel(void * jarg1) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  (arg1)->unsetModel();
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseLog(void * jarg1, int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ParseLogType_t arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (ParseLogType_t)jarg2; 
  (arg1)->setParseLog(arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_L3ParserSettings_getParseLog(void * jarg1) {
  int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ParseLogType_t result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (ParseLogType_t)((L3ParserSettings const *)arg1)->getParseLog();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseCollapseMinus(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setParseCollapseMinus(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getParseCollapseMinus(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getParseCollapseMinus();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseUnits(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setParseUnits(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getParseUnits(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getParseUnits();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseAvogadroCsymbol(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setParseAvogadroCsymbol(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getParseAvogadroCsymbol(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getParseAvogadroCsymbol();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setComparisonCaseSensitivity(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setComparisonCaseSensitivity(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getComparisonCaseSensitivity(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getComparisonCaseSensitivity();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseModuloL3v2(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setParseModuloL3v2(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getParseModuloL3v2(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getParseModuloL3v2();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setParseL3v2Functions(void * jarg1, unsigned int jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool arg2 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->setParseL3v2Functions(arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_L3ParserSettings_getParseL3v2Functions(void * jarg1) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (bool)((L3ParserSettings const *)arg1)->getParseL3v2Functions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_setPlugins(void * jarg1, void * jarg2) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->setPlugins((SBMLNamespaces const *)arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_L3ParserSettings_visitPackageInfixSyntax(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ASTNode_t *arg2 = (ASTNode_t *) 0 ;
  ASTNode_t *arg3 = (ASTNode_t *) 0 ;
  StringBuffer_t *arg4 = (StringBuffer_t *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (ASTNode_t *)jarg2; 
  arg3 = (ASTNode_t *)jarg3; 
  arg4 = (StringBuffer_t *)jarg4; 
  ((L3ParserSettings const *)arg1)->visitPackageInfixSyntax((ASTNode_t const *)arg2,(ASTNode_t const *)arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_ASTBasePlugin(void * jarg1) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBasePlugin_clone(void * jarg1) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (ASTBasePlugin *)((ASTBasePlugin const *)arg1)->clone();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBasePlugin_getElementNamespace(void * jarg1) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (std::string *) &((ASTBasePlugin const *)arg1)->getElementNamespace();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBasePlugin_getPrefix(void * jarg1) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (std::string *) &((ASTBasePlugin const *)arg1)->getPrefix();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBasePlugin_getPackageName(void * jarg1) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (std::string *) &((ASTBasePlugin const *)arg1)->getPackageName();
  {
    jresult = convertUTF8ToUnicode((result)->c_str());
    wchar_t* unistr = convertUTF8ToUnicode((result)->c_str());
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_setSBMLExtension(void * jarg1, void * jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  SBMLExtension *arg2 = (SBMLExtension *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (SBMLExtension *)jarg2; 
  result = (int)(arg1)->setSBMLExtension((SBMLExtension const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_setPrefix(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setPrefix((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_connectToParent(void * jarg1, void * jarg2) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBase *arg2 = (ASTBase *) 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTBase *)jarg2; 
  (arg1)->connectToParent(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_enablePackageInternal(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  bool arg4 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = jarg4 ? true : false; 
  (arg1)->enablePackageInternal((std::string const &)*arg2,(std::string const &)*arg3,arg4);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_stripPackage(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  result = (bool)(arg1)->stripPackage((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBasePlugin_getURI(void * jarg1) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = ((ASTBasePlugin const *)arg1)->getURI();
  {
    jresult = convertUTF8ToUnicode( (&result)->c_str() );
    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBasePlugin_getParentASTObject__SWIG_0(void * jarg1) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBase *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (ASTBase *)(arg1)->getParentASTObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_setElementNamespace(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)(arg1)->setElementNamespace((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_getLevel(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (unsigned int)((ASTBasePlugin const *)arg1)->getLevel();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_getVersion(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (unsigned int)((ASTBasePlugin const *)arg1)->getVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_getPackageVersion(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (unsigned int)((ASTBasePlugin const *)arg1)->getPackageVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBasePlugin_getSBMLNamespaces(void * jarg1) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  SBMLNamespaces *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (SBMLNamespaces *)((ASTBasePlugin const *)arg1)->getSBMLNamespaces();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isSetMath(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (bool)((ASTBasePlugin const *)arg1)->isSetMath();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBasePlugin_getMath(void * jarg1) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBase *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (ASTBase *)((ASTBasePlugin const *)arg1)->getMath();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_createMath(void * jarg1, int jarg2) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->createMath(arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_addChild(void * jarg1, void * jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBase *arg2 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTBase *)jarg2; 
  result = (int)(arg1)->addChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_ASTBasePlugin_getChild(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int arg2 ;
  ASTBase *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTBase *)((ASTBasePlugin const *)arg1)->getChild(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_getNumChildren(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (unsigned int)((ASTBasePlugin const *)arg1)->getNumChildren();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_insertChild(void * jarg1, long long jarg2, void * jarg3) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int arg2 ;
  ASTBase *arg3 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (ASTBase *)jarg3; 
  result = (int)(arg1)->insertChild(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_prependChild(void * jarg1, void * jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTBase *arg2 = (ASTBase *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTBase *)jarg2; 
  result = (int)(arg1)->prependChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_removeChild(void * jarg1, long long jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int arg2 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (int)(arg1)->removeChild(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_replaceChild(void * jarg1, long long jarg2, void * jarg3, unsigned int jarg4) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int arg2 ;
  ASTBase *arg3 = (ASTBase *) 0 ;
  bool arg4 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  arg3 = (ASTBase *)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->replaceChild(arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_swapChildren(void * jarg1, void * jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTFunction *arg2 = (ASTFunction *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTFunction *)jarg2; 
  result = (int)(arg1)->swapChildren(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_read(void * jarg1, void * jarg2, wchar_t* jarg3, void * jarg4) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  XMLInputStream *arg2 = 0 ;
  std::string *arg3 = 0 ;
  XMLToken *arg4 = 0 ;
  std::string arg_str3 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  arg4 = (XMLToken *)jarg4;
  if (!arg4) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  result = (bool)(arg1)->read(*arg2,(std::string const &)*arg3,(XMLToken const &)*arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_addExpectedAttributes(void * jarg1, void * jarg2, void * jarg3, int jarg4) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ExpectedAttributes *arg2 = 0 ;
  XMLInputStream *arg3 = 0 ;
  int arg4 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ExpectedAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ExpectedAttributes & type is null", 0);
    return ;
  } 
  arg3 = (XMLInputStream *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return ;
  } 
  arg4 = (int)jarg4; 
  (arg1)->addExpectedAttributes(*arg2,*arg3,arg4);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_readAttributes(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, int jarg6) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  XMLAttributes *arg2 = 0 ;
  ExpectedAttributes *arg3 = 0 ;
  XMLInputStream *arg4 = 0 ;
  XMLToken *arg5 = 0 ;
  int arg6 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (XMLAttributes *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLAttributes const & type is null", 0);
    return 0;
  } 
  arg3 = (ExpectedAttributes *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ExpectedAttributes const & type is null", 0);
    return 0;
  } 
  arg4 = (XMLInputStream *)jarg4;
  if (!arg4) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return 0;
  } 
  arg5 = (XMLToken *)jarg5;
  if (!arg5) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLToken const & type is null", 0);
    return 0;
  } 
  arg6 = (int)jarg6; 
  result = (bool)(arg1)->readAttributes((XMLAttributes const &)*arg2,(ExpectedAttributes const &)*arg3,*arg4,(XMLToken const &)*arg5,arg6);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_writeAttributes(void * jarg1, void * jarg2, int jarg3) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  int arg3 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  arg3 = (int)jarg3; 
  ((ASTBasePlugin const *)arg1)->writeAttributes(*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_writeXMLNS(void * jarg1, void * jarg2) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  ((ASTBasePlugin const *)arg1)->writeXMLNS(*arg2);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isNumberNode(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isNumberNode(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isFunctionNode(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isFunctionNode(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isLogical(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isLogical(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isConstantNumber(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isConstantNumber(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isCSymbolFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isCSymbolFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isCSymbolNumber(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isCSymbolNumber(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isName(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isName(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isNumber(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isNumber(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isOperator(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isOperator(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isRelational(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isRelational(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_representsQualifier(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->representsQualifier(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_representsUnaryFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->representsUnaryFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_representsBinaryFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->representsBinaryFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_representsNaryFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->representsNaryFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_hasCorrectNumberArguments(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->hasCorrectNumberArguments(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isWellFormedNode(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isWellFormedNode(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isTopLevelMathMLFunctionNodeTag(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ASTBasePlugin const *)arg1)->isTopLevelMathMLFunctionNodeTag((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTBasePlugin_isTopLevelMathMLNumberNodeTag(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (bool)((ASTBasePlugin const *)arg1)->isTopLevelMathMLNumberNodeTag((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_ASTBasePlugin_getTypeFromName(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (int)((ASTBasePlugin const *)arg1)->getTypeFromName((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ASTBasePlugin_getNameFromType(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)((ASTBasePlugin const *)arg1)->getNameFromType(arg2);
  {
    jresult = convertUTF8ToUnicode( result );
    wchar_t* unistr = convertUTF8ToUnicode( result );
    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
    delete[] unistr;
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_renameSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_renameUnitSIdRefs(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return ;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  (arg1)->renameUnitSIdRefs((std::string const &)*arg2,(std::string const &)*arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_ASTBasePlugin_replaceIDWithFunction(void * jarg1, wchar_t* jarg2, void * jarg3) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  std::string arg_str2 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  arg3 = (ASTNode *)jarg3; 
  (arg1)->replaceIDWithFunction((std::string const &)*arg2,(ASTNode const *)arg3);
}


SWIGEXPORT OStream * SWIGSTDCALL CSharp_OFStream_SWIGUpcast(OFStream *jarg1) {
    return (OStream *)jarg1;
}

SWIGEXPORT OStream * SWIGSTDCALL CSharp_OStringStream_SWIGUpcast(OStringStream *jarg1) {
    return (OStream *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_ListOf_SWIGUpcast(ListOf *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Model_SWIGUpcast(Model *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_SBMLDocument_SWIGUpcast(SBMLDocument *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_FunctionDefinition_SWIGUpcast(FunctionDefinition *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfFunctionDefinitions_SWIGUpcast(ListOfFunctionDefinitions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Unit_SWIGUpcast(Unit *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfUnits_SWIGUpcast(ListOfUnits *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_UnitDefinition_SWIGUpcast(UnitDefinition *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfUnitDefinitions_SWIGUpcast(ListOfUnitDefinitions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_CompartmentType_SWIGUpcast(CompartmentType *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfCompartmentTypes_SWIGUpcast(ListOfCompartmentTypes *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_SpeciesType_SWIGUpcast(SpeciesType *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfSpeciesTypes_SWIGUpcast(ListOfSpeciesTypes *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Compartment_SWIGUpcast(Compartment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfCompartments_SWIGUpcast(ListOfCompartments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Species_SWIGUpcast(Species *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfSpecies_SWIGUpcast(ListOfSpecies *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Parameter_SWIGUpcast(Parameter *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfParameters_SWIGUpcast(ListOfParameters *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT Parameter * SWIGSTDCALL CSharp_LocalParameter_SWIGUpcast(LocalParameter *jarg1) {
    return (Parameter *)jarg1;
}

SWIGEXPORT ListOfParameters * SWIGSTDCALL CSharp_ListOfLocalParameters_SWIGUpcast(ListOfLocalParameters *jarg1) {
    return (ListOfParameters *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_InitialAssignment_SWIGUpcast(InitialAssignment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfInitialAssignments_SWIGUpcast(ListOfInitialAssignments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Rule_SWIGUpcast(Rule *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfRules_SWIGUpcast(ListOfRules *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_AlgebraicRule_SWIGUpcast(AlgebraicRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_AssignmentRule_SWIGUpcast(AssignmentRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_RateRule_SWIGUpcast(RateRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Constraint_SWIGUpcast(Constraint *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfConstraints_SWIGUpcast(ListOfConstraints *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Reaction_SWIGUpcast(Reaction *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfReactions_SWIGUpcast(ListOfReactions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_KineticLaw_SWIGUpcast(KineticLaw *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_SimpleSpeciesReference_SWIGUpcast(SimpleSpeciesReference *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SimpleSpeciesReference * SWIGSTDCALL CSharp_SpeciesReference_SWIGUpcast(SpeciesReference *jarg1) {
    return (SimpleSpeciesReference *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfSpeciesReferences_SWIGUpcast(ListOfSpeciesReferences *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SimpleSpeciesReference * SWIGSTDCALL CSharp_ModifierSpeciesReference_SWIGUpcast(ModifierSpeciesReference *jarg1) {
    return (SimpleSpeciesReference *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Event_SWIGUpcast(Event *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfEvents_SWIGUpcast(ListOfEvents *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_EventAssignment_SWIGUpcast(EventAssignment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_ListOfEventAssignments_SWIGUpcast(ListOfEventAssignments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Trigger_SWIGUpcast(Trigger *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Delay_SWIGUpcast(Delay *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_Priority_SWIGUpcast(Priority *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_StoichiometryMath_SWIGUpcast(StoichiometryMath *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLFunctionDefinitionConverter_SWIGUpcast(SBMLFunctionDefinitionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLIdConverter_SWIGUpcast(SBMLIdConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLInferUnitsConverter_SWIGUpcast(SBMLInferUnitsConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLInitialAssignmentConverter_SWIGUpcast(SBMLInitialAssignmentConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLLevelVersionConverter_SWIGUpcast(SBMLLevelVersionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT ElementFilter * SWIGSTDCALL CSharp_MathFilter_SWIGUpcast(MathFilter *jarg1) {
    return (ElementFilter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLLevel1Version1Converter_SWIGUpcast(SBMLLevel1Version1Converter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLLocalParameterConverter_SWIGUpcast(SBMLLocalParameterConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLReactionConverter_SWIGUpcast(SBMLReactionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLRuleConverter_SWIGUpcast(SBMLRuleConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLStripPackageConverter_SWIGUpcast(SBMLStripPackageConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_SBMLUnitsConverter_SWIGUpcast(SBMLUnitsConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLValidator * SWIGSTDCALL CSharp_SBMLExternalValidator_SWIGUpcast(SBMLExternalValidator *jarg1) {
    return (SBMLValidator *)jarg1;
}

SWIGEXPORT XMLToken * SWIGSTDCALL CSharp_XMLNode_SWIGUpcast(XMLNode *jarg1) {
    return (XMLToken *)jarg1;
}

SWIGEXPORT XMLErrorLog * SWIGSTDCALL CSharp_SBMLErrorLog_SWIGUpcast(SBMLErrorLog *jarg1) {
    return (XMLErrorLog *)jarg1;
}

SWIGEXPORT XMLError * SWIGSTDCALL CSharp_SBMLError_SWIGUpcast(SBMLError *jarg1) {
    return (XMLError *)jarg1;
}

SWIGEXPORT SBMLNamespaces * SWIGSTDCALL CSharp_ISBMLExtensionNamespaces_SWIGUpcast(ISBMLExtensionNamespaces *jarg1) {
    return (SBMLNamespaces *)jarg1;
}

SWIGEXPORT SBasePlugin * SWIGSTDCALL CSharp_SBMLDocumentPlugin_SWIGUpcast(SBMLDocumentPlugin *jarg1) {
    return (SBasePlugin *)jarg1;
}

SWIGEXPORT ASTBase * SWIGSTDCALL CSharp_ASTNode_SWIGUpcast(ASTNode *jarg1) {
    return (ASTBase *)jarg1;
}

#ifdef __cplusplus
}
#endif

