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


#ifndef SWIGCSHARP
#define SWIGCSHARP
#endif

#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 defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

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

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

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

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

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

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


#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_common.swg
 *
 * This file contains support for director classes which is common between
 * languages.
 * ----------------------------------------------------------------------------- */

/*
  Use -DSWIG_DIRECTOR_STATIC if you prefer to avoid the use of the
  'Swig' namespace. This could be useful for multi-modules projects.
*/
#ifdef SWIG_DIRECTOR_STATIC
/* Force anonymous (static) namespace */
#define Swig
#endif
/* -----------------------------------------------------------------------------
 * director.swg
 *
 * This file contains support for director classes so that C# proxy
 * methods can be called from C++.
 * ----------------------------------------------------------------------------- */

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

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

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

  public:
    DirectorException(const char *msg) : swig_msg(msg) {
    }

    DirectorException(const std::string &msg) : swig_msg(msg) {
    }

    virtual ~DirectorException() throw() {
    }

    const char *what() const throw() {
      return swig_msg.c_str();
    }
  };

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

    static void raise(const char *msg) {
      throw DirectorPureVirtualException(msg);
    }
  };
}


#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 <typeinfo>
#include <stdexcept>


#include "OStream.cpp"

SWIGINTERN ListWrapper< SBase > SBase_getListOfAllElements__SWIG_0(SBase *self,ElementFilter *filter=NULL){
		List* list = self->getAllElements(filter);
		return ListWrapper<SBase>(list);
	}
SWIGINTERN ListWrapper< SBase > SBase_getListOfAllElementsFromPlugins__SWIG_0(SBase *self,ElementFilter *filter=NULL){
		List* list = self->getAllElementsFromPlugins(filter);
		return ListWrapper<SBase>(list);
	}
SWIGINTERN void Model_renameIDs(Model *self,ListWrapper< SBase > &elements,IdentifierTransformer *idTransformer){
		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 ListWrapper<SBase>(list);
	}


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


#include <sbml/math/ASTNodeType.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>
#include <sbml/math/DefinitionURLRegistry.h>
#include <sbml/util/MathFilter.h>



SWIGINTERN ListWrapper< ASTNode > ASTNode_getListOfNodes(ASTNode *self){
    List *list = self->getListOfNodes(ASTNode_true);
    return 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;
}

SwigDirector_Callback::SwigDirector_Callback() : Callback(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_Callback::~SwigDirector_Callback() {
  
}


int SwigDirector_Callback::process(SBMLDocument *doc) {
  int c_result = SwigValueInit< int >() ;
  int jresult = 0 ;
  void * jdoc = 0 ;
  
  if (!swig_callbackprocess) {
    return Callback::process(doc);
  } else {
    jdoc = (void *) doc; 
    jresult = (int) swig_callbackprocess(jdoc);
    c_result = (int)jresult; 
  }
  return c_result;
}

void SwigDirector_Callback::swig_connect_director(SWIG_Callback0_t callbackprocess) {
  swig_callbackprocess = callbackprocess;
}

void SwigDirector_Callback::swig_init_callbacks() {
  swig_callbackprocess = 0;
}

SwigDirector_MathFilter::SwigDirector_MathFilter() : MathFilter(), Swig::Director() {
  swig_init_callbacks();
}

SwigDirector_MathFilter::~SwigDirector_MathFilter() {
  
}


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

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

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


#ifdef __cplusplus
extern "C" {
#endif

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


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_DateList() {
  void * jresult ;
  ListWrapper< Date > *result = 0 ;
  
  result = (ListWrapper< Date > *)new ListWrapper< Date >();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_CVTermList() {
  void * jresult ;
  ListWrapper< CVTerm > *result = 0 ;
  
  result = (ListWrapper< CVTerm > *)new ListWrapper< CVTerm >();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_ASTNodeList() {
  void * jresult ;
  ListWrapper< ASTNode > *result = 0 ;
  
  result = (ListWrapper< ASTNode > *)new ListWrapper< ASTNode >();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLNamespacesList() {
  void * jresult ;
  ListWrapper< SBMLNamespaces > *result = 0 ;
  
  result = (ListWrapper< SBMLNamespaces > *)new ListWrapper< SBMLNamespaces >();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBaseList() {
  void * jresult ;
  ListWrapper< SBase > *result = 0 ;
  
  result = (ListWrapper< SBase > *)new ListWrapper< SBase >();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_OStream__SWIG_1() {
  void * jresult ;
  OStream *result = 0 ;
  
  result = (OStream *)new OStream();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_OStream_endl(void * jarg1) {
  OStream *arg1 = (OStream *) 0 ;
  
  arg1 = (OStream *)jarg1; 
  (arg1)->endl();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_OFStream(void * jarg1) {
  OFStream *arg1 = (OFStream *) 0 ;
  
  arg1 = (OFStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_OFStream_close(void * jarg1) {
  OFStream *arg1 = (OFStream *) 0 ;
  
  arg1 = (OFStream *)jarg1; 
  (arg1)->close();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_new_OStringStream() {
  void * jresult ;
  OStringStream *result = 0 ;
  
  result = (OStringStream *)new OStringStream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_OStringStream(void * jarg1) {
  OStringStream *arg1 = (OStringStream *) 0 ;
  
  arg1 = (OStringStream *)jarg1; 
  delete arg1;
}


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


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_IdList__SWIG_0() {
  void * jresult ;
  IdList *result = 0 ;
  
  result = (IdList *)new IdList();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 unsigned int SWIGSTDCALL CSharp_libsbml_IdList_empty(void * jarg1) {
  unsigned int jresult ;
  IdList *arg1 = (IdList *) 0 ;
  bool result;
  
  arg1 = (IdList *)jarg1; 
  result = (bool)((IdList const *)arg1)->empty();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_IdList_clear(void * jarg1) {
  IdList *arg1 = (IdList *) 0 ;
  
  arg1 = (IdList *)jarg1; 
  (arg1)->clear();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_IdList(void * jarg1) {
  IdList *arg1 = (IdList *) 0 ;
  
  arg1 = (IdList *)jarg1; 
  delete arg1;
}


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


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_IdentifierTransformer_director_connect(void *objarg, SwigDirector_IdentifierTransformer::SWIG_Callback0_t callback0) {
  IdentifierTransformer *obj = (IdentifierTransformer *)objarg;
  SwigDirector_IdentifierTransformer *director = static_cast<SwigDirector_IdentifierTransformer *>(obj);
  director->swig_connect_director(callback0);
}


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


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


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_ElementFilter_director_connect(void *objarg, SwigDirector_ElementFilter::SWIG_Callback0_t callback0) {
  ElementFilter *obj = (ElementFilter *)objarg;
  SwigDirector_ElementFilter *director = static_cast<SwigDirector_ElementFilter *>(obj);
  director->swig_connect_director(callback0);
}


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLReader_hasZlib() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLReader::hasZlib();
  jresult = result; 
  return jresult;
}


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLWriter() {
  void * jresult ;
  SBMLWriter *result = 0 ;
  
  result = (SBMLWriter *)new SBMLWriter();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLWriter_hasZlib() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)SBMLWriter::hasZlib();
  jresult = result; 
  return jresult;
}


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBase(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_getAncestorOfType__SWIG_0(void * jarg1, int jarg2, wchar_t* jarg3) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  int arg2 ;
  std::string *arg3 = 0 ;
  std::string arg_str3 ;
  SBase *result = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (int)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    if (!mbstr) return 0;
    
    arg_str3.assign(mbstr);
    arg3 = &arg_str3;
    delete[] mbstr;
  }
  result = (SBase *)(arg1)->getAncestorOfType(arg2,(std::string const &)*arg3);
  jresult = (void *)result; 
  return jresult;
}


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


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_SBase_removeTopLevelAnnotationElement__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)->removeTopLevelAnnotationElement((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_connectToChild(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 = (int)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 = (int)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_getPackageCoreVersion(void * jarg1) {
  unsigned int jresult ;
  SBase *arg1 = (SBase *) 0 ;
  unsigned int result;
  
  arg1 = (SBase *)jarg1; 
  result = (unsigned int)((SBase const *)arg1)->getPackageCoreVersion();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_read__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = 0 ;
  XMLErrorSeverityOverride_t arg3 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode & type is null", 0);
    return ;
  } 
  arg3 = (XMLErrorSeverityOverride_t)jarg3; 
  try {
    (arg1)->read(*arg2,arg3);
  } catch(SBMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLConstructorException exception thrown");
    return ; 
  } catch(SBMLExtensionException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLExtensionException exception thrown");
    return ; 
  } catch(XMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ XMLConstructorException exception thrown");
    return ; 
  } catch(...) {
    {
      SWIG_CSharpException(SWIG_RuntimeError, "unknown exception"); return ; 
    };
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBase_read__SWIG_1(void * jarg1, void * jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  XMLNode *arg2 = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLNode *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLNode & type is null", 0);
    return ;
  } 
  try {
    (arg1)->read(*arg2);
  } catch(SBMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLConstructorException exception thrown");
    return ; 
  } catch(SBMLExtensionException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLExtensionException exception thrown");
    return ; 
  } catch(XMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ XMLConstructorException exception thrown");
    return ; 
  } catch(...) {
    {
      SWIG_CSharpException(SWIG_RuntimeError, "unknown exception"); return ; 
    };
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_deleteDisabledPlugins__SWIG_1(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  (arg1)->deleteDisabledPlugins();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_SBase_read__SWIG_2(void * jarg1, void * jarg2) {
  SBase *arg1 = (SBase *) 0 ;
  XMLInputStream *arg2 = 0 ;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (XMLInputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLInputStream & type is null", 0);
    return ;
  } 
  try {
    (arg1)->read(*arg2);
  } catch(SBMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLConstructorException exception thrown");
    return ; 
  } catch(SBMLExtensionException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLExtensionException exception thrown");
    return ; 
  } catch(XMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ XMLConstructorException exception thrown");
    return ; 
  } catch(...) {
    {
      SWIG_CSharpException(SWIG_RuntimeError, "unknown exception"); return ; 
    };
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBase_write(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 ;
  } 
  try {
    ((SBase const *)arg1)->write(*arg2);
  } catch(SBMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLConstructorException exception thrown");
    return ; 
  } catch(SBMLExtensionException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ SBMLExtensionException exception thrown");
    return ; 
  } catch(XMLConstructorException &_e) {
    (void)_e;
    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ XMLConstructorException exception thrown");
    return ; 
  } catch(...) {
    {
      SWIG_CSharpException(SWIG_RuntimeError, "unknown exception"); return ; 
    };
  }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_SBase_removeDuplicateAnnotations(void * jarg1) {
  SBase *arg1 = (SBase *) 0 ;
  
  arg1 = (SBase *)jarg1; 
  (arg1)->removeDuplicateAnnotations();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBase_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  SBase *arg1 = (SBase *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (SBase *)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 void * SWIGSTDCALL CSharp_libsbml_SBase_getListOfAllElements__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  SBase *arg1 = (SBase *) 0 ;
  ElementFilter *arg2 = (ElementFilter *) 0 ;
  ListWrapper< SBase > result;
  
  arg1 = (SBase *)jarg1; 
  arg2 = (ElementFilter *)jarg2; 
  result = SBase_getListOfAllElements__SWIG_0(arg1,arg2);
  jresult = new ListWrapper< SBase >((const ListWrapper< SBase > &)result); 
  return jresult;
}


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


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOf(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ListOf_clear__SWIG_1(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->clear();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_ListOf_connectToChild(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_ListOf_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  ListOf *arg1 = (ListOf *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (ListOf *)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 unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_ListOf_setExplicitlyListed__SWIG_1(void * jarg1) {
  ListOf *arg1 = (ListOf *) 0 ;
  
  arg1 = (ListOf *)jarg1; 
  (arg1)->setExplicitlyListed();
}


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Model(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Model_convertL1ToL2(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL1ToL2();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertL1ToL3__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL1ToL3();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Model_convertL2ToL3__SWIG_2(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL2ToL3();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertL2ToL1__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL2ToL1();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertL3ToL1__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL3ToL1();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertL3ToL2__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertL3ToL2();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertFromL3V2__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertFromL3V2();
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_Model_dealWithL3Fast(void * jarg1, long long jarg2) {
  Model *arg1 = (Model *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (Model *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->dealWithL3Fast(arg2);
}


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


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_setSpatialDimensions__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->setSpatialDimensions();
}


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


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_setSpeciesReferenceConstantValueAndStoichiometry(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->setSpeciesReferenceConstantValueAndStoichiometry();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_convertStoichiometryMath(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->convertStoichiometryMath();
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_dealWithModelUnits__SWIG_1(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->dealWithModelUnits();
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_Model_removeSpeciesTypes(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->removeSpeciesTypes();
}


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


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Model_populateListFormulaUnitsData(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->populateListFormulaUnitsData();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_Model_populateAllElementIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->populateAllElementIdList();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Model_clearAllElementIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->clearAllElementIdList();
}


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


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Model_clearAllElementMetaIdList(void * jarg1) {
  Model *arg1 = (Model *) 0 ;
  
  arg1 = (Model *)jarg1; 
  (arg1)->clearAllElementMetaIdList();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Model_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  Model *arg1 = (Model *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (Model *)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 void SWIGSTDCALL CSharp_libsbml_Model_renameIDs(void * jarg1, void * jarg2, void * jarg3) {
  Model *arg1 = (Model *) 0 ;
  ListWrapper< SBase > *arg2 = 0 ;
  IdentifierTransformer *arg3 = (IdentifierTransformer *) 0 ;
  
  arg1 = (Model *)jarg1; 
  arg2 = (ListWrapper< SBase > *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ListWrapper< SBase > & type is null", 0);
    return ;
  } 
  arg3 = (IdentifierTransformer *)jarg3; 
  Model_renameIDs(arg1,*arg2,arg3);
}


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBMLDocument(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLDocument_createModel__SWIG_0(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  std::string arg2 ;
  Model *result = 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (Model *)(arg1)->createModel(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLDocument_printErrors__SWIG_1(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  ((SBMLDocument const *)arg1)->printErrors();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_SBMLDocument_connectToChild(void * jarg1) {
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  
  arg1 = (SBMLDocument *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_FunctionDefinition(void * jarg1) {
  FunctionDefinition *arg1 = (FunctionDefinition *) 0 ;
  
  arg1 = (FunctionDefinition *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfFunctionDefinitions(void * jarg1) {
  ListOfFunctionDefinitions *arg1 = (ListOfFunctionDefinitions *) 0 ;
  
  arg1 = (ListOfFunctionDefinitions *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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 = (int)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_Unit(void * jarg1) {
  Unit *arg1 = (Unit *) 0 ;
  
  arg1 = (Unit *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Unit_initDefaults(void * jarg1) {
  Unit *arg1 = (Unit *) 0 ;
  
  arg1 = (Unit *)jarg1; 
  (arg1)->initDefaults();
}


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Unit_setExponentUnitChecking(void * jarg1, double jarg2) {
  Unit *arg1 = (Unit *) 0 ;
  double arg2 ;
  
  arg1 = (Unit *)jarg1; 
  arg2 = (double)jarg2; 
  (arg1)->setExponentUnitChecking(arg2);
}


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfUnits(void * jarg1) {
  ListOfUnits *arg1 = (ListOfUnits *) 0 ;
  
  arg1 = (ListOfUnits *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_UnitDefinition(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_UnitDefinition_connectToChild(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 void SWIGSTDCALL CSharp_libsbml_UnitDefinition_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (UnitDefinition *)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_libsbml_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_libsbml_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_libsbml_UnitDefinition_simplify(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  UnitDefinition::simplify(arg1);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_UnitDefinition_reorder(void * jarg1) {
  UnitDefinition *arg1 = (UnitDefinition *) 0 ;
  
  arg1 = (UnitDefinition *)jarg1; 
  UnitDefinition::reorder(arg1);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfUnitDefinitions(void * jarg1) {
  ListOfUnitDefinitions *arg1 = (ListOfUnitDefinitions *) 0 ;
  
  arg1 = (ListOfUnitDefinitions *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_CompartmentType(void * jarg1) {
  CompartmentType *arg1 = (CompartmentType *) 0 ;
  
  arg1 = (CompartmentType *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfCompartmentTypes(void * jarg1) {
  ListOfCompartmentTypes *arg1 = (ListOfCompartmentTypes *) 0 ;
  
  arg1 = (ListOfCompartmentTypes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SpeciesType(void * jarg1) {
  SpeciesType *arg1 = (SpeciesType *) 0 ;
  
  arg1 = (SpeciesType *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfSpeciesTypes(void * jarg1) {
  ListOfSpeciesTypes *arg1 = (ListOfSpeciesTypes *) 0 ;
  
  arg1 = (ListOfSpeciesTypes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Compartment(void * jarg1) {
  Compartment *arg1 = (Compartment *) 0 ;
  
  arg1 = (Compartment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Compartment_initDefaults(void * jarg1) {
  Compartment *arg1 = (Compartment *) 0 ;
  
  arg1 = (Compartment *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfCompartments(void * jarg1) {
  ListOfCompartments *arg1 = (ListOfCompartments *) 0 ;
  
  arg1 = (ListOfCompartments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Species(void * jarg1) {
  Species *arg1 = (Species *) 0 ;
  
  arg1 = (Species *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Species_initDefaults(void * jarg1) {
  Species *arg1 = (Species *) 0 ;
  
  arg1 = (Species *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfSpecies(void * jarg1) {
  ListOfSpecies *arg1 = (ListOfSpecies *) 0 ;
  
  arg1 = (ListOfSpecies *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Parameter(void * jarg1) {
  Parameter *arg1 = (Parameter *) 0 ;
  
  arg1 = (Parameter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Parameter_initDefaults(void * jarg1) {
  Parameter *arg1 = (Parameter *) 0 ;
  
  arg1 = (Parameter *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfParameters(void * jarg1) {
  ListOfParameters *arg1 = (ListOfParameters *) 0 ;
  
  arg1 = (ListOfParameters *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_LocalParameter(void * jarg1) {
  LocalParameter *arg1 = (LocalParameter *) 0 ;
  
  arg1 = (LocalParameter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfLocalParameters(void * jarg1) {
  ListOfLocalParameters *arg1 = (ListOfLocalParameters *) 0 ;
  
  arg1 = (ListOfLocalParameters *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_InitialAssignment(void * jarg1) {
  InitialAssignment *arg1 = (InitialAssignment *) 0 ;
  
  arg1 = (InitialAssignment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfInitialAssignments(void * jarg1) {
  ListOfInitialAssignments *arg1 = (ListOfInitialAssignments *) 0 ;
  
  arg1 = (ListOfInitialAssignments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_Rule(void * jarg1) {
  Rule *arg1 = (Rule *) 0 ;
  
  arg1 = (Rule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Rule_getType(void * jarg1) {
  int jresult ;
  Rule *arg1 = (Rule *) 0 ;
  RuleType_t result;
  
  arg1 = (Rule *)jarg1; 
  result = (RuleType_t)((Rule const *)arg1)->getType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfRules(void * jarg1) {
  ListOfRules *arg1 = (ListOfRules *) 0 ;
  
  arg1 = (ListOfRules *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_AlgebraicRule(void * jarg1) {
  AlgebraicRule *arg1 = (AlgebraicRule *) 0 ;
  
  arg1 = (AlgebraicRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_AssignmentRule(void * jarg1) {
  AssignmentRule *arg1 = (AssignmentRule *) 0 ;
  
  arg1 = (AssignmentRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_RateRule(void * jarg1) {
  RateRule *arg1 = (RateRule *) 0 ;
  
  arg1 = (RateRule *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_Constraint(void * jarg1) {
  Constraint *arg1 = (Constraint *) 0 ;
  
  arg1 = (Constraint *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfConstraints(void * jarg1) {
  ListOfConstraints *arg1 = (ListOfConstraints *) 0 ;
  
  arg1 = (ListOfConstraints *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Reaction(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Reaction_initDefaults(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  bool arg5 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  arg5 = jarg5 ? true : false; 
  result = (int)(arg1)->addReactant((Species const *)arg2,arg3,arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addReactant((Species const *)arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  bool arg5 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  arg5 = jarg5 ? true : false; 
  result = (int)(arg1)->addProduct((Species const *)arg2,arg3,arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  arg3 = (double)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addProduct((Species const *)arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_Reaction_addModifier__SWIG_1(void * jarg1, void * jarg2, wchar_t* jarg3) {
  int jresult ;
  Reaction *arg1 = (Reaction *) 0 ;
  Species *arg2 = (Species *) 0 ;
  std::string arg3 ;
  int result;
  
  arg1 = (Reaction *)jarg1; 
  arg2 = (Species *)jarg2; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addModifier((Species const *)arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Reaction_connectToChild(void * jarg1) {
  Reaction *arg1 = (Reaction *) 0 ;
  
  arg1 = (Reaction *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 void SWIGSTDCALL CSharp_libsbml_Reaction_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  Reaction *arg1 = (Reaction *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (Reaction *)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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfReactions(void * jarg1) {
  ListOfReactions *arg1 = (ListOfReactions *) 0 ;
  
  arg1 = (ListOfReactions *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_KineticLaw(void * jarg1) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_KineticLaw_connectToChild(void * jarg1) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  
  arg1 = (KineticLaw *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 void SWIGSTDCALL CSharp_libsbml_KineticLaw_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  KineticLaw *arg1 = (KineticLaw *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (KineticLaw *)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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SimpleSpeciesReference(void * jarg1) {
  SimpleSpeciesReference *arg1 = (SimpleSpeciesReference *) 0 ;
  
  arg1 = (SimpleSpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SpeciesReference(void * jarg1) {
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_SpeciesReference_initDefaults(void * jarg1) {
  SpeciesReference *arg1 = (SpeciesReference *) 0 ;
  
  arg1 = (SpeciesReference *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT double SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfSpeciesReferences(void * jarg1) {
  ListOfSpeciesReferences *arg1 = (ListOfSpeciesReferences *) 0 ;
  
  arg1 = (ListOfSpeciesReferences *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_ModifierSpeciesReference(void * jarg1) {
  ModifierSpeciesReference *arg1 = (ModifierSpeciesReference *) 0 ;
  
  arg1 = (ModifierSpeciesReference *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_Event(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_Event_initDefaults(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  (arg1)->initDefaults();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Event_connectToChild(void * jarg1) {
  Event *arg1 = (Event *) 0 ;
  
  arg1 = (Event *)jarg1; 
  (arg1)->connectToChild();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 void SWIGSTDCALL CSharp_libsbml_Event_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  Event *arg1 = (Event *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  std::string arg_str2 ;
  
  arg1 = (Event *)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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfEvents(void * jarg1) {
  ListOfEvents *arg1 = (ListOfEvents *) 0 ;
  
  arg1 = (ListOfEvents *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_EventAssignment(void * jarg1) {
  EventAssignment *arg1 = (EventAssignment *) 0 ;
  
  arg1 = (EventAssignment *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_ListOfEventAssignments(void * jarg1) {
  ListOfEventAssignments *arg1 = (ListOfEventAssignments *) 0 ;
  
  arg1 = (ListOfEventAssignments *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_Trigger(void * jarg1) {
  Trigger *arg1 = (Trigger *) 0 ;
  
  arg1 = (Trigger *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_Delay(void * jarg1) {
  Delay *arg1 = (Delay *) 0 ;
  
  arg1 = (Delay *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_Priority(void * jarg1) {
  Priority *arg1 = (Priority *) 0 ;
  
  arg1 = (Priority *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBO() {
  void * jresult ;
  SBO *result = 0 ;
  
  result = (SBO *)new SBO();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_SBO(void * jarg1) {
  SBO *arg1 = (SBO *) 0 ;
  
  arg1 = (SBO *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SyntaxChecker() {
  void * jresult ;
  SyntaxChecker *result = 0 ;
  
  result = (SyntaxChecker *)new SyntaxChecker();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_SyntaxChecker(void * jarg1) {
  SyntaxChecker *arg1 = (SyntaxChecker *) 0 ;
  
  arg1 = (SyntaxChecker *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_StoichiometryMath(void * jarg1) {
  StoichiometryMath *arg1 = (StoichiometryMath *) 0 ;
  
  arg1 = (StoichiometryMath *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  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;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  
  try {
    result = (SBMLNamespaces *)new SBMLNamespaces(arg1,arg2,(std::string const &)*arg3,arg4,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_libsbml_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_libsbml_delete_SBMLNamespaces(void * jarg1) {
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLNamespaces_freeSBMLNamespaces(void * jarg1) {
  List *arg1 = (List *) 0 ;
  
  arg1 = (List *)jarg1; 
  SBMLNamespaces::freeSBMLNamespaces(arg1);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_SBMLNamespaces_setLevel(void * jarg1, long long jarg2) {
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->setLevel(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLNamespaces_setVersion(void * jarg1, long long jarg2) {
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->setVersion(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLNamespaces_setNamespaces(void * jarg1, void * jarg2) {
  SBMLNamespaces *arg1 = (SBMLNamespaces *) 0 ;
  XMLNamespaces *arg2 = (XMLNamespaces *) 0 ;
  
  arg1 = (SBMLNamespaces *)jarg1; 
  arg2 = (XMLNamespaces *)jarg2; 
  (arg1)->setNamespaces(arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLTransforms_clearComponentValues() {
  SBMLTransforms::clearComponentValues();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_new_SBMLTransforms() {
  void * jresult ;
  SBMLTransforms *result = 0 ;
  
  result = (SBMLTransforms *)new SBMLTransforms();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_SBMLTransforms(void * jarg1) {
  SBMLTransforms *arg1 = (SBMLTransforms *) 0 ;
  
  arg1 = (SBMLTransforms *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLConstructorException__SWIG_0() {
  void * jresult ;
  SBMLConstructorException *result = 0 ;
  
  result = (SBMLConstructorException *)new SBMLConstructorException();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLConstructorException(void * jarg1) {
  SBMLConstructorException *arg1 = (SBMLConstructorException *) 0 ;
  
  arg1 = (SBMLConstructorException *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_new_ConversionOption__SWIG_0(wchar_t* jarg1, wchar_t* jarg2, int jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string arg2 ;
  ConversionOptionType_t arg3 ;
  std::string arg4 ;
  std::string arg_str1 ;
  ConversionOption *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = (ConversionOptionType_t)jarg3; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ConversionOption__SWIG_2(wchar_t* jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::string *arg1 = 0 ;
  std::string 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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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 ;
  std::string arg_str1 ;
  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);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,(char const *)arg2,arg3);
  jresult = (void *)result; 
  {
    delete[] arg2;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ConversionOption__SWIG_6(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  std::string arg3 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_new_ConversionOption__SWIG_8(wchar_t* jarg1, double jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  double arg2 ;
  std::string arg3 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_new_ConversionOption__SWIG_10(wchar_t* jarg1, float jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  float arg2 ;
  std::string arg3 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_new_ConversionOption__SWIG_12(wchar_t* jarg1, int jarg2, wchar_t* jarg3) {
  void * jresult ;
  std::string *arg1 = 0 ;
  int arg2 ;
  std::string arg3 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (ConversionOption *)new ConversionOption((std::string const &)*arg1,arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_ConversionOption(void * jarg1) {
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  
  arg1 = (ConversionOption *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ConversionOption_getType(void * jarg1) {
  int jresult ;
  ConversionOption *arg1 = (ConversionOption *) 0 ;
  ConversionOptionType_t result;
  
  arg1 = (ConversionOption *)jarg1; 
  result = (ConversionOptionType_t)((ConversionOption const *)arg1)->getType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_ConversionProperties__SWIG_1() {
  void * jresult ;
  ConversionProperties *result = 0 ;
  
  result = (ConversionProperties *)new ConversionProperties();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_ConversionProperties(void * jarg1) {
  ConversionProperties *arg1 = (ConversionProperties *) 0 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 = (int)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  ConversionOptionType_t arg4 ;
  std::string arg5 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  arg4 = (ConversionOptionType_t)jarg4; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4,arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  ConversionOptionType_t arg4 ;
  std::string arg_str2 ;
  
  arg1 = (ConversionProperties *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  arg4 = (ConversionOptionType_t)jarg4; 
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4);
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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 ;
  std::string arg_str2 ;
  
  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);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,(char const *)arg3,arg4);
  {
    delete[] arg3;
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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 ;
  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; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->addOption((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLConverter__SWIG_0() {
  void * jresult ;
  SBMLConverter *result = 0 ;
  
  result = (SBMLConverter *)new SwigDirector_SBMLConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLConverter(void * jarg1) {
  SBMLConverter *arg1 = (SBMLConverter *) 0 ;
  
  arg1 = (SBMLConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 = static_cast<SwigDirector_SBMLConverter *>(obj);
  director->swig_connect_director(callback0, callback1, callback2, callback3, callback4, callback5, callback6, callback7, callback8, callback9);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_SBMLConverterRegistry_getInstance() {
  void * jresult ;
  SBMLConverterRegistry *result = 0 ;
  
  result = (SBMLConverterRegistry *) &SBMLConverterRegistry::getInstance();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBMLConverterRegistry(void * jarg1) {
  SBMLConverterRegistry *arg1 = (SBMLConverterRegistry *) 0 ;
  
  arg1 = (SBMLConverterRegistry *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLFunctionDefinitionConverter_init() {
  SBMLFunctionDefinitionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLFunctionDefinitionConverter__SWIG_0() {
  void * jresult ;
  SBMLFunctionDefinitionConverter *result = 0 ;
  
  result = (SBMLFunctionDefinitionConverter *)new SBMLFunctionDefinitionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLFunctionDefinitionConverter(void * jarg1) {
  SBMLFunctionDefinitionConverter *arg1 = (SBMLFunctionDefinitionConverter *) 0 ;
  
  arg1 = (SBMLFunctionDefinitionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLIdConverter_init() {
  SBMLIdConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLIdConverter__SWIG_0() {
  void * jresult ;
  SBMLIdConverter *result = 0 ;
  
  result = (SBMLIdConverter *)new SBMLIdConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLIdConverter(void * jarg1) {
  SBMLIdConverter *arg1 = (SBMLIdConverter *) 0 ;
  
  arg1 = (SBMLIdConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLInferUnitsConverter_init() {
  SBMLInferUnitsConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLInferUnitsConverter__SWIG_0() {
  void * jresult ;
  SBMLInferUnitsConverter *result = 0 ;
  
  result = (SBMLInferUnitsConverter *)new SBMLInferUnitsConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLInferUnitsConverter(void * jarg1) {
  SBMLInferUnitsConverter *arg1 = (SBMLInferUnitsConverter *) 0 ;
  
  arg1 = (SBMLInferUnitsConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLInitialAssignmentConverter_init() {
  SBMLInitialAssignmentConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLInitialAssignmentConverter__SWIG_0() {
  void * jresult ;
  SBMLInitialAssignmentConverter *result = 0 ;
  
  result = (SBMLInitialAssignmentConverter *)new SBMLInitialAssignmentConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLInitialAssignmentConverter(void * jarg1) {
  SBMLInitialAssignmentConverter *arg1 = (SBMLInitialAssignmentConverter *) 0 ;
  
  arg1 = (SBMLInitialAssignmentConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLLevelVersionConverter_init() {
  SBMLLevelVersionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLLevelVersionConverter__SWIG_0() {
  void * jresult ;
  SBMLLevelVersionConverter *result = 0 ;
  
  result = (SBMLLevelVersionConverter *)new SBMLLevelVersionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLLevelVersionConverter(void * jarg1) {
  SBMLLevelVersionConverter *arg1 = (SBMLLevelVersionConverter *) 0 ;
  
  arg1 = (SBMLLevelVersionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLLevel1Version1Converter_init() {
  SBMLLevel1Version1Converter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLLevel1Version1Converter__SWIG_0() {
  void * jresult ;
  SBMLLevel1Version1Converter *result = 0 ;
  
  result = (SBMLLevel1Version1Converter *)new SBMLLevel1Version1Converter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLLevel1Version1Converter(void * jarg1) {
  SBMLLevel1Version1Converter *arg1 = (SBMLLevel1Version1Converter *) 0 ;
  
  arg1 = (SBMLLevel1Version1Converter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLLocalParameterConverter_init() {
  SBMLLocalParameterConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLLocalParameterConverter__SWIG_0() {
  void * jresult ;
  SBMLLocalParameterConverter *result = 0 ;
  
  result = (SBMLLocalParameterConverter *)new SBMLLocalParameterConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLLocalParameterConverter(void * jarg1) {
  SBMLLocalParameterConverter *arg1 = (SBMLLocalParameterConverter *) 0 ;
  
  arg1 = (SBMLLocalParameterConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLReactionConverter_init() {
  SBMLReactionConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLReactionConverter__SWIG_0() {
  void * jresult ;
  SBMLReactionConverter *result = 0 ;
  
  result = (SBMLReactionConverter *)new SBMLReactionConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLReactionConverter(void * jarg1) {
  SBMLReactionConverter *arg1 = (SBMLReactionConverter *) 0 ;
  
  arg1 = (SBMLReactionConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLRuleConverter_init() {
  SBMLRuleConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLRuleConverter__SWIG_0() {
  void * jresult ;
  SBMLRuleConverter *result = 0 ;
  
  result = (SBMLRuleConverter *)new SBMLRuleConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLRuleConverter(void * jarg1) {
  SBMLRuleConverter *arg1 = (SBMLRuleConverter *) 0 ;
  
  arg1 = (SBMLRuleConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLStripPackageConverter_init() {
  SBMLStripPackageConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLStripPackageConverter__SWIG_0() {
  void * jresult ;
  SBMLStripPackageConverter *result = 0 ;
  
  result = (SBMLStripPackageConverter *)new SBMLStripPackageConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLStripPackageConverter(void * jarg1) {
  SBMLStripPackageConverter *arg1 = (SBMLStripPackageConverter *) 0 ;
  
  arg1 = (SBMLStripPackageConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLUnitsConverter_init() {
  SBMLUnitsConverter::init();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLUnitsConverter__SWIG_0() {
  void * jresult ;
  SBMLUnitsConverter *result = 0 ;
  
  result = (SBMLUnitsConverter *)new SBMLUnitsConverter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLUnitsConverter(void * jarg1) {
  SBMLUnitsConverter *arg1 = (SBMLUnitsConverter *) 0 ;
  
  arg1 = (SBMLUnitsConverter *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLValidator__SWIG_0() {
  void * jresult ;
  SBMLValidator *result = 0 ;
  
  result = (SBMLValidator *)new SwigDirector_SBMLValidator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLValidator(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLValidator_clearFailures(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  (arg1)->clearFailures();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLValidator_clearFailuresSwigExplicitSBMLValidator(void * jarg1) {
  SBMLValidator *arg1 = (SBMLValidator *) 0 ;
  
  arg1 = (SBMLValidator *)jarg1; 
  (arg1)->SBMLValidator::clearFailures();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 = static_cast<SwigDirector_SBMLValidator *>(obj);
  director->swig_connect_director(callback0, callback1, callback2, callback3, callback4, callback5);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_SBMLExternalValidator__SWIG_0() {
  void * jresult ;
  SBMLExternalValidator *result = 0 ;
  
  result = (SBMLExternalValidator *)new SBMLExternalValidator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLExternalValidator(void * jarg1) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLExternalValidator_clearArguments(void * jarg1) {
  SBMLExternalValidator *arg1 = (SBMLExternalValidator *) 0 ;
  
  arg1 = (SBMLExternalValidator *)jarg1; 
  (arg1)->clearArguments();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLAttributes(void * jarg1) {
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  
  arg1 = (XMLAttributes *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 ;
  std::string arg5 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,(std::string const &)*arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->remove((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLAttributes_getValue__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  std::string result;
  
  arg1 = (XMLAttributes *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = ((XMLAttributes 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 wchar_t* SWIGSTDCALL CSharp_libsbml_XMLAttributes_getValue__SWIG_2(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  wchar_t* jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string arg_str2 ;
  std::string arg_str3 ;
  std::string 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 = ((XMLAttributes const *)arg1)->getValue((std::string const &)*arg2,(std::string const &)*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_libsbml_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_libsbml_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_libsbml_XMLAttributes_hasAttribute__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLAttributes *arg1 = (XMLAttributes *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg3 ;
  std::string arg_str2 ;
  bool 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);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLAttributes const *)arg1)->hasAttribute((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


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


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_new_XMLConstructorException() {
  void * jresult ;
  XMLConstructorException *result = 0 ;
  
  result = (XMLConstructorException *)new XMLConstructorException();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_XMLConstructorException(void * jarg1) {
  XMLConstructorException *arg1 = (XMLConstructorException *) 0 ;
  
  arg1 = (XMLConstructorException *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_XMLNamespaces(void * jarg1) {
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  
  arg1 = (XMLNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->add((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLNamespaces_getIndex(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)((XMLNamespaces const *)arg1)->getIndex((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_XMLNamespaces_containsUri(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)->containsUri((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_XMLNamespaces_getIndexByPrefix(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)((XMLNamespaces const *)arg1)->getIndexByPrefix((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLNamespaces_getURI__SWIG_1(void * jarg1, wchar_t* jarg2) {
  wchar_t* jresult ;
  XMLNamespaces *arg1 = (XMLNamespaces *) 0 ;
  std::string arg2 ;
  std::string result;
  
  arg1 = (XMLNamespaces *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLToken(void * jarg1) {
  XMLToken *arg1 = (XMLToken *) 0 ;
  
  arg1 = (XMLToken *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  std::string arg5 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addAttr((std::string const &)*arg2,(std::string const &)*arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->removeAttr((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)((XMLToken const *)arg1)->getAttrIndex((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLToken_getAttrValue__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  wchar_t* jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg3 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = ((XMLToken const *)arg1)->getAttrValue((std::string const &)*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_libsbml_XMLToken_getAttrValue__SWIG_2(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)->getAttrValue((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_libsbml_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_libsbml_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_libsbml_XMLToken_hasAttr__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  unsigned int jresult ;
  XMLToken *arg1 = (XMLToken *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg3 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (bool)((XMLToken const *)arg1)->hasAttr((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_XMLToken_hasAttr__SWIG_2(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)->hasAttr((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  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;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  result = (int)(arg1)->addNamespace((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLToken_getNamespaceURI__SWIG_1(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)->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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLNode(void * jarg1) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLNode_equals__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4) {
  unsigned int jresult ;
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLNode *arg2 = 0 ;
  bool arg3 ;
  bool arg4 ;
  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; 
  arg4 = jarg4 ? true : false; 
  result = (bool)((XMLNode const *)arg1)->equals((XMLNode const &)*arg2,arg3,arg4);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_XMLNode_equals__SWIG_1(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_libsbml_XMLNode_equals__SWIG_2(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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_XMLNode_writeToStream(void * jarg1, void * jarg2) {
  XMLNode *arg1 = (XMLNode *) 0 ;
  XMLOutputStream *arg2 = 0 ;
  
  arg1 = (XMLNode *)jarg1; 
  arg2 = (XMLOutputStream *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLOutputStream & type is null", 0);
    return ;
  } 
  ((XMLNode const *)arg1)->writeToStream(*arg2);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_XMLTriple__SWIG_0() {
  void * jresult ;
  XMLTriple *result = 0 ;
  
  result = (XMLTriple *)new XMLTriple();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLTriple(void * jarg1) {
  XMLTriple *arg1 = (XMLTriple *) 0 ;
  
  arg1 = (XMLTriple *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  bool arg3 ;
  std::string arg4 ;
  std::string arg5 ;
  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);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,arg2,arg3,arg4,arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOutputStream__SWIG_1(void * jarg1, wchar_t* jarg2, unsigned int jarg3, wchar_t* jarg4) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string arg2 ;
  bool arg3 ;
  std::string arg4 ;
  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);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,arg2,arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOutputStream__SWIG_2(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string arg2 ;
  bool arg3 ;
  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);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOutputStream__SWIG_3(void * jarg1, wchar_t* jarg2) {
  void * jresult ;
  std::ostream *arg1 = 0 ;
  std::string arg2 ;
  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);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  
  try {
    result = (XMLOutputStream *)new XMLOutputStream(*arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_XMLOutputStream(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  delete arg1;
}


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


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_XMLOutputStream_endElement__SWIG_2(void * jarg1, void * jarg2, unsigned int jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  XMLTriple *arg2 = 0 ;
  bool arg3 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  arg2 = (XMLTriple *)jarg2;
  if (!arg2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "XMLTriple const & type is null", 0);
    return ;
  } 
  arg3 = jarg3 ? true : false; 
  (arg1)->endElement((XMLTriple const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_XMLOutputStream_endElement__SWIG_3(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_libsbml_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_libsbml_XMLOutputStream_startElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg3 ;
  std::string arg_str2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->startElement((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_XMLOutputStream_startEndElement__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg3 ;
  std::string arg_str2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return ;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg3);
    (&arg3)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->startEndElement((std::string const &)*arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLOutputStream_writeXMLDecl(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->writeXMLDecl();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_XMLOutputStream_downIndent(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->downIndent();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_XMLOutputStream_upIndent(void * jarg1) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  (arg1)->upIndent();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_XMLOutputStream_getWriteComment() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)XMLOutputStream::getWriteComment();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_XMLOutputStream_setWriteComment(unsigned int jarg1) {
  bool arg1 ;
  
  arg1 = jarg1 ? true : false; 
  XMLOutputStream::setWriteComment(arg1);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_XMLOutputStream_getWriteTimestamp() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)XMLOutputStream::getWriteTimestamp();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_XMLOutputStream_setWriteTimestamp(unsigned int jarg1) {
  bool arg1 ;
  
  arg1 = jarg1 ? true : false; 
  XMLOutputStream::setWriteTimestamp(arg1);
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 unsigned int SWIGSTDCALL CSharp_libsbml_XMLOutputStream_getIndent(void * jarg1) {
  unsigned int jresult ;
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  unsigned int result;
  
  arg1 = (XMLOutputStream *)jarg1; 
  result = (unsigned int)(arg1)->getIndent();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_XMLOutputStream_setIndent(void * jarg1, long long jarg2) {
  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
  unsigned int arg2 ;
  
  arg1 = (XMLOutputStream *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  (arg1)->setIndent(arg2);
}


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOwningOutputStringStream__SWIG_2(wchar_t* jarg1, unsigned int jarg2) {
  void * jresult ;
  std::string arg1 ;
  bool arg2 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  arg2 = jarg2 ? true : false; 
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream(arg1,arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOwningOutputStringStream__SWIG_3(wchar_t* jarg1) {
  void * jresult ;
  std::string arg1 ;
  XMLOwningOutputStringStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToUTF8(jarg1);
    (&arg1)->assign(mbstr);
    delete[] mbstr;
  }
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLOwningOutputStringStream__SWIG_4() {
  void * jresult ;
  XMLOwningOutputStringStream *result = 0 ;
  
  result = (XMLOwningOutputStringStream *)new XMLOwningOutputStringStream();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_XMLOwningOutputStringStream(void * jarg1) {
  XMLOwningOutputStringStream *arg1 = (XMLOwningOutputStringStream *) 0 ;
  
  arg1 = (XMLOwningOutputStringStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  bool arg3 ;
  std::string arg4 ;
  std::string arg5 ;
  std::string arg_str1 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,arg2,arg3,arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  bool arg3 ;
  std::string arg4 ;
  std::string arg_str1 ;
  XMLOwningOutputFileStream *result = 0 ;
  
  {
    char*  mbstr = convertUnicodeToACP(jarg1);
    if (!mbstr) return 0;
    
    arg_str1.assign(mbstr);
    arg1 = &arg_str1;
    delete[] mbstr;
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  arg3 = jarg3 ? true : false; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (XMLOwningOutputFileStream *)new XMLOwningOutputFileStream((std::string const &)*arg1,arg2,arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


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


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_XMLOwningOutputFileStream(void * jarg1) {
  XMLOwningOutputFileStream *arg1 = (XMLOwningOutputFileStream *) 0 ;
  
  arg1 = (XMLOwningOutputFileStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLInputStream(void * jarg1) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLInputStream_skipText(void * jarg1) {
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  
  arg1 = (XMLInputStream *)jarg1; 
  (arg1)->skipText();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLInputStream_determineNumberChildren__SWIG_0(void * jarg1, wchar_t* jarg2) {
  unsigned int jresult ;
  XMLInputStream *arg1 = (XMLInputStream *) 0 ;
  std::string arg2 ;
  unsigned int result;
  
  arg1 = (XMLInputStream *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  result = (unsigned int)(arg1)->determineNumberChildren(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,arg2,arg3,arg4,arg5,arg6);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,arg2,arg3,arg4,arg5);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLError__SWIG_2(int jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  void * jresult ;
  int arg1 ;
  std::string arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,arg2,arg3,arg4);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLError__SWIG_3(int jarg1, wchar_t* jarg2, long long jarg3) {
  void * jresult ;
  int arg1 ;
  std::string arg2 ;
  unsigned int arg3 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,arg2,arg3);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLError__SWIG_4(int jarg1, wchar_t* jarg2) {
  void * jresult ;
  int arg1 ;
  std::string arg2 ;
  XMLError *result = 0 ;
  
  arg1 = (int)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  
  try {
    result = (XMLError *)new XMLError(arg1,arg2);
  }
  catch (const XMLConstructorException &e) {
    SWIG_CSharpSetPendingExceptionCustom(e.what(),1);
  }
  
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_XMLError(void * jarg1) {
  XMLError *arg1 = (XMLError *) 0 ;
  
  arg1 = (XMLError *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLErrorLog_clearLog(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  (arg1)->clearLog();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_XMLErrorLog__SWIG_0() {
  void * jresult ;
  XMLErrorLog *result = 0 ;
  
  result = (XMLErrorLog *)new XMLErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_XMLErrorLog(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_XMLErrorLog_printErrors__SWIG_1(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  ((XMLErrorLog const *)arg1)->printErrors();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_XMLErrorLog_unsetSeverityOverride(void * jarg1) {
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  
  arg1 = (XMLErrorLog *)jarg1; 
  (arg1)->unsetSeverityOverride();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_XMLErrorLog_getSeverityOverride(void * jarg1) {
  int jresult ;
  XMLErrorLog *arg1 = (XMLErrorLog *) 0 ;
  XMLErrorSeverityOverride_t result;
  
  arg1 = (XMLErrorLog *)jarg1; 
  result = (XMLErrorSeverityOverride_t)((XMLErrorLog const *)arg1)->getSeverityOverride();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLErrorLog__SWIG_0() {
  void * jresult ;
  SBMLErrorLog *result = 0 ;
  
  result = (SBMLErrorLog *)new SBMLErrorLog();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLErrorLog(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  (arg1)->logError(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  (arg1)->logError(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  (arg1)->logError(arg2,arg3,arg4,arg5,arg6,arg7);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg6 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  (arg1)->logError(arg2,arg3,arg4,arg5,arg6);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg5);
    (&arg5)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->logError(arg2,arg3,arg4,arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLErrorLog_logError__SWIG_8(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  (arg1)->logError();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  unsigned int arg10 ;
  unsigned int arg11 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    (&arg7)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  {
    arg11 = (unsigned int)jarg11;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  unsigned int arg10 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    (&arg7)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg7 ;
  unsigned int arg8 ;
  unsigned int arg9 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    (&arg7)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    arg9 = (unsigned int)jarg9;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg7 ;
  unsigned int arg8 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    (&arg7)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  std::string arg7 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg7);
    (&arg7)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6,arg7);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5,arg6);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4,arg5);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLErrorLog_logPackageError__SWIG_7(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    arg4 = (unsigned int)jarg4;  
  }
  (arg1)->logPackageError(arg2,arg3,arg4);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLErrorLog_logPackageError__SWIG_8(void * jarg1, wchar_t* jarg2, long long jarg3) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string arg2 ;
  unsigned int arg3 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  (arg1)->logPackageError(arg2,arg3);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLErrorLog_logPackageError__SWIG_9(void * jarg1, wchar_t* jarg2) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  std::string arg2 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    (&arg2)->assign(mbstr);
    delete[] mbstr;
  }
  (arg1)->logPackageError(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_SBMLErrorLog_logPackageError__SWIG_10(void * jarg1) {
  SBMLErrorLog *arg1 = (SBMLErrorLog *) 0 ;
  
  arg1 = (SBMLErrorLog *)jarg1; 
  (arg1)->logPackageError();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string arg9 ;
  unsigned int arg10 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg9);
    (&arg9)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg10 = (unsigned int)jarg10;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  std::string arg9 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  {
    arg8 = (unsigned int)jarg8;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg9);
    (&arg9)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  unsigned int arg8 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    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,arg4,arg5,arg6,arg7,arg8);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  {
    arg7 = (unsigned int)jarg7;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  {
    arg6 = (unsigned int)jarg6;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4,arg5,arg6);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  unsigned int arg5 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  {
    arg5 = (unsigned int)jarg5;  
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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 ;
  SBMLError *result = 0 ;
  
  {
    arg1 = (unsigned int)jarg1;  
  }
  {
    arg2 = (unsigned int)jarg2;  
  }
  {
    arg3 = (unsigned int)jarg3;  
  }
  {
    char*  mbstr = convertUnicodeToUTF8(jarg4);
    (&arg4)->assign(mbstr);
    delete[] mbstr;
  }
  result = (SBMLError *)new SBMLError(arg1,arg2,arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_new_SBMLError__SWIG_10() {
  void * jresult ;
  SBMLError *result = 0 ;
  
  result = (SBMLError *)new SBMLError();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_SBMLError(void * jarg1) {
  SBMLError *arg1 = (SBMLError *) 0 ;
  
  arg1 = (SBMLError *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_new_CVTerm__SWIG_1() {
  void * jresult ;
  CVTerm *result = 0 ;
  
  result = (CVTerm *)new CVTerm();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_CVTerm(void * jarg1) {
  CVTerm *arg1 = (CVTerm *) 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_CVTerm_getQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  QualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (QualifierType_t)(arg1)->getQualifierType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_CVTerm_getModelQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  ModelQualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (ModelQualifierType_t)(arg1)->getModelQualifierType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_CVTerm_getBiologicalQualifierType__SWIG_0(void * jarg1) {
  int jresult ;
  CVTerm *arg1 = (CVTerm *) 0 ;
  BiolQualifierType_t result;
  
  arg1 = (CVTerm *)jarg1; 
  result = (BiolQualifierType_t)(arg1)->getBiologicalQualifierType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_CVTerm_resetModifiedFlags(void * jarg1) {
  CVTerm *arg1 = (CVTerm *) 0 ;
  
  arg1 = (CVTerm *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 = (int)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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 = (int)result; 
  {
    delete[] arg1;
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_Date__SWIG_9() {
  void * jresult ;
  Date *result = 0 ;
  
  result = (Date *)new Date();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_Date(void * jarg1) {
  Date *arg1 = (Date *) 0 ;
  
  arg1 = (Date *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_Date_resetModifiedFlags(void * jarg1) {
  Date *arg1 = (Date *) 0 ;
  
  arg1 = (Date *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ModelCreator__SWIG_0() {
  void * jresult ;
  ModelCreator *result = 0 ;
  
  result = (ModelCreator *)new ModelCreator();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_delete_ModelCreator(void * jarg1) {
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ModelCreator_resetModifiedFlags(void * jarg1) {
  ModelCreator *arg1 = (ModelCreator *) 0 ;
  
  arg1 = (ModelCreator *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_new_ModelHistory__SWIG_0() {
  void * jresult ;
  ModelHistory *result = 0 ;
  
  result = (ModelHistory *)new ModelHistory();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_ModelHistory(void * jarg1) {
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ModelHistory_resetModifiedFlags(void * jarg1) {
  ModelHistory *arg1 = (ModelHistory *) 0 ;
  
  arg1 = (ModelHistory *)jarg1; 
  (arg1)->resetModifiedFlags();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_RDFAnnotationParser_createAnnotation() {
  void * jresult ;
  XMLNode *result = 0 ;
  
  result = (XMLNode *)RDFAnnotationParser::createAnnotation();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_RDFAnnotationParser_createRDFAnnotation__SWIG_2() {
  void * jresult ;
  XMLNode *result = 0 ;
  
  result = (XMLNode *)RDFAnnotationParser::createRDFAnnotation();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_new_RDFAnnotationParser() {
  void * jresult ;
  RDFAnnotationParser *result = 0 ;
  
  result = (RDFAnnotationParser *)new RDFAnnotationParser();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_RDFAnnotationParser(void * jarg1) {
  RDFAnnotationParser *arg1 = (RDFAnnotationParser *) 0 ;
  
  arg1 = (RDFAnnotationParser *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_ISBMLExtensionNamespaces(void * jarg1) {
  ISBMLExtensionNamespaces *arg1 = (ISBMLExtensionNamespaces *) 0 ;
  
  arg1 = (ISBMLExtensionNamespaces *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBaseExtensionPoint(void * jarg1) {
  SBaseExtensionPoint *arg1 = (SBaseExtensionPoint *) 0 ;
  
  arg1 = (SBaseExtensionPoint *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBasePlugin(void * jarg1) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  
  arg1 = (SBasePlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBasePlugin_updateSBMLNamespace(void * jarg1, wchar_t* jarg2, long long jarg3, long long jarg4) {
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  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;  
  }
  (arg1)->updateSBMLNamespace((std::string const &)*arg2,arg3,arg4);
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_SBasePlugin_getListOfAllElements__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  ElementFilter *arg2 = (ElementFilter *) 0 ;
  ListWrapper< SBase > result;
  
  arg1 = (SBasePlugin *)jarg1; 
  arg2 = (ElementFilter *)jarg2; 
  result = SBasePlugin_getListOfAllElements__SWIG_0(arg1,arg2);
  jresult = new ListWrapper< SBase >((const ListWrapper< SBase > &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_SBasePlugin_getListOfAllElements__SWIG_1(void * jarg1) {
  void * jresult ;
  SBasePlugin *arg1 = (SBasePlugin *) 0 ;
  ListWrapper< SBase > result;
  
  arg1 = (SBasePlugin *)jarg1; 
  result = SBasePlugin_getListOfAllElements__SWIG_0(arg1);
  jresult = new ListWrapper< SBase >((const ListWrapper< SBase > &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_delete_SBMLDocumentPlugin(void * jarg1) {
  SBMLDocumentPlugin *arg1 = (SBMLDocumentPlugin *) 0 ;
  
  arg1 = (SBMLDocumentPlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBMLExtension(void * jarg1) {
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  
  arg1 = (SBMLExtension *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLExtension_hasMutiplePackageVersions(void * jarg1) {
  unsigned int jresult ;
  SBMLExtension *arg1 = (SBMLExtension *) 0 ;
  bool result;
  
  arg1 = (SBMLExtension *)jarg1; 
  result = (bool)((SBMLExtension const *)arg1)->hasMutiplePackageVersions();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_SBMLExtensionException(void * jarg1) {
  SBMLExtensionException *arg1 = (SBMLExtensionException *) 0 ;
  
  arg1 = (SBMLExtensionException *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_SBMLExtensionRegistry_getInstance() {
  void * jresult ;
  SBMLExtensionRegistry *result = 0 ;
  
  result = (SBMLExtensionRegistry *) &SBMLExtensionRegistry::getInstance();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_SBMLExtensionRegistry_getNumRegisteredPackages() {
  unsigned int jresult ;
  unsigned int result;
  
  result = (unsigned int)SBMLExtensionRegistry::getNumRegisteredPackages();
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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 void * SWIGSTDCALL CSharp_libsbml_SBMLExtensionRegistry_getASTPlugins(void * jarg1) {
  void * jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  SwigValueWrapper< std::vector< ASTBasePlugin * > > result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  result = (arg1)->getASTPlugins();
  jresult = new std::vector< ASTBasePlugin * >((const std::vector< ASTBasePlugin * > &)result); 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_SBMLExtensionRegistry_getNumASTPlugins(void * jarg1) {
  unsigned int jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  unsigned int result;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  result = (unsigned int)(arg1)->getNumASTPlugins();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_SBMLExtensionRegistry_getASTPlugin(void * jarg1, long long jarg2) {
  void * jresult ;
  SBMLExtensionRegistry *arg1 = (SBMLExtensionRegistry *) 0 ;
  unsigned int arg2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (SBMLExtensionRegistry *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTBasePlugin *)(arg1)->getASTPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_Callback(void * jarg1) {
  Callback *arg1 = (Callback *) 0 ;
  
  arg1 = (Callback *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_Callback_process(void * jarg1, void * jarg2) {
  int jresult ;
  Callback *arg1 = (Callback *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (Callback *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->process(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_Callback_processSwigExplicitCallback(void * jarg1, void * jarg2) {
  int jresult ;
  Callback *arg1 = (Callback *) 0 ;
  SBMLDocument *arg2 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (Callback *)jarg1; 
  arg2 = (SBMLDocument *)jarg2; 
  result = (int)(arg1)->Callback::process(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_Callback() {
  void * jresult ;
  Callback *result = 0 ;
  
  result = (Callback *)new SwigDirector_Callback();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_Callback_director_connect(void *objarg, SwigDirector_Callback::SWIG_Callback0_t callback0) {
  Callback *obj = (Callback *)objarg;
  SwigDirector_Callback *director = static_cast<SwigDirector_Callback *>(obj);
  director->swig_connect_director(callback0);
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_CallbackRegistry_invokeCallbacks(void * jarg1) {
  int jresult ;
  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
  int result;
  
  arg1 = (SBMLDocument *)jarg1; 
  result = (int)CallbackRegistry::invokeCallbacks(arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_CallbackRegistry_clearCallbacks() {
  CallbackRegistry::clearCallbacks();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_CallbackRegistry_addCallback(void * jarg1) {
  Callback *arg1 = (Callback *) 0 ;
  
  arg1 = (Callback *)jarg1; 
  CallbackRegistry::addCallback(arg1);
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_CallbackRegistry_getNumCallbacks() {
  int jresult ;
  int result;
  
  result = (int)CallbackRegistry::getNumCallbacks();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_CallbackRegistry_removeCallback__SWIG_0(int jarg1) {
  int arg1 ;
  
  arg1 = (int)jarg1; 
  CallbackRegistry::removeCallback(arg1);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_CallbackRegistry_removeCallback__SWIG_1(void * jarg1) {
  Callback *arg1 = (Callback *) 0 ;
  
  arg1 = (Callback *)jarg1; 
  CallbackRegistry::removeCallback(arg1);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_CallbackRegistry(void * jarg1) {
  CallbackRegistry *arg1 = (CallbackRegistry *) 0 ;
  
  arg1 = (CallbackRegistry *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ASTNode__SWIG_0(int jarg1) {
  void * jresult ;
  ASTNodeType_t arg1 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTNodeType_t)jarg1; 
  result = (ASTNode *)new ASTNode(arg1);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ASTNode__SWIG_1() {
  void * jresult ;
  ASTNode *result = 0 ;
  
  result = (ASTNode *)new ASTNode();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ASTNode__SWIG_2(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_libsbml_delete_ASTNode(void * jarg1) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  delete arg1;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_ASTNode_addChild__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  bool arg3 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->addChild(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTNode_addChild__SWIG_1(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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_getType(void * jarg1) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNodeType_t result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (ASTNodeType_t)((ASTNode const *)arg1)->getType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_isCiNumber(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isCiNumber();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_ASTNode_isCSymbolFunction(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isCSymbolFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 unsigned int SWIGSTDCALL CSharp_libsbml_ASTNode_isUserFunction(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isUserFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTNode_hasTypeAndNumChildren(void * jarg1, int jarg2, long long jarg3) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNodeType_t arg2 ;
  unsigned int arg3 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  {
    arg3 = (unsigned int)jarg3;  
  }
  result = (int)((ASTNode const *)arg1)->hasTypeAndNumChildren(arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_setType(void * jarg1, int jarg2) {
  int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNodeType_t arg2 ;
  int result;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (int)(arg1)->setType(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_multiplyTimeBy(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  (arg1)->multiplyTimeBy((ASTNode const *)arg2);
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_reduceToBinary(void * jarg1) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  (arg1)->reduceToBinary();
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTNode_isBvar(void * jarg1) {
  unsigned int jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTNode *)jarg1; 
  result = (bool)((ASTNode const *)arg1)->isBvar();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_ASTNode_setBvar(void * jarg1) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  (arg1)->setBvar();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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 unsigned int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_ASTNode_addPlugin(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTBasePlugin *arg2 = (ASTBasePlugin *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTBasePlugin *)jarg2; 
  (arg1)->addPlugin(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_ASTNode_loadASTPlugins(void * jarg1, void * jarg2) {
  ASTNode *arg1 = (ASTNode *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  (arg1)->loadASTPlugins((SBMLNamespaces const *)arg2);
}


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


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNode_getASTPlugin__SWIG_0(void * jarg1, void * jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  result = (ASTBasePlugin *)(arg1)->getASTPlugin((SBMLNamespaces const *)arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNode_getASTPlugin__SWIG_1(void * jarg1, int jarg2) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ASTNodeType_t arg2 ;
  ASTBasePlugin *result = 0 ;
  
  arg1 = (ASTNode *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (ASTBasePlugin *)(arg1)->getASTPlugin(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNode_getASTPlugin__SWIG_2(void * jarg1, wchar_t* jarg2, unsigned int jarg3, unsigned int jarg4) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  bool arg4 ;
  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;
  }
  arg3 = jarg3 ? true : false; 
  arg4 = jarg4 ? true : false; 
  result = (ASTBasePlugin *)(arg1)->getASTPlugin((std::string const &)*arg2,arg3,arg4);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNode_getASTPlugin__SWIG_3(void * jarg1, wchar_t* jarg2, unsigned int jarg3) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  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;
  }
  arg3 = jarg3 ? true : false; 
  result = (ASTBasePlugin *)(arg1)->getASTPlugin((std::string const &)*arg2,arg3);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNode_getASTPlugin__SWIG_4(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)->getASTPlugin((std::string const &)*arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 void * SWIGSTDCALL CSharp_libsbml_ASTNode_getListOfNodes(void * jarg1) {
  void * jresult ;
  ASTNode *arg1 = (ASTNode *) 0 ;
  ListWrapper< ASTNode > result;
  
  arg1 = (ASTNode *)jarg1; 
  result = ASTNode_getListOfNodes(arg1);
  jresult = new ListWrapper< ASTNode >((const ListWrapper< ASTNode > &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_getDefaultL3ParserSettings() {
  void * jresult ;
  L3ParserSettings_t *result = 0 ;
  
  result = (L3ParserSettings_t *)SBML_getDefaultL3ParserSettings();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_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_libsbml_SBML_deleteL3Parser() {
  SBML_deleteL3Parser();
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_L3ParserSettings__SWIG_0() {
  void * jresult ;
  L3ParserSettings *result = 0 ;
  
  result = (L3ParserSettings *)new L3ParserSettings();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_delete_L3ParserSettings(void * jarg1) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  delete arg1;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_L3ParserSettings_unsetModel(void * jarg1) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  (arg1)->unsetModel();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_L3ParserSettings_getParseLog(void * jarg1) {
  int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ParseLogType_t result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  result = (ParseLogType_t)((L3ParserSettings const *)arg1)->getParseLog();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_L3ParserSettings_setParsePackageMath(void * jarg1, int jarg2, unsigned int jarg3) {
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ExtendedMathType_t arg2 ;
  bool arg3 ;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (ExtendedMathType_t)jarg2; 
  arg3 = jarg3 ? true : false; 
  (arg1)->setParsePackageMath(arg2,arg3);
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_L3ParserSettings_getParsePackageMath(void * jarg1, int jarg2) {
  unsigned int jresult ;
  L3ParserSettings *arg1 = (L3ParserSettings *) 0 ;
  ExtendedMathType_t arg2 ;
  bool result;
  
  arg1 = (L3ParserSettings *)jarg1; 
  arg2 = (ExtendedMathType_t)jarg2; 
  result = (bool)((L3ParserSettings const *)arg1)->getParsePackageMath(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_DefinitionURLRegistry_getInstance() {
  void * jresult ;
  DefinitionURLRegistry *result = 0 ;
  
  result = (DefinitionURLRegistry *) &DefinitionURLRegistry::getInstance();
  jresult = (void *)result; 
  return jresult;
}


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


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_DefinitionURLRegistry_getNumDefinitionURLs() {
  int jresult ;
  int result;
  
  result = (int)DefinitionURLRegistry::getNumDefinitionURLs();
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_DefinitionURLRegistry_addSBMLDefinitions() {
  DefinitionURLRegistry::addSBMLDefinitions();
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_DefinitionURLRegistry_getCoreDefinitionsAdded() {
  unsigned int jresult ;
  bool result;
  
  result = (bool)DefinitionURLRegistry::getCoreDefinitionsAdded();
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_DefinitionURLRegistry_getType(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)DefinitionURLRegistry::getType((std::string const &)*arg1);
  jresult = result; 
  return jresult;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_DefinitionURLRegistry_getDefinitionUrlByIndex(int jarg1) {
  wchar_t* jresult ;
  int arg1 ;
  std::string result;
  
  arg1 = (int)jarg1; 
  result = DefinitionURLRegistry::getDefinitionUrlByIndex(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_libsbml_DefinitionURLRegistry_clearDefinitions() {
  DefinitionURLRegistry::clearDefinitions();
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_DefinitionURLRegistry(void * jarg1) {
  DefinitionURLRegistry *arg1 = (DefinitionURLRegistry *) 0 ;
  
  arg1 = (DefinitionURLRegistry *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_MathFilter() {
  void * jresult ;
  MathFilter *result = 0 ;
  
  result = (MathFilter *)new SwigDirector_MathFilter();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_MathFilter(void * jarg1) {
  MathFilter *arg1 = (MathFilter *) 0 ;
  
  arg1 = (MathFilter *)jarg1; 
  delete arg1;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_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 unsigned int SWIGSTDCALL CSharp_libsbml_MathFilter_filterSwigExplicitMathFilter(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)->MathFilter::filter((SBase const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_MathFilter_director_connect(void *objarg, SwigDirector_MathFilter::SWIG_Callback0_t callback0) {
  MathFilter *obj = (MathFilter *)objarg;
  SwigDirector_MathFilter *director = static_cast<SwigDirector_MathFilter *>(obj);
  director->swig_connect_director(callback0);
}


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


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_name_get(void * jarg1) {
  wchar_t* jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result = (std::string *) & ((arg1)->name);
  {
    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_libsbml_ASTNodeValues_t_type_set(void * jarg1, int jarg2) {
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  ASTNodeType_t arg2 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  if (arg1) (arg1)->type = arg2;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_type_get(void * jarg1) {
  int jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  ASTNodeType_t result;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result = (ASTNodeType_t) ((arg1)->type);
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_isFunction_set(void * jarg1, unsigned int jarg2) {
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  bool arg2 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  arg2 = jarg2 ? true : false; 
  if (arg1) (arg1)->isFunction = arg2;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_isFunction_get(void * jarg1) {
  unsigned int jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  bool result;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result = (bool) ((arg1)->isFunction);
  jresult = result; 
  return jresult;
}


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


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_csymbolURL_get(void * jarg1) {
  wchar_t* jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  std::string *result = 0 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result = (std::string *) & ((arg1)->csymbolURL);
  {
    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_libsbml_ASTNodeValues_t_allowedChildrenType_set(void * jarg1, int jarg2) {
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  AllowedChildrenType_t arg2 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  arg2 = (AllowedChildrenType_t)jarg2; 
  if (arg1) (arg1)->allowedChildrenType = arg2;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_allowedChildrenType_get(void * jarg1) {
  int jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  AllowedChildrenType_t result;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result = (AllowedChildrenType_t) ((arg1)->allowedChildrenType);
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_numAllowedChildren_set(void * jarg1, void * jarg2) {
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  std::vector< unsigned int > arg2 ;
  std::vector< unsigned int > *argp2 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  argp2 = (std::vector< unsigned int > *)jarg2; 
  if (!argp2) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null std::vector< unsigned int >", 0);
    return ;
  }
  arg2 = *argp2; 
  if (arg1) (arg1)->numAllowedChildren = arg2;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTNodeValues_t_numAllowedChildren_get(void * jarg1) {
  void * jresult ;
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  std::vector< unsigned int > result;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  result =  ((arg1)->numAllowedChildren);
  jresult = new std::vector< unsigned int >((const std::vector< unsigned int > &)result); 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_new_ASTNodeValues_t() {
  void * jresult ;
  ASTNodeValues_t *result = 0 ;
  
  result = (ASTNodeValues_t *)new ASTNodeValues_t();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_ASTNodeValues_t(void * jarg1) {
  ASTNodeValues_t *arg1 = (ASTNodeValues_t *) 0 ;
  
  arg1 = (ASTNodeValues_t *)jarg1; 
  delete arg1;
}


SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getStringFor(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  std::string *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (std::string *) &((ASTBasePlugin const *)arg1)->getStringFor(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_libsbml_ASTBasePlugin_getConstCharFor(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  char *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (char *)((ASTBasePlugin const *)arg1)->getConstCharFor(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 wchar_t* SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getConstCharCsymbolURLFor(void * jarg1, int jarg2) {
  wchar_t* jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  char *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (char *)((ASTBasePlugin const *)arg1)->getConstCharCsymbolURLFor(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 int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getASTNodeTypeFor(void * jarg1, wchar_t* jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  std::string *arg2 = 0 ;
  std::string arg_str2 ;
  ASTNodeType_t result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    char*  mbstr = convertUnicodeToUTF8(jarg2);
    if (!mbstr) return 0;
    
    arg_str2.assign(mbstr);
    arg2 = &arg_str2;
    delete[] mbstr;
  }
  result = (ASTNodeType_t)((ASTBasePlugin const *)arg1)->getASTNodeTypeFor((std::string const &)*arg2);
  jresult = (int)result; 
  return jresult;
}


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


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_hasCorrectNamespace(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  SBMLNamespaces *arg2 = (SBMLNamespaces *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (SBMLNamespaces *)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->hasCorrectNamespace(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_defines__SWIG_0(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->defines(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_defines__SWIG_1(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)((ASTBasePlugin const *)arg1)->defines((std::string const &)*arg2,arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_defines__SWIG_2(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)->defines((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_isFunction(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isFunction(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getNumAllowedChildren(void * jarg1, int jarg2) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  std::vector< unsigned int > result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = ((ASTBasePlugin const *)arg1)->getNumAllowedChildren(arg2);
  jresult = new std::vector< unsigned int >((const std::vector< unsigned int > &)result); 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_isLogical(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isLogical(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_isMathMLNodeTag__SWIG_0(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)->isMathMLNodeTag((std::string const &)*arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_isMathMLNodeTag__SWIG_1(void * jarg1, int jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->isMathMLNodeTag(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getExtendedMathType(void * jarg1) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ExtendedMathType_t result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (ExtendedMathType_t)((ASTBasePlugin const *)arg1)->getExtendedMathType();
  jresult = (int)result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_evaluateASTNode__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
  double jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  Model *arg3 = (Model *) 0 ;
  double result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  arg3 = (Model *)jarg3; 
  result = (double)((ASTBasePlugin const *)arg1)->evaluateASTNode((ASTNode const *)arg2,(Model const *)arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_evaluateASTNode__SWIG_1(void * jarg1, void * jarg2) {
  double jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  double result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (double)((ASTBasePlugin const *)arg1)->evaluateASTNode((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getUnitDefinitionFromPackage(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, int jarg5) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  UnitFormulaFormatter *arg2 = (UnitFormulaFormatter *) 0 ;
  ASTNode *arg3 = (ASTNode *) 0 ;
  bool arg4 ;
  int arg5 ;
  UnitDefinition *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (UnitFormulaFormatter *)jarg2; 
  arg3 = (ASTNode *)jarg3; 
  arg4 = jarg4 ? true : false; 
  arg5 = (int)jarg5; 
  result = (UnitDefinition *)((ASTBasePlugin const *)arg1)->getUnitDefinitionFromPackage(arg2,(ASTNode const *)arg3,arg4,arg5);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getASTNodeValue(void * jarg1, long long jarg2) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  unsigned int arg2 ;
  ASTNodeValues_t *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  {
    arg2 = (unsigned int)jarg2;  
  }
  result = (ASTNodeValues_t *)((ASTBasePlugin const *)arg1)->getASTNodeValue(arg2);
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_allowedInFunctionDefinition(void * jarg1, int jarg2) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNodeType_t arg2 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNodeType_t)jarg2; 
  result = (int)((ASTBasePlugin const *)arg1)->allowedInFunctionDefinition(arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_delete_ASTBasePlugin(void * jarg1) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  delete arg1;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTBasePlugin_connectToParent(void * jarg1, void * jarg2) {
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  (arg1)->connectToParent(arg2);
}


SWIGEXPORT void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_ASTBasePlugin_getParentASTObject__SWIG_0(void * jarg1) {
  void * jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *result = 0 ;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (ASTNode *)(arg1)->getParentASTObject();
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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_libsbml_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_libsbml_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 void SWIGSTDCALL CSharp_libsbml_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_libsbml_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_libsbml_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 int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_checkNumArguments(void * jarg1, void * jarg2, void * jarg3) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  std::stringstream *arg3 = 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  arg3 = (std::stringstream *)jarg3;
  if (!arg3) {
    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::stringstream & type is null", 0);
    return 0;
  } 
  result = (int)((ASTBasePlugin const *)arg1)->checkNumArguments((ASTNode const *)arg2,*arg3);
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_getL3PackageInfixPrecedence(void * jarg1) {
  int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  int result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (int)((ASTBasePlugin const *)arg1)->getL3PackageInfixPrecedence();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_hasCorrectNumArguments(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->hasCorrectNumArguments((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_hasPackageOnlyInfixSyntax(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (bool)((ASTBasePlugin const *)arg1)->hasPackageOnlyInfixSyntax();
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_hasUnambiguousPackageInfixGrammar(void * jarg1, void * jarg2) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  ASTNode *arg2 = (ASTNode *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  arg2 = (ASTNode *)jarg2; 
  result = (bool)((ASTBasePlugin const *)arg1)->hasUnambiguousPackageInfixGrammar((ASTNode const *)arg2);
  jresult = result; 
  return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_libsbml_ASTBasePlugin_isPackageInfixFunction(void * jarg1) {
  unsigned int jresult ;
  ASTBasePlugin *arg1 = (ASTBasePlugin *) 0 ;
  bool result;
  
  arg1 = (ASTBasePlugin *)jarg1; 
  result = (bool)((ASTBasePlugin const *)arg1)->isPackageInfixFunction();
  jresult = result; 
  return jresult;
}


SWIGEXPORT OStream * SWIGSTDCALL CSharp_libsbml_OFStream_SWIGUpcast(OFStream *jarg1) {
    return (OStream *)jarg1;
}

SWIGEXPORT OStream * SWIGSTDCALL CSharp_libsbml_OStringStream_SWIGUpcast(OStringStream *jarg1) {
    return (OStream *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_ListOf_SWIGUpcast(ListOf *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Model_SWIGUpcast(Model *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_SBMLDocument_SWIGUpcast(SBMLDocument *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_FunctionDefinition_SWIGUpcast(FunctionDefinition *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfFunctionDefinitions_SWIGUpcast(ListOfFunctionDefinitions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Unit_SWIGUpcast(Unit *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfUnits_SWIGUpcast(ListOfUnits *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_UnitDefinition_SWIGUpcast(UnitDefinition *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfUnitDefinitions_SWIGUpcast(ListOfUnitDefinitions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_CompartmentType_SWIGUpcast(CompartmentType *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfCompartmentTypes_SWIGUpcast(ListOfCompartmentTypes *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_SpeciesType_SWIGUpcast(SpeciesType *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfSpeciesTypes_SWIGUpcast(ListOfSpeciesTypes *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Compartment_SWIGUpcast(Compartment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfCompartments_SWIGUpcast(ListOfCompartments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Species_SWIGUpcast(Species *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfSpecies_SWIGUpcast(ListOfSpecies *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Parameter_SWIGUpcast(Parameter *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfParameters_SWIGUpcast(ListOfParameters *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT Parameter * SWIGSTDCALL CSharp_libsbml_LocalParameter_SWIGUpcast(LocalParameter *jarg1) {
    return (Parameter *)jarg1;
}

SWIGEXPORT ListOfParameters * SWIGSTDCALL CSharp_libsbml_ListOfLocalParameters_SWIGUpcast(ListOfLocalParameters *jarg1) {
    return (ListOfParameters *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_InitialAssignment_SWIGUpcast(InitialAssignment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfInitialAssignments_SWIGUpcast(ListOfInitialAssignments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Rule_SWIGUpcast(Rule *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfRules_SWIGUpcast(ListOfRules *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_libsbml_AlgebraicRule_SWIGUpcast(AlgebraicRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_libsbml_AssignmentRule_SWIGUpcast(AssignmentRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT Rule * SWIGSTDCALL CSharp_libsbml_RateRule_SWIGUpcast(RateRule *jarg1) {
    return (Rule *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Constraint_SWIGUpcast(Constraint *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfConstraints_SWIGUpcast(ListOfConstraints *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Reaction_SWIGUpcast(Reaction *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfReactions_SWIGUpcast(ListOfReactions *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_KineticLaw_SWIGUpcast(KineticLaw *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_SimpleSpeciesReference_SWIGUpcast(SimpleSpeciesReference *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SimpleSpeciesReference * SWIGSTDCALL CSharp_libsbml_SpeciesReference_SWIGUpcast(SpeciesReference *jarg1) {
    return (SimpleSpeciesReference *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfSpeciesReferences_SWIGUpcast(ListOfSpeciesReferences *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SimpleSpeciesReference * SWIGSTDCALL CSharp_libsbml_ModifierSpeciesReference_SWIGUpcast(ModifierSpeciesReference *jarg1) {
    return (SimpleSpeciesReference *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Event_SWIGUpcast(Event *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfEvents_SWIGUpcast(ListOfEvents *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_EventAssignment_SWIGUpcast(EventAssignment *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT ListOf * SWIGSTDCALL CSharp_libsbml_ListOfEventAssignments_SWIGUpcast(ListOfEventAssignments *jarg1) {
    return (ListOf *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Trigger_SWIGUpcast(Trigger *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Delay_SWIGUpcast(Delay *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_Priority_SWIGUpcast(Priority *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBase * SWIGSTDCALL CSharp_libsbml_StoichiometryMath_SWIGUpcast(StoichiometryMath *jarg1) {
    return (SBase *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLFunctionDefinitionConverter_SWIGUpcast(SBMLFunctionDefinitionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLIdConverter_SWIGUpcast(SBMLIdConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLInferUnitsConverter_SWIGUpcast(SBMLInferUnitsConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLInitialAssignmentConverter_SWIGUpcast(SBMLInitialAssignmentConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLLevelVersionConverter_SWIGUpcast(SBMLLevelVersionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLLevel1Version1Converter_SWIGUpcast(SBMLLevel1Version1Converter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLLocalParameterConverter_SWIGUpcast(SBMLLocalParameterConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLReactionConverter_SWIGUpcast(SBMLReactionConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLRuleConverter_SWIGUpcast(SBMLRuleConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLStripPackageConverter_SWIGUpcast(SBMLStripPackageConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLConverter * SWIGSTDCALL CSharp_libsbml_SBMLUnitsConverter_SWIGUpcast(SBMLUnitsConverter *jarg1) {
    return (SBMLConverter *)jarg1;
}

SWIGEXPORT SBMLValidator * SWIGSTDCALL CSharp_libsbml_SBMLExternalValidator_SWIGUpcast(SBMLExternalValidator *jarg1) {
    return (SBMLValidator *)jarg1;
}

SWIGEXPORT XMLToken * SWIGSTDCALL CSharp_libsbml_XMLNode_SWIGUpcast(XMLNode *jarg1) {
    return (XMLToken *)jarg1;
}

SWIGEXPORT XMLErrorLog * SWIGSTDCALL CSharp_libsbml_SBMLErrorLog_SWIGUpcast(SBMLErrorLog *jarg1) {
    return (XMLErrorLog *)jarg1;
}

SWIGEXPORT XMLError * SWIGSTDCALL CSharp_libsbml_SBMLError_SWIGUpcast(SBMLError *jarg1) {
    return (XMLError *)jarg1;
}

SWIGEXPORT SBMLNamespaces * SWIGSTDCALL CSharp_libsbml_ISBMLExtensionNamespaces_SWIGUpcast(ISBMLExtensionNamespaces *jarg1) {
    return (SBMLNamespaces *)jarg1;
}

SWIGEXPORT SBasePlugin * SWIGSTDCALL CSharp_libsbml_SBMLDocumentPlugin_SWIGUpcast(SBMLDocumentPlugin *jarg1) {
    return (SBasePlugin *)jarg1;
}

SWIGEXPORT ElementFilter * SWIGSTDCALL CSharp_libsbml_MathFilter_SWIGUpcast(MathFilter *jarg1) {
    return (ElementFilter *)jarg1;
}

#ifdef __cplusplus
}
#endif

