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

#define SWIGPYTHON

#ifdef __cplusplus
template<class T> class SwigValueWrapper {
    T *tt;
public:
    inline SwigValueWrapper() : tt(0) { }
    inline ~SwigValueWrapper() { if (tt) delete tt; } 
    inline SwigValueWrapper& operator=(const T& t) { tt = new T(t); return *this; }
    inline operator T&() const { return *tt; }
    inline T *operator&() { return tt; }
};                                                    
#endif


#include "Python.h"

/***********************************************************************
 * common.swg
 *
 *     This file contains generic SWIG runtime support for pointer
 *     type checking as well as a few commonly used macros to control
 *     external linkage.
 *
 * Author : David Beazley (beazley@cs.uchicago.edu)
 *
 * Copyright (c) 1999-2000, The University of Chicago
 * 
 * This file may be freely redistributed without license or fee provided
 * this copyright message remains intact.
 ************************************************************************/

#include <string.h>

#if defined(_WIN32) || defined(__WIN32__)
#       if defined(_MSC_VER) || defined(__MINGW32__)
#               if defined(STATIC_LINKED)
#                       define SWIGEXPORT(a) a __attribute__((visibility("default")))
#                       define SWIGIMPORT(a) extern a
#               else
#                       define SWIGEXPORT(a) __declspec(dllexport) a
#                       define SWIGIMPORT(a) extern a
#               endif
#       else
#               if defined(__BORLANDC__)
#                       define SWIGEXPORT(a) a __attribute__((visibility("default"))) _export
#                       define SWIGIMPORT(a) a _export
#               else
#                       define SWIGEXPORT(a) a __attribute__((visibility("default")))
#                       define SWIGIMPORT(a) a
#               endif
#       endif
#else
#       define SWIGEXPORT(a) a __attribute__((visibility("default")))
#       define SWIGIMPORT(a) a
#endif

#ifdef SWIG_GLOBAL
#define SWIGRUNTIME(a) SWIGEXPORT(a)
#else
#define SWIGRUNTIME(a) static a
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

typedef struct swig_type_info {
  const char             *name;                 
  swig_converter_func     converter;
  const char             *str;
  void                   *clientdata;	
  swig_dycast_func        dcast;
  struct swig_type_info  *next;
  struct swig_type_info  *prev;
} swig_type_info;

#ifdef SWIG_NOINCLUDE

SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);

#else

static swig_type_info *swig_type_list = 0;

/* Register a type mapping with the type-checking */
SWIGRUNTIME(swig_type_info *)
SWIG_TypeRegister(swig_type_info *ti)
{
  swig_type_info *tc, *head, *ret, *next;
  /* Check to see if this type has already been registered */
  tc = swig_type_list;
  while (tc) {
    if (strcmp(tc->name, ti->name) == 0) {
      /* Already exists in the table.  Just add additional types to the list */
      if (tc->clientdata) ti->clientdata = tc->clientdata;	
      head = tc;
      next = tc->next;
      goto l1;
    }
    tc = tc->prev;
  }
  head = ti;
  next = 0;

  /* Place in list */
  ti->prev = swig_type_list;
  swig_type_list = ti;

  /* Build linked lists */
 l1:
  ret = head;
  tc = ti + 1;
  /* Patch up the rest of the links */
  while (tc->name) {
    head->next = tc;
    tc->prev = head;
    head = tc;
    tc++;
  }
  if (next) next->prev = head;  /**/
  head->next = next;
  return ret;
}

/* Check the typename */
SWIGRUNTIME(swig_type_info *) 
SWIG_TypeCheck(char *c, swig_type_info *ty)
{
  swig_type_info *s;
  if (!ty) return 0;        /* Void pointer */
  s = ty->next;             /* First element always just a name */
  do {
    if (strcmp(s->name,c) == 0) {
      if (s == ty->next) return s;
      /* Move s to the top of the linked list */
      s->prev->next = s->next;
      if (s->next) {
	s->next->prev = s->prev;
      }
      /* Insert s as second element in the list */
      s->next = ty->next;
      if (ty->next) ty->next->prev = s;
      ty->next = s;
      s->prev = ty;  /**/
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/* Cast a pointer up an inheritance hierarchy */
SWIGRUNTIME(void *) 
SWIG_TypeCast(swig_type_info *ty, void *ptr) 
{
  if ((!ty) || (!ty->converter)) return ptr;
  return (*ty->converter)(ptr);
}

/* Dynamic pointer casting. Down an inheritance hierarchy */
SWIGRUNTIME(swig_type_info *) 
SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) 
{
  swig_type_info *lastty = ty;
  if (!ty || !ty->dcast) return ty;
  while (ty && (ty->dcast)) {
     ty = (*ty->dcast)(ptr);
     if (ty) lastty = ty;
  }
  return lastty;
}

/* Return the name associated with this type */
SWIGRUNTIME(const char *)
SWIG_TypeName(const swig_type_info *ty) {
  return ty->name;
}

/* Search for a swig_type_info structure */
SWIGRUNTIME(swig_type_info *)
SWIG_TypeQuery(const char *name) {
  swig_type_info *ty = swig_type_list;
  while (ty) {
    if (ty->str && (strcmp(name,ty->str) == 0)) return ty;
    if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
    ty = ty->prev;
  }
  return 0;
}

/* Set the clientdata field for a type */
SWIGRUNTIME(void)
SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
  swig_type_info *tc, *equiv;
  if (ti->clientdata == clientdata) return;
  ti->clientdata = clientdata;
  equiv = ti->next;
  while (equiv) {
    if (!equiv->converter) {
      tc = swig_type_list;
      while (tc) {
	if ((strcmp(tc->name, equiv->name) == 0))
	  SWIG_TypeClientData(tc,clientdata);
	tc = tc->prev;
      }
    }
    equiv = equiv->next;
  }
}
#endif

#ifdef __cplusplus
}

#endif

/***********************************************************************
 * python.swg
 *
 *     This file contains the runtime support for Python modules
 *     and includes code for managing global variables and pointer
 *     type checking.
 *
 * Author : David Beazley (beazley@cs.uchicago.edu)
 ************************************************************************/

#include "Python.h"

#ifdef __cplusplus
extern "C" {
#endif

#define SWIG_PY_INT     1
#define SWIG_PY_FLOAT   2
#define SWIG_PY_STRING  3
#define SWIG_PY_POINTER 4
#define SWIG_PY_BINARY  5

/* Flags for pointer conversion */

#define SWIG_POINTER_EXCEPTION     0x1
#define SWIG_POINTER_DISOWN        0x2

/* Exception handling in wrappers */
#define SWIG_fail   goto fail

/* Constant information structure */
typedef struct swig_const_info {
    int type;
    char *name;
    long lvalue;
    double dvalue;
    void   *pvalue;
    swig_type_info **ptype;
} swig_const_info;

#ifdef SWIG_NOINCLUDE

SWIGEXPORT(PyObject *)        SWIG_newvarlink(void);
SWIGEXPORT(void)              SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
SWIGEXPORT(int)               SWIG_ConvertPtr(PyObject *, void **, swig_type_info *, int);
SWIGEXPORT(int)               SWIG_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int);
SWIGEXPORT(char *)            SWIG_PackData(char *c, void *, int);
SWIGEXPORT(char *)            SWIG_UnpackData(char *c, void *, int);
SWIGEXPORT(PyObject *)        SWIG_NewPointerObj(void *, swig_type_info *,int own);
SWIGEXPORT(PyObject *)        SWIG_NewPackedObj(void *, int sz, swig_type_info *);
SWIGEXPORT(void)              SWIG_InstallConstants(PyObject *d, swig_const_info constants[]);
#else

/* -----------------------------------------------------------------------------
 * global variable support code.
 * ----------------------------------------------------------------------------- */

typedef struct swig_globalvar {   
  char       *name;                  /* Name of global variable */
  PyObject *(*get_attr)(void);       /* Return the current value */
  int       (*set_attr)(PyObject *); /* Set the value */
  struct swig_globalvar *next;
} swig_globalvar;

typedef struct swig_varlinkobject {
  PyObject_HEAD
  swig_globalvar *vars;
} swig_varlinkobject;

static PyObject *
swig_varlink_repr(swig_varlinkobject *v) {
  v = v;
  return PyString_FromString("<Global variables>");
}

static int
swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) {
  swig_globalvar  *var;
  flags = flags;
  fprintf(fp,"Global variables { ");
  for (var = v->vars; var; var=var->next) {
    fprintf(fp,"%s", var->name);
    if (var->next) fprintf(fp,", ");
  }
  fprintf(fp," }\n");
  return 0;
}

static PyObject *
swig_varlink_getattr(swig_varlinkobject *v, char *n) {
  swig_globalvar *var = v->vars;
  while (var) {
    if (strcmp(var->name,n) == 0) {
      return (*var->get_attr)();
    }
    var = var->next;
  }
  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
  return NULL;
}

static int
swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
  swig_globalvar *var = v->vars;
  while (var) {
    if (strcmp(var->name,n) == 0) {
      return (*var->set_attr)(p);
    }
    var = var->next;
  }
  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
  return 1;
}

statichere PyTypeObject varlinktype = {
  PyObject_HEAD_INIT(0)              
  0,
  (char *)"swigvarlink",                      /* Type name    */
  sizeof(swig_varlinkobject),         /* Basic size   */
  0,                                  /* Itemsize     */
  0,                                  /* Deallocator  */ 
  (printfunc) swig_varlink_print,     /* Print        */
  (getattrfunc) swig_varlink_getattr, /* get attr     */
  (setattrfunc) swig_varlink_setattr, /* Set attr     */
  0,                                  /* tp_compare   */
  (reprfunc) swig_varlink_repr,       /* tp_repr      */    
  0,                                  /* tp_as_number */
  0,                                  /* tp_as_mapping*/
  0,                                  /* tp_hash      */
};

/* Create a variable linking object for use later */
SWIGRUNTIME(PyObject *)
SWIG_newvarlink(void) {
  swig_varlinkobject *result = 0;
  result = PyMem_NEW(swig_varlinkobject,1);
  varlinktype.ob_type = &PyType_Type;    /* Patch varlinktype into a PyType */
  result->ob_type = &varlinktype;
  result->vars = 0;
  result->ob_refcnt = 0;
  Py_XINCREF((PyObject *) result);
  return ((PyObject*) result);
}

SWIGRUNTIME(void)
SWIG_addvarlink(PyObject *p, char *name,
	   PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
  swig_varlinkobject *v;
  swig_globalvar *gv;
  v= (swig_varlinkobject *) p;
  gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
  gv->name = (char *) malloc(strlen(name)+1);
  strcpy(gv->name,name);
  gv->get_attr = get_attr;
  gv->set_attr = set_attr;
  gv->next = v->vars;
  v->vars = gv;
}

/* Pack binary data into a string */
SWIGRUNTIME(char *)
SWIG_PackData(char *c, void *ptr, int sz) {
  static char hex[17] = "0123456789abcdef";
  int i;
  unsigned char *u = (unsigned char *) ptr;
  register unsigned char uu;
  for (i = 0; i < sz; i++,u++) {
    uu = *u;
    *(c++) = hex[(uu & 0xf0) >> 4];
    *(c++) = hex[uu & 0xf];
  }
  return c;
}

/* Unpack binary data from a string */
SWIGRUNTIME(char *)
SWIG_UnpackData(char *c, void *ptr, int sz) {
  register unsigned char uu = 0;
  register int d;
  unsigned char *u = (unsigned char *) ptr;
  int i;
  for (i = 0; i < sz; i++, u++) {
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu = ((d - '0') << 4);
    else if ((d >= 'a') && (d <= 'f'))
      uu = ((d - ('a'-10)) << 4);
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu |= (d - '0');
    else if ((d >= 'a') && (d <= 'f'))
      uu |= (d - ('a'-10));
    *u = uu;
  }
  return c;
}

/* Convert a pointer value */
SWIGRUNTIME(int)
SWIG_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) {
  swig_type_info *tc;
  char  *c;
  static PyObject *SWIG_this = 0;
  int    newref = 0;
  PyObject  *pyobj = 0;

  if (!obj) return 0;
  if (obj == Py_None) {
    *ptr = 0;
    return 0;
  }
#ifdef SWIG_COBJECT_TYPES
  if (!(PyCObject_Check(obj))) {
    if (!SWIG_this)
      SWIG_this = PyString_FromString("this");
    pyobj = obj;
    obj = PyObject_GetAttr(obj,SWIG_this);
    newref = 1;
    if (!obj) goto type_error;
    if (!PyCObject_Check(obj)) {
      Py_DECREF(obj);
      goto type_error;
    }
  }  
  *ptr = PyCObject_AsVoidPtr(obj);
  c = (char *) PyCObject_GetDesc(obj);
  if (newref) Py_DECREF(obj);
  goto cobject;
#else
  if (!(PyString_Check(obj))) {
    if (!SWIG_this)
      SWIG_this = PyString_FromString("this");
    pyobj = obj;
    obj = PyObject_GetAttr(obj,SWIG_this);
    newref = 1;
    if (!obj) goto type_error;
    if (!PyString_Check(obj)) {
      Py_DECREF(obj);
      goto type_error;
    }
  } 
  c = PyString_AsString(obj);
  /* Pointer values must start with leading underscore */
  if (*c != '_') {
    *ptr = (void *) 0;
    if (strcmp(c,"NULL") == 0) {
      if (newref) { Py_DECREF(obj); }
      return 0;
    } else {
      if (newref) { Py_DECREF(obj); }
      goto type_error;
    }
  }
  c++;
  c = SWIG_UnpackData(c,ptr,sizeof(void *));
  if (newref) { Py_DECREF(obj); }
#endif

#ifdef SWIG_COBJECT_TYPES
cobject:
#endif

  if (ty) {
    tc = SWIG_TypeCheck(c,ty);
    if (!tc) goto type_error;
    *ptr = SWIG_TypeCast(tc,(void*) *ptr);
  }

  if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {
      PyObject *zero = PyInt_FromLong(0);
      PyObject_SetAttrString(pyobj,(char*)"thisown",zero);
      Py_DECREF(zero);
  }
  return 0;

type_error:
  if (flags & SWIG_POINTER_EXCEPTION) {
    if (ty) {
      char *temp = (char *) malloc(64+strlen(ty->name));
      sprintf(temp,"Type error. Expected %s", ty->name);
      PyErr_SetString(PyExc_TypeError, temp);
      free((char *) temp);
    } else {
      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
    }
  }
  return -1;
}

/* Convert a packed value value */
SWIGRUNTIME(int)
SWIG_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) {
  swig_type_info *tc;
  char  *c;

  if ((!obj) || (!PyString_Check(obj))) goto type_error;
  c = PyString_AsString(obj);
  /* Pointer values must start with leading underscore */
  if (*c != '_') goto type_error;
  c++;
  c = SWIG_UnpackData(c,ptr,sz);
  if (ty) {
    tc = SWIG_TypeCheck(c,ty);
    if (!tc) goto type_error;
  }
  return 0;

type_error:

  if (flags) {
    if (ty) {
      char *temp = (char *) malloc(64+strlen(ty->name));
      sprintf(temp,"Type error. Expected %s", ty->name);
      PyErr_SetString(PyExc_TypeError, temp);
      free((char *) temp);
    } else {
      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
    }
  }
  return -1;
}

/* Create a new pointer object */
SWIGRUNTIME(PyObject *)
SWIG_NewPointerObj(void *ptr, swig_type_info *type, int own) {
  PyObject *robj;
  if (!ptr) {
    Py_INCREF(Py_None);
    return Py_None;
  }
#ifdef SWIG_COBJECT_TYPES
  robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL);
#else
  {
    char result[1024];
    char *r = result;
    *(r++) = '_';
    r = SWIG_PackData(r,&ptr,sizeof(void *));
    strcpy(r,type->name);
    robj = PyString_FromString(result);
  }
#endif
  if (!robj || (robj == Py_None)) return robj;
  if (type->clientdata) {
    PyObject *inst;
    PyObject *args = Py_BuildValue((char*)"(O)", robj);
    Py_DECREF(robj);
    inst = PyObject_CallObject((PyObject *) type->clientdata, args);
    Py_DECREF(args);
    if (inst) {
      if (own) {
	PyObject *n = PyInt_FromLong(1);
	PyObject_SetAttrString(inst,(char*)"thisown",n);
	Py_DECREF(n);
      }
      robj = inst;
    }
  }
  return robj;
}

SWIGRUNTIME(PyObject *)
SWIG_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
  char result[1024];
  char *r = result;
  if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;
  *(r++) = '_';
  r = SWIG_PackData(r,ptr,sz);
  strcpy(r,type->name);
  return PyString_FromString(result);
}

/* Install Constants */
SWIGRUNTIME(void)
SWIG_InstallConstants(PyObject *d, swig_const_info constants[]) {
  int i;
  PyObject *obj;
  for (i = 0; constants[i].type; i++) {
    switch(constants[i].type) {
    case SWIG_PY_INT:
      obj = PyInt_FromLong(constants[i].lvalue);
      break;
    case SWIG_PY_FLOAT:
      obj = PyFloat_FromDouble(constants[i].dvalue);
      break;
    case SWIG_PY_STRING:
      obj = PyString_FromString((char *) constants[i].pvalue);
      break;
    case SWIG_PY_POINTER:
      obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
      break;
    case SWIG_PY_BINARY:
      obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
      break;
    default:
      obj = 0;
      break;
    }
    if (obj) {
      PyDict_SetItemString(d,constants[i].name,obj);
      Py_DECREF(obj);
    }
  }
}

#endif

#ifdef __cplusplus
}
#endif








/* -------- TYPES TABLE (BEGIN) -------- */

#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t swig_types[0] 
#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t swig_types[1] 
#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t swig_types[2] 
#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t swig_types[3] 
#define  SWIGTYPE_p_coral__Package swig_types[4] 
#define  SWIGTYPE_p_coral__Sequence swig_types[5] 
#define  SWIGTYPE_p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator swig_types[6] 
#define  SWIGTYPE_p_coral__AbstractElementDefinition__superclasses_type__iterator swig_types[7] 
#define  SWIGTYPE_p_coral__Slot swig_types[8] 
#define  SWIGTYPE_p_coral__Atom swig_types[9] 
#define  SWIGTYPE_p_bool swig_types[10] 
#define  SWIGTYPE_p_coral__ElementDefinition swig_types[11] 
#define  SWIGTYPE_p_coral__AbstractElementDefinition swig_types[12] 
#define  SWIGTYPE_p_coral__DatatypeDefinition swig_types[13] 
#define  SWIGTYPE_p_coral__EnumerationDefinition swig_types[14] 
#define  SWIGTYPE_p_coral__PyOperation swig_types[15] 
#define  SWIGTYPE_p_coral__ref_counted swig_types[16] 
#define  SWIGTYPE_p_coral__Transaction__ChangeElementPrimitiveCommand swig_types[17] 
#define  SWIGTYPE_p_coral__Collection swig_types[18] 
#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t swig_types[19] 
#define  SWIGTYPE_p_coral__Meta2ModelBridge swig_types[20] 
#define  SWIGTYPE_p_coral__Iterator swig_types[21] 
#define  SWIGTYPE_p_coral__Package__elements_type__iterator swig_types[22] 
#define  SWIGTYPE_p_coral__Element__slots_type__iterator swig_types[23] 
#define  SWIGTYPE_p_coral__Transaction__Command swig_types[24] 
#define  SWIGTYPE_p_coral__Transaction__ElementCommand swig_types[25] 
#define  SWIGTYPE_p_coral__unicodestring swig_types[26] 
#define  SWIGTYPE_p_coral__Transaction__NewProjectCommand swig_types[27] 
#define  SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand swig_types[28] 
#define  SWIGTYPE_p_coral__Transaction__ProjectChangeCommand swig_types[29] 
#define  SWIGTYPE_p_coral__Transaction__ElementChangeSlotCommand swig_types[30] 
#define  SWIGTYPE_p_coral__Transaction__ElementNewCommand swig_types[31] 
#define  SWIGTYPE_p_coral__Transaction__ElementUUIDCommand swig_types[32] 
#define  SWIGTYPE_p_coral__AbstractElementDefinition__operations_type__iterator swig_types[33] 
#define  SWIGTYPE_p_coral__ElementDefinition__ordered_properties_type__const_iterator swig_types[34] 
#define  SWIGTYPE_p_coral__ElementPrimitive swig_types[35] 
#define  SWIGTYPE_p_coral__Language swig_types[36] 
#define  SWIGTYPE_p_coral__Bag swig_types[37] 
#define  SWIGTYPE_p_coral__OrderedSet swig_types[38] 
#define  SWIGTYPE_p_std__auto_ptrTcoral__Slot_t swig_types[39] 
#define  SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t swig_types[40] 
#define  SWIGTYPE_p_coral__AbstractElementDefinition__subclasses_type__iterator swig_types[41] 
#define  SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t swig_types[42] 
#define  SWIGTYPE_p_coral__Property swig_types[43] 
#define  SWIGTYPE_p_std__locale swig_types[44] 
#define  SWIGTYPE_p_coral__Element swig_types[45] 
#define  SWIGTYPE_p_coral__Set swig_types[46] 
#define  SWIGTYPE_p_coral__Transaction__Transaction swig_types[47] 
#define  SWIGTYPE_p_coral__Project swig_types[48] 
#define  SWIGTYPE_p_std__vectorTstd__string_t swig_types[49] 
#define  SWIGTYPE_p_coral__Transaction__Manager swig_types[50] 
static swig_type_info *swig_types[52];

/* -------- TYPES TABLE (END) -------- */


/*-----------------------------------------------
              @(target):= _coral.so
  ------------------------------------------------*/
#define SWIG_init    initlibcoral

#define SWIG_name    "libcoral"

#include <coral/lib/ref_counted.h>
#include <coral/lib/List.h>
#include <coral/core/python_compat.h>
#include <coral/core/Element.h>
#include <coral/core/ElementDefinition.h>
#include <coral/core/Collection.h>
#include <coral/core/PrimitiveProperties.h>
#include <coral/core/garbage_collector.h>
#include <coral/core/Project.h>
#include <coral/core/PyOperation.h>
#include <coral/core/xmlns_conversion_table.h>
#include <coral/core/util/TransactionManager.h>
#include <coral/core/util/ModelCopy.h>
#include <coral/core/util/SameModel.h>
#include <coral/core/util/uElement.h>
#include <coral/core/diff/Difference.h>
#include <coral/core/io/io.h>
#include <coral/core/CorePrimitives.h>
#include <coral/lib/debugstream.h>
#include <coral/lib/helper_uuid.h>
#include <coral/lib/unicodestring.h>
#include <coral/lang/SMD01/smd2lang.h>

extern std::locale coral::clocale;
extern coral::Transaction::Manager *coral::Transaction::getTransactionManager();
#ifdef __cplusplus
extern "C" {
#endif
static int _wrap_clocale_set(PyObject *_val) {
    {
        std::locale * temp;
        if ((SWIG_ConvertPtr(_val, (void **) &temp, SWIGTYPE_p_std__locale, SWIG_POINTER_EXCEPTION)) == -1) {
            PyErr_SetString(PyExc_TypeError, "C variable 'coral::clocale (std::locale)'");
            return 1;
        }
        coral::clocale = *((std::locale *) temp);
    }
    return 0;
}


static PyObject *_wrap_clocale_get() {
    PyObject *pyobj;
    
    pyobj = SWIG_NewPointerObj((void *) &coral::clocale, SWIGTYPE_p_std__locale, 0);
    return pyobj;
}


static PyObject *_wrap_new_ref_counted(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_ref_counted")) goto fail;
    result = (coral::ref_counted *)new coral::ref_counted();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ref_counted, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ref_counted(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ref_counted",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted_ref(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ref_counted_ref",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    ((coral::ref_counted const *)arg1)->ref();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted_unref(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ref_counted_unref",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    ((coral::ref_counted const *)arg1)->unref();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted_get_ref_count(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ref_counted_get_ref_count",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::ref_counted const *)arg1)->get_ref_count();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted_get_id(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    long result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ref_counted_get_id",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (long)((coral::ref_counted const *)arg1)->get_id();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted___eq__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ref_counted___eq__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::ref_counted const *)arg1)->__eq__((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted___ne__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ref_counted___ne__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::ref_counted const *)arg1)->__ne__((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ref_counted___hash__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ref_counted___hash__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::ref_counted const *)arg1)->__hash__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ref_counted_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__ref_counted, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ModelFeatureIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::Element::slots_type::iterator arg2 ;
    coral::Element::slots_type::iterator arg3 ;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *result;
    coral::Element::slots_type::iterator *argp2 ;
    coral::Element::slots_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_ModelFeatureIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__Element__slots_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__Element__slots_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *)new PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ModelFeatureIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *arg1 = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ModelFeatureIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ModelFeatureIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *arg1 = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *) 0 ;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ModelFeatureIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ModelFeatureIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *arg1 = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *) 0 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ModelFeatureIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Slot *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ModelFeatureIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_PropertyIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::ElementDefinition::ordered_properties_type::const_iterator arg2 ;
    coral::ElementDefinition::ordered_properties_type::const_iterator arg3 ;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *result;
    coral::ElementDefinition::ordered_properties_type::const_iterator *argp2 ;
    coral::ElementDefinition::ordered_properties_type::const_iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_PropertyIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__ElementDefinition__ordered_properties_type__const_iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__ElementDefinition__ordered_properties_type__const_iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *)new PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_PropertyIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *arg1 = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_PropertyIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropertyIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *arg1 = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *) 0 ;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PropertyIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropertyIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *arg1 = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *) 0 ;
    coral::Property *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PropertyIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Property *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * PropertyIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_SuperClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::AbstractElementDefinition::superclasses_type::iterator arg2 ;
    coral::AbstractElementDefinition::superclasses_type::iterator arg3 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    coral::AbstractElementDefinition::superclasses_type::iterator *argp2 ;
    coral::AbstractElementDefinition::superclasses_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_SuperClassesIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__AbstractElementDefinition__superclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__AbstractElementDefinition__superclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *)new PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_SuperClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_SuperClassesIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_SuperClassesIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:SuperClassesIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_SuperClassesIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:SuperClassesIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * SuperClassesIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_SubClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::AbstractElementDefinition::subclasses_type::iterator arg2 ;
    coral::AbstractElementDefinition::subclasses_type::iterator arg3 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    coral::AbstractElementDefinition::subclasses_type::iterator *argp2 ;
    coral::AbstractElementDefinition::subclasses_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_SubClassesIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__AbstractElementDefinition__subclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__AbstractElementDefinition__subclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *)new PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_SubClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_SubClassesIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_SubClassesIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:SubClassesIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_SubClassesIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:SubClassesIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * SubClassesIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_AllSuperClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator arg2 ;
    coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator arg3 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator *argp2 ;
    coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_AllSuperClassesIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *)new PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_AllSuperClassesIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_AllSuperClassesIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AllSuperClassesIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AllSuperClassesIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AllSuperClassesIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AllSuperClassesIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * AllSuperClassesIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_MDAEDIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::Package::elements_type::iterator arg2 ;
    coral::Package::elements_type::iterator arg3 ;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *result;
    coral::Package::elements_type::iterator *argp2 ;
    coral::Package::elements_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_MDAEDIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__Package__elements_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__Package__elements_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *)new PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_MDAEDIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_MDAEDIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_MDAEDIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:MDAEDIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_MDAEDIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *arg1 = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:MDAEDIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * MDAEDIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_OperationsIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ref_counted *arg1 = (coral::ref_counted *) 0 ;
    coral::AbstractElementDefinition::operations_type::iterator arg2 ;
    coral::AbstractElementDefinition::operations_type::iterator arg3 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *result;
    coral::AbstractElementDefinition::operations_type::iterator *argp2 ;
    coral::AbstractElementDefinition::operations_type::iterator *argp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_OperationsIterator",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_coral__AbstractElementDefinition__operations_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg2 = *argp2; 
    if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_coral__AbstractElementDefinition__operations_type__iterator,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
    arg3 = *argp3; 
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *)new PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * >(arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_OperationsIterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_OperationsIterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_OperationsIterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:OperationsIterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_OperationsIterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *arg1 = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *) 0 ;
    coral::PyOperation *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:OperationsIterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::PyOperation *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__PyOperation, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * OperationsIterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_Atom(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Atom",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___type__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___type__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)((coral::Atom const *)arg1)->__type__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___isPart__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) true ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Atom___isPart__",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    result = (bool)((coral::Atom const *)arg1)->__isPart__((coral::Atom const *)arg2,arg3);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Atom const *)arg1)->__str__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___asSet__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::autounref<coral::Set > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___asSet__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = (arg1)->__asSet__();
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Set, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom_oclIsKindOf(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom_oclIsKindOf",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Atom const *)arg1)->oclIsKindOf((coral::AbstractElementDefinition const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___int__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___int__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Atom const *)arg1)->__int__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___long__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    long result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___long__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (long)((coral::Atom const *)arg1)->__long__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___float__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    double result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___float__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (double)((coral::Atom const *)arg1)->__float__();
    
    resultobj = PyFloat_FromDouble(result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getEValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getEValue__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Atom const *)arg1)->__getEValue__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getEValueByName__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getEValueByName__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (arg1)->__getEValueByName__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setEValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom___setEValue__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    (arg1)->__setEValue__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setEValueByName__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    char *arg2 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Atom___setEValueByName__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__setEValueByName__((char const *)arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getPyValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    PyObject *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getPyValue__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PyObject *)((coral::Atom const *)arg1)->__getPyValue__();
    
    resultobj = result;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setPyValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom___setPyValue__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->__setPyValue__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getIValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getIValue__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Atom const *)arg1)->__getIValue__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setIValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom___setIValue__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    (arg1)->__setIValue__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getDValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    double result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getDValue__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (double)((coral::Atom const *)arg1)->__getDValue__();
    
    resultobj = PyFloat_FromDouble(result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setDValue__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    double arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom___setDValue__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyFloat_AsDouble(obj1);
    }
    (arg1)->__setDValue__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___setString__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::unicodestring *arg2 = 0 ;
    coral::unicodestring temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Atom___setString__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        temp2 = coral::unicodestring(obj1);
        arg2 = &temp2;
    }
    (arg1)->__setString__((coral::unicodestring const &)*arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Atom___getString__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::unicodestring *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Atom___getString__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        coral::unicodestring const &_result_ref = ((coral::Atom const *)arg1)->__getString__();
        result = (coral::unicodestring *) &_result_ref;
    }
    
    {
        resultobj =  result->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Atom_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Atom, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Element(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    bool arg2 = (bool) true ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:new_Element",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    result = (coral::Element *)new coral::Element(arg1,arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Element(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Element",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___XMIid__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::uuid_t *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___XMIid__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        coral::uuid_t const &_result_ref = ((coral::Element const *)arg1)->__XMIid__();
        result = (coral::uuid_t *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___resetXMIid__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___resetXMIid__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__resetXMIid__();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___switchType__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::ElementDefinition *arg2 = (coral::ElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Element___switchType__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->__switchType__(arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element_isWellFormed(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element_isWellFormed",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->isWellFormed();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element_isWellFormedRecursive(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element_isWellFormedRecursive",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->isWellFormedRecursive();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___parent__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___parent__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Element *)((coral::Element const *)arg1)->__parent__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___parentSlot__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___parentSlot__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Slot *)((coral::Element const *)arg1)->__parentSlot__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getRoot__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___getRoot__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = (coral::Element *)((coral::Element const *)arg1)->__getRoot__();
        
    }
    catch(coral::coral_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::coral_error");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getAllParts__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::autounref<coral::Set > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___getAllParts__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (arg1)->__getAllParts__();
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Set, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getProject__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Project *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___getProject__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Project *)((coral::Element const *)arg1)->__getProject__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___setProject__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Project *arg2 = (coral::Project *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Element___setProject__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__setProject__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getRootsProject__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Project *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___getRootsProject__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = (coral::Project *)((coral::Element const *)arg1)->__getRootsProject__();
        
    }
    catch(coral::coral_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::coral_error");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___setXMIid__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::uuid_t *arg2 = 0 ;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Element___setXMIid__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    (arg1)->__setXMIid__((coral::uuid_t const &)*arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___hasSlotByName__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Element___hasSlotByName__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Slot *)((coral::Element const *)arg1)->__hasSlotByName__((char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotRO__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Element___getSlotRO__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        {
            coral::Slot const &_result_ref = ((coral::Element const *)arg1)->__getSlotRO__((char const *)arg2);
            result = (coral::Slot *) &_result_ref;
        }
        
    }
    catch(coral::bad_slot &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::bad_slot");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotByName__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Element___getSlotByName__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        {
            coral::Slot &_result_ref = (arg1)->__getSlotByName__((char const *)arg2);
            result = (coral::Slot *) &_result_ref;
        }
        
    }
    catch(coral::bad_slot &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::bad_slot");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotByOppositeName__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::ElementDefinition *arg2 = (coral::ElementDefinition *) 0 ;
    char *arg3 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOs:Element___getSlotByOppositeName__",&obj0,&obj1,&arg3)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        {
            coral::Slot &_result_ref = (arg1)->__getSlotByOppositeName__((coral::ElementDefinition const *)arg2,(char const *)arg3);
            result = (coral::Slot *) &_result_ref;
        }
        
    }
    catch(coral::bad_slot &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::bad_slot");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotByNameInsert__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    PyObject *arg3 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OsO:Element___getSlotByNameInsert__",&obj0,&arg2,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg3 = obj2;
    try {
        {
            try {
                (arg1)->__getSlotByNameInsert__((char const *)arg2,arg3);
                
            }catch (std::invalid_argument &e) {
                PyErr_SetString(PyExc_IndexError, e.what());
                return NULL;
            }
        }
    }
    catch(std::invalid_argument &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::invalid_argument");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotByNameInsertElement__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    coral::Element *arg3 = (coral::Element *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OsO:Element___getSlotByNameInsertElement__",&obj0,&arg2,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        {
            try {
                (arg1)->__getSlotByNameInsertElement__((char const *)arg2,arg3);
                
            }catch (std::invalid_argument &e) {
                PyErr_SetString(PyExc_IndexError, e.what());
                return NULL;
            }
        }
    }
    catch(std::invalid_argument &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::invalid_argument");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___getSlotOneElement__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    char *arg2 ;
    coral::Atom *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Element___getSlotOneElement__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Atom *)((coral::Element const *)arg1)->__getSlotOneElement__((char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Atom, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___type__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::ElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___type__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ElementDefinition *)((coral::Element const *)arg1)->__type__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___isPart__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) true ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Element___isPart__",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    result = (bool)((coral::Element const *)arg1)->__isPart__((coral::Atom const *)arg2,arg3);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___isConnectedTo__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Element___isConnectedTo__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Element const *)arg1)->__isConnectedTo__((coral::Element const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___resetAttrs__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___resetAttrs__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__resetAttrs__();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___all_slots__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___all_slots__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *)(arg1)->__all_slots__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element___properties__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Element___properties__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *)(arg1)->__properties__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Element_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Element, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_Slot_getElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_getElement",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Element *)((coral::Slot const *)arg1)->getElement();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Slot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Slot",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_clone(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    std::auto_ptr<coral::Slot > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_clone",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (arg1)->clone();
    
    {
        std::auto_ptr<coral::Slot > * resultptr;
        resultptr = new std::auto_ptr<coral::Slot >((std::auto_ptr<coral::Slot > &) result);
        resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_std__auto_ptrTcoral__Slot_t, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_getCollection(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Collection *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_getCollection",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Collection *)((coral::Slot const *)arg1)->getCollection();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Collection, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_getProperty(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Property *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_getProperty",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Property *)((coral::Slot const *)arg1)->getProperty();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Iterator *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Iterator *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Iterator, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot___getitem__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    int arg2 ;
    coral::Atom *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Slot___getitem__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    try {
        {
            try {
                result = (coral::Atom *)((coral::Slot const *)arg1)->__getitem__(arg2);
                
            }catch (std::out_of_range &e) {
                PyErr_SetString(PyExc_IndexError, e.what());
                return NULL;
            }
        }
    }
    catch(std::out_of_range &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::out_of_range");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Atom, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Slot const *)arg1)->__str__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot___setitem__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    int arg2 ;
    coral::Atom *arg3 = (coral::Atom *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:Slot___setitem__",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        (arg1)->__setitem__(arg2,arg3);
        
    }
    catch(std::out_of_range &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::out_of_range");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot___len__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    std::size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot___len__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Slot const *)arg1)->__len__();
    
    {
        resultobj = PyInt_FromLong(result);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_size(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    std::size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_size",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Slot const *)arg1)->size();
    
    {
        resultobj = PyInt_FromLong(result);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_resetSlot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Slot_resetSlot",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->resetSlot();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_insert(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    int arg3 = (int) -1 ;
    int arg4 = (int) -1 ;
    bool arg5 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    PyObject * obj4 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|OOO:Slot_insert",&obj0,&obj1,&obj2,&obj3,&obj4)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyInt_AsLong(obj2);
        }
    }
    if (obj3) {
        {
            arg4 = PyInt_AsLong(obj3);
        }
    }
    if (obj4) {
        {
            arg5 = PyObject_IsTrue(obj4);
        }
    }
    try {
        (arg1)->insert(arg2,arg3,arg4,arg5);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_drop(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) false ;
    int result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_drop",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        result = (int)(arg1)->drop(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_remove(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) false ;
    int result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_remove",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        result = (int)(arg1)->remove(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_drop_index(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    int arg2 ;
    bool arg3 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_drop_index",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    (arg1)->drop_index(arg2,arg3);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_add__SWIG_0(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_add",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        (arg1)->add(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_append__SWIG_0(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool arg3 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_append",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        (arg1)->append(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_add__SWIG_1(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    bool arg3 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_add",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        (arg1)->add(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_add(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[4];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 3); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if ((argc >= 2) && (argc <= 3)) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Slot, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__Atom, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                if (argc <= 2) {
                    return _wrap_Slot_add__SWIG_0(self,args);
                }
                {
                    _v = 1;
                }
                if (_v) {
                    return _wrap_Slot_add__SWIG_0(self,args);
                }
            }
        }
    }
    if ((argc >= 2) && (argc <= 3)) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Slot, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = (argv[1] != 0);
            }
            if (_v) {
                if (argc <= 2) {
                    return _wrap_Slot_add__SWIG_1(self,args);
                }
                {
                    _v = 1;
                }
                if (_v) {
                    return _wrap_Slot_add__SWIG_1(self,args);
                }
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'Slot_add'");
    return NULL;
}


static PyObject *_wrap_Slot_append__SWIG_1(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    bool arg3 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Slot_append",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    if (obj2) {
        {
            arg3 = PyObject_IsTrue(obj2);
        }
    }
    try {
        (arg1)->append(arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Slot_append(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[4];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 3); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if ((argc >= 2) && (argc <= 3)) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Slot, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__Atom, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                if (argc <= 2) {
                    return _wrap_Slot_append__SWIG_0(self,args);
                }
                {
                    _v = 1;
                }
                if (_v) {
                    return _wrap_Slot_append__SWIG_0(self,args);
                }
            }
        }
    }
    if ((argc >= 2) && (argc <= 3)) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Slot, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = (argv[1] != 0);
            }
            if (_v) {
                if (argc <= 2) {
                    return _wrap_Slot_append__SWIG_1(self,args);
                }
                {
                    _v = 1;
                }
                if (_v) {
                    return _wrap_Slot_append__SWIG_1(self,args);
                }
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'Slot_append'");
    return NULL;
}


static PyObject * Slot_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Slot, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_ElementPrimitive(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementPrimitive",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___type__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::DatatypeDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementPrimitive___type__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::DatatypeDefinition *)((coral::ElementPrimitive const *)arg1)->__type__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__DatatypeDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive_clone(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementPrimitive_clone",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ElementPrimitive *)((coral::ElementPrimitive const *)arg1)->clone();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ElementPrimitive, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive_reset(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementPrimitive_reset",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->reset();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive_swapWithAtom(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = (coral::ElementPrimitive *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive_swapWithAtom",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->swapWithAtom(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___eq____SWIG_0(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___eq__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator ==((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___ne____SWIG_0(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___ne__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator !=((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___eq____SWIG_1(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::Element *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___eq__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator ==((coral::Element const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___ne____SWIG_1(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::Element *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___ne__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator !=((coral::Element const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___eq____SWIG_2(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___eq__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator ==((PyObject const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___eq__(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[3];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 2); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                return _wrap_ElementPrimitive___eq____SWIG_0(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__Element, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                return _wrap_ElementPrimitive___eq____SWIG_1(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = (argv[1] != 0);
            }
            if (_v) {
                return _wrap_ElementPrimitive___eq____SWIG_2(self,args);
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'ElementPrimitive___eq__'");
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___ne____SWIG_2(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___ne__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator !=((PyObject const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___ne__(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[3];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 2); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                return _wrap_ElementPrimitive___ne____SWIG_0(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *ptr;
                if (SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_coral__Element, 0) == -1) {
                    _v = 0;
                    PyErr_Clear();
                }else {
                    _v = 1;
                }
            }
            if (_v) {
                return _wrap_ElementPrimitive___ne____SWIG_1(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__ElementPrimitive, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = (argv[1] != 0);
            }
            if (_v) {
                return _wrap_ElementPrimitive___ne____SWIG_2(self,args);
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'ElementPrimitive___ne__'");
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___lt__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___lt__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator <((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___le__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___le__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator <=((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___gt__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___gt__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator >((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___ge__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::ElementPrimitive *arg2 = 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementPrimitive___ge__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference"); SWIG_fail; 
    }
    result = (bool)((coral::ElementPrimitive const *)arg1)->operator >=((coral::ElementPrimitive const &)*arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___len__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    std::size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementPrimitive___len__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::ElementPrimitive const *)arg1)->__len__();
    
    {
        resultobj = PyInt_FromLong(result);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementPrimitive___unicode__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementPrimitive___unicode__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::ElementPrimitive const *)arg1)->__unicode__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementPrimitive_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__ElementPrimitive, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_setCorrespondingElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Meta2ModelBridge *arg1 = (coral::Meta2ModelBridge *) 0 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:setCorrespondingElement",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Meta2ModelBridge,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    coral::setCorrespondingElement(arg1,arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Meta2ModelBridge_getCorrespondingElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Meta2ModelBridge *arg1 = (coral::Meta2ModelBridge *) 0 ;
    coral::autounref<coral::Element > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Meta2ModelBridge_getCorrespondingElement",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Meta2ModelBridge,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (arg1)->getCorrespondingElement();
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Element, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Meta2ModelBridge(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Meta2ModelBridge *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Meta2ModelBridge")) goto fail;
    result = (coral::Meta2ModelBridge *)new coral::Meta2ModelBridge();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Meta2ModelBridge, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Meta2ModelBridge(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Meta2ModelBridge *arg1 = (coral::Meta2ModelBridge *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Meta2ModelBridge",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Meta2ModelBridge,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Meta2ModelBridge_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Meta2ModelBridge, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_AbstractElementDefinition_getOperation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    std::string *arg2 = 0 ;
    coral::PyOperation *result;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_getOperation",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    result = (coral::PyOperation *)(arg1)->getOperation((std::string const &)*arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__PyOperation, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_getAbstractElementDefinitionFromSMD(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::autounref<coral::AbstractElementDefinition > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_getAbstractElementDefinitionFromSMD",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = coral::AbstractElementDefinition::getAbstractElementDefinitionFromSMD((coral::Element const *)arg1);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___addOperation__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::PyOperation *arg2 = (coral::PyOperation *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition___addOperation__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__addOperation__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___removeOperation__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition___removeOperation__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->__removeOperation__(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___bindOperation__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    std::string *arg2 = 0 ;
    PyObject *arg3 = (PyObject *) 0 ;
    PyObject *result;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:AbstractElementDefinition___bindOperation__",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    arg3 = obj2;
    result = (PyObject *)(arg1)->__bindOperation__((std::string const &)*arg2,arg3);
    
    resultobj = result;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isAbstract(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_isAbstract",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->isAbstract();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_setAbstract(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_setAbstract",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyObject_IsTrue(obj1);
    }
    (arg1)->setAbstract(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_AbstractElementDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_AbstractElementDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_getName(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_getName",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::AbstractElementDefinition const *)arg1)->getName();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_addSubclass(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_addSubclass",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->addSubclass(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_addSuperclass(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_addSuperclass",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->addSuperclass(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isDatatypeDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_isDatatypeDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isDatatypeDefinition();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isEnumerationDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_isEnumerationDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isEnumerationDefinition();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___package__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::Package *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___package__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Package *)((coral::AbstractElementDefinition const *)arg1)->__package__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Package, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___language__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::Language *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___language__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Language *)((coral::AbstractElementDefinition const *)arg1)->__language__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Language, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isRootDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_isRootDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isRootDefinition();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isSubclass(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_isSubclass",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isSubclass((coral::AbstractElementDefinition const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isProperSubclass(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:AbstractElementDefinition_isProperSubclass",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isProperSubclass((coral::AbstractElementDefinition const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___superclasses__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___superclasses__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__superclasses__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___all_superclasses__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___all_superclasses__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__all_superclasses__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___subclasses__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___subclasses__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__subclasses__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___operations__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___operations__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *)(arg1)->__operations__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_isPresentation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_isPresentation",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::AbstractElementDefinition const *)arg1)->isPresentation();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_newAtom(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::Atom *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_newAtom",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Atom *)(arg1)->newAtom();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Atom, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition_newElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition_newElement",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Element *)(arg1)->newElement();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_AbstractElementDefinition___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:AbstractElementDefinition___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::AbstractElementDefinition const *)arg1)->__str__();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * AbstractElementDefinition_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__AbstractElementDefinition, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_inheritanceTree(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::autounref<coral::Set > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:inheritanceTree",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = coral::inheritanceTree(arg1);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Set, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_crossesPresentationLayer(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::AbstractElementDefinition *arg1 = (coral::AbstractElementDefinition *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:crossesPresentationLayer",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)coral::crossesPresentationLayer((coral::AbstractElementDefinition const *)arg1,(coral::AbstractElementDefinition const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition___propagateProperties(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    coral::ElementDefinition *arg2 = (coral::ElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementDefinition___propagateProperties",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__propagateProperties(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_ElementDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    char *arg2 ;
    coral::ElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:new_ElementDefinition",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ElementDefinition *)new coral::ElementDefinition(arg1,(char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ElementDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_addProperty(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    coral::Property *arg2 = (coral::Property *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementDefinition_addProperty",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->addProperty(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_addPropertyRecursive(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    coral::Property *arg2 = (coral::Property *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementDefinition_addPropertyRecursive",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->addPropertyRecursive(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_getPropertyByName(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    char *arg2 ;
    coral::Property *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:ElementDefinition_getPropertyByName",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Property *)((coral::ElementDefinition const *)arg1)->getPropertyByName((char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_getPropertyByOpposite(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    coral::ElementDefinition *arg2 = (coral::ElementDefinition *) 0 ;
    char *arg3 ;
    coral::Property *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOs:ElementDefinition_getPropertyByOpposite",&obj0,&obj1,&arg3)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Property *)(arg1)->getPropertyByOpposite((coral::ElementDefinition const *)arg2,(char const *)arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_isMOFDatatype(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementDefinition_isMOFDatatype",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::ElementDefinition const *)arg1)->isMOFDatatype();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_setMOFDatatype(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    bool arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ElementDefinition_setMOFDatatype",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyObject_IsTrue(obj1);
    }
    (arg1)->setMOFDatatype(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition___call__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    bool arg2 = (bool) true ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:ElementDefinition___call__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    result = (coral::Element *)(arg1)->operator ()(arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition_isPresentation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementDefinition_isPresentation",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::ElementDefinition const *)arg1)->isPresentation();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementDefinition___properties__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementDefinition *arg1 = (coral::ElementDefinition *) 0 ;
    PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementDefinition___properties__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *)(arg1)->__properties__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementDefinition_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__ElementDefinition, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_Property(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Property",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getOwner(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getOwner",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)((coral::Property const *)arg1)->getOwner();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getROSlot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getROSlot",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Slot *)((coral::Property const *)arg1)->getROSlot();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getDefaultValue(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getDefaultValue",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::Property const *)arg1)->getDefaultValue();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isMultSingle(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isMultSingle",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isMultSingle();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isMultUnlimited(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isMultUnlimited",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isMultUnlimited();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isAtMostOne(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isAtMostOne",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isAtMostOne();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isAtLeastOne(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isAtLeastOne",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isAtLeastOne();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getMultLower(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getMultLower",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Property const *)arg1)->getMultLower();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getMultUpper(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getMultUpper",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Property const *)arg1)->getMultUpper();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isOrdered(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isOrdered",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isOrdered();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isBag(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isBag",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isBag();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isBidirectional(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isBidirectional",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isBidirectional();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isComposition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isComposition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isComposition();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isAssociation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isAssociation",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isAssociation();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isUnserializable(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isUnserializable",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isUnserializable();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_isAnonymous(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_isAnonymous",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Property const *)arg1)->isAnonymous();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getName(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    char *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getName",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (char *)((coral::Property const *)arg1)->getName();
    
    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getTarget(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    coral::AbstractElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getTarget",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::AbstractElementDefinition *)((coral::Property const *)arg1)->getTarget();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Property_getOppositeProperty(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Property *arg1 = (coral::Property *) 0 ;
    coral::Property *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Property_getOppositeProperty",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Property *)((coral::Property const *)arg1)->getOppositeProperty();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Property(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    char *arg1 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    char *arg3 ;
    int arg4 ;
    int arg5 ;
    int arg6 ;
    std::string const &arg7_defvalue = "" ;
    std::string *arg7 = (std::string *) &arg7_defvalue ;
    coral::Property *result;
    std::string temp7 ;
    PyObject * obj1 = 0 ;
    PyObject * obj3 = 0 ;
    PyObject * obj4 = 0 ;
    PyObject * obj5 = 0 ;
    PyObject * obj6 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"sOsOOO|O:new_Property",&arg1,&obj1,&arg3,&obj3,&obj4,&obj5,&obj6)) goto fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg4 = PyInt_AsLong(obj3);
    }
    {
        arg5 = PyInt_AsLong(obj4);
    }
    {
        arg6 = PyInt_AsLong(obj5);
    }
    if (obj6) {
        {
            PyObject* p1 = PyObject_Str(obj6);
            temp7 = std::string(PyString_AsString(p1));
            arg7 = &temp7;
            Py_DECREF(p1);
        }
    }
    result = (coral::Property *)new coral::Property((char const *)arg1,arg2,(char const *)arg3,arg4,arg5,arg6,(std::string const &)*arg7);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Property, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Property_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Property, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_Package_getXMLNS(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Package_getXMLNS",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Package const *)arg1)->getXMLNS();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package_setXMLNS(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    std::string *arg2 = 0 ;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Package_setXMLNS",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    (arg1)->setXMLNS((std::string const &)*arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package___elements__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Package___elements__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__elements__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package___imported_elements__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Package___imported_elements__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *)(arg1)->__imported_elements__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package___language__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    coral::Language *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Package___language__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Language *)((coral::Package const *)arg1)->__language__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Language, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Package(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    std::string *arg2 = 0 ;
    coral::Package *result;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:new_Package",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    result = (coral::Package *)new coral::Package(arg1,(std::string const &)*arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Package, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Package(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Package",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package_getElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    char *arg2 ;
    coral::autounref<coral::AbstractElementDefinition > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Package_getElement",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = ((coral::Package const *)arg1)->getElement((char const *)arg2);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package___getattr__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    char *arg2 ;
    coral::autounref<coral::AbstractElementDefinition > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:Package___getattr__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = ((coral::Package const *)arg1)->__getattr__((char const *)arg2);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__AbstractElementDefinition, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package_addElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Package_addElement",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->addElement(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package_removeElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Package_removeElement",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->removeElement(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package_importElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    coral::AbstractElementDefinition *arg2 = (coral::AbstractElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Package_importElement",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__AbstractElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->importElement(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Package___getLanguageByXMLNS__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    bool arg2 = (bool) true ;
    coral::autounref<coral::Package > result;
    std::string temp1 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:Package___getLanguageByXMLNS__",&obj0,&obj1)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    try {
        result = coral::Package::__getLanguageByXMLNS__((std::string const &)*arg1,arg2);
        
    }
    catch(coral::language_not_found_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::language_not_found_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Package, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Package_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Package, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Language(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    int arg2 ;
    int arg3 ;
    coral::Language *result;
    std::string temp1 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_Language",&obj0,&obj1,&obj2)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    {
        arg2 = PyInt_AsLong(obj1);
    }
    {
        arg3 = PyInt_AsLong(obj2);
    }
    result = (coral::Language *)new coral::Language((std::string const &)*arg1,arg2,arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Language, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Language(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Language *arg1 = (coral::Language *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Language",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Language_setRoot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Language *arg1 = (coral::Language *) 0 ;
    coral::ElementDefinition *arg2 = (coral::ElementDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Language_setRoot",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ElementDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->setRoot(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Language_getRoot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Language *arg1 = (coral::Language *) 0 ;
    coral::ElementDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Language_getRoot",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ElementDefinition *)((coral::Language const *)arg1)->getRoot();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ElementDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Language_getVersion(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Language *arg1 = (coral::Language *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Language_getVersion",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Language const *)arg1)->getVersion();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Language_getRevision(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Language *arg1 = (coral::Language *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Language_getRevision",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Language const *)arg1)->getRevision();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Language___getLanguage__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    int arg2 ;
    int arg3 ;
    bool arg4 = (bool) true ;
    coral::autounref<coral::Language > result;
    std::string temp1 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO|O:Language___getLanguage__",&obj0,&obj1,&obj2,&obj3)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    {
        arg2 = PyInt_AsLong(obj1);
    }
    {
        arg3 = PyInt_AsLong(obj2);
    }
    if (obj3) {
        {
            arg4 = PyObject_IsTrue(obj3);
        }
    }
    try {
        result = coral::Language::__getLanguage__((std::string const &)*arg1,arg2,arg3,arg4);
        
    }
    catch(coral::language_not_found_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::language_not_found_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Language, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Language_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Language, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_Collection(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Collection",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_isOrdered(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_isOrdered",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->isOrdered();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_isBag(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_isBag",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->isBag();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_size(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_size",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->size();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___len__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection___len__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->__len__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_isEmpty(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_isEmpty",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->isEmpty();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___nonzero__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection___nonzero__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->__nonzero__();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_nonEmpty(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_nonEmpty",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->nonEmpty();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_includes(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_includes",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->includes((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___contains__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection___contains__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->__contains__((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_excludes(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_excludes",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->excludes((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_count(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    std::size_t result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_count",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->count((coral::ref_counted const *)arg2);
    
    {
        resultobj = PyInt_FromLong(result);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_includesAll(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_includesAll",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->includesAll((coral::Collection const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_excludesAll(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_excludesAll",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Collection const *)arg1)->excludesAll((coral::Collection const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_unionWith(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_unionWith",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        (arg1)->unionWith((coral::Collection const *)arg2);
        
    }
    catch(std::runtime_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::runtime_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_intersectWith(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_intersectWith",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        (arg1)->intersectWith((coral::Collection const *)arg2);
        
    }
    catch(std::runtime_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::runtime_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_setDifference(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    coral::autounref<coral::Set > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_setDifference",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = ((coral::Collection const *)arg1)->setDifference((coral::Collection const *)arg2);
        
    }
    catch(std::runtime_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::runtime_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Set, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Iterator *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = (coral::Iterator *)((coral::Collection const *)arg1)->__iter__();
        
    }
    catch(std::bad_alloc &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::bad_alloc");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Iterator, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_insert(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    int arg3 = (int) -1 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:Collection_insert",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyInt_AsLong(obj2);
        }
    }
    result = (bool)(arg1)->insert((coral::ref_counted const *)arg2,arg3);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___getitem__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    int arg2 ;
    coral::ref_counted *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection___getitem__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    try {
        {
            try {
                result = (coral::ref_counted *)((coral::Collection const *)arg1)->__getitem__(arg2);
                
            }catch (std::out_of_range &e) {
                PyErr_SetString(PyExc_IndexError, e.what());
                return NULL;
            }
        }
    }
    catch(std::out_of_range &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::out_of_range");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ref_counted, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___setitem__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    int arg2 ;
    coral::ref_counted *arg3 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:Collection___setitem__",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->__setitem__(arg2,(coral::ref_counted const *)arg3);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_remove_keepref(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    int arg2 ;
    coral::ref_counted *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_remove_keepref",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    try {
        result = (coral::ref_counted *)(arg1)->remove_keepref(arg2);
        
    }
    catch(std::out_of_range &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::out_of_range");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ref_counted, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_drop(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_drop",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)(arg1)->drop((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_add(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_add",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->add((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_append(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::ref_counted *arg2 = (coral::ref_counted *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_append",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__ref_counted,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->append((coral::ref_counted const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_drop_index(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    int arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_drop_index",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    (arg1)->drop_index(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_reset(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_reset",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->reset();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->__str__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection___unicode__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::unicodestring result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection___unicode__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->__unicode__();
    
    {
        resultobj = (&result)->toPython();
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_newSimilarCollection(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::autounref<coral::Collection > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_newSimilarCollection",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->newSimilarCollection();
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Collection, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_clone(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::autounref<coral::Collection > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Collection_clone",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Collection const *)arg1)->clone();
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Collection, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Collection_newCollection(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    bool arg1 ;
    bool arg2 ;
    coral::autounref<coral::Collection > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Collection_newCollection",&obj0,&obj1)) goto fail;
    {
        arg1 = PyObject_IsTrue(obj0);
    }
    {
        arg2 = PyObject_IsTrue(obj1);
    }
    result = coral::Collection::newCollection(arg1,arg2);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Collection, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Collection_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Collection, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Bag(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Bag *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Bag")) goto fail;
    result = (coral::Bag *)new coral::Bag();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Bag, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Bag(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Bag *arg1 = (coral::Bag *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Bag",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Bag,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Bag_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Bag, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_OrderedSet(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::OrderedSet *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_OrderedSet")) goto fail;
    result = (coral::OrderedSet *)new coral::OrderedSet();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__OrderedSet, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_OrderedSet(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::OrderedSet *arg1 = (coral::OrderedSet *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_OrderedSet",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__OrderedSet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * OrderedSet_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__OrderedSet, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Sequence(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Sequence *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Sequence")) goto fail;
    result = (coral::Sequence *)new coral::Sequence();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Sequence, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Sequence(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Sequence *arg1 = (coral::Sequence *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Sequence",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Sequence,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Sequence_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Sequence, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Set(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Set *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Set")) goto fail;
    result = (coral::Set *)new coral::Set();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Set, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Set(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Set *arg1 = (coral::Set *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Set",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Set,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Set_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Set, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Iterator__SWIG_0(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Iterator *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:new_Iterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Iterator *)new coral::Iterator((coral::Collection const *)arg1);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Iterator, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Iterator__SWIG_1(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Slot *arg1 = (coral::Slot *) 0 ;
    coral::Iterator *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:new_Iterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Iterator *)new coral::Iterator((coral::Slot const *)arg1);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Iterator, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Iterator(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[2];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 1); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if (argc == 1) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Collection, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            return _wrap_new_Iterator__SWIG_0(self,args);
        }
    }
    if (argc == 1) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_coral__Slot, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            }else {
                _v = 1;
            }
        }
        if (_v) {
            return _wrap_new_Iterator__SWIG_1(self,args);
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'new_Iterator'");
    return NULL;
}


static PyObject *_wrap_delete_Iterator(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Iterator *arg1 = (coral::Iterator *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Iterator",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Iterator,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Iterator_next(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Iterator *arg1 = (coral::Iterator *) 0 ;
    coral::ref_counted *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Iterator_next",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Iterator,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ref_counted *)(arg1)->next();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ref_counted, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Iterator___iter__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Iterator *arg1 = (coral::Iterator *) 0 ;
    coral::Iterator *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Iterator___iter__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Iterator,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Iterator *)(arg1)->__iter__();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Iterator, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Iterator_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Iterator, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_DatatypeDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    char *arg2 ;
    coral::DatatypeDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:new_DatatypeDefinition",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::DatatypeDefinition *)new coral::DatatypeDefinition(arg1,(char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__DatatypeDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_DatatypeDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::DatatypeDefinition *arg1 = (coral::DatatypeDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_DatatypeDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__DatatypeDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * DatatypeDefinition_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__DatatypeDefinition, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_EnumerationDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Package *arg1 = (coral::Package *) 0 ;
    char *arg2 ;
    coral::EnumerationDefinition *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:new_EnumerationDefinition",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Package,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::EnumerationDefinition *)new coral::EnumerationDefinition(arg1,(char const *)arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__EnumerationDefinition, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_EnumerationDefinition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::EnumerationDefinition *arg1 = (coral::EnumerationDefinition *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_EnumerationDefinition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__EnumerationDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_EnumerationDefinition___addEnum__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::EnumerationDefinition *arg1 = (coral::EnumerationDefinition *) 0 ;
    char *arg2 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:EnumerationDefinition___addEnum__",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__EnumerationDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->__addEnum__((char const *)arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_EnumerationDefinition_getDescription(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::EnumerationDefinition *arg1 = (coral::EnumerationDefinition *) 0 ;
    int arg2 ;
    std::string result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:EnumerationDefinition_getDescription",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__EnumerationDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    result = ((coral::EnumerationDefinition const *)arg1)->getDescription(arg2);
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_EnumerationDefinition_getIndexByDescription(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::EnumerationDefinition *arg1 = (coral::EnumerationDefinition *) 0 ;
    char *arg2 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:EnumerationDefinition_getIndexByDescription",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__EnumerationDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::EnumerationDefinition const *)arg1)->getIndexByDescription((char const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_EnumerationDefinition_size(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::EnumerationDefinition *arg1 = (coral::EnumerationDefinition *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:EnumerationDefinition_size",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__EnumerationDefinition,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::EnumerationDefinition const *)arg1)->size();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * EnumerationDefinition_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__EnumerationDefinition, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_PyOperation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PyObject *arg1 = (PyObject *) 0 ;
    std::string *arg2 = 0 ;
    std::string *arg3 = 0 ;
    bool arg4 ;
    coral::PyOperation *result;
    std::string temp2 ;
    std::string temp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOOO:new_PyOperation",&obj0,&obj1,&obj2,&obj3)) goto fail;
    arg1 = obj0;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    {
        PyObject* p1 = PyObject_Str(obj2);
        temp3 = std::string(PyString_AsString(p1));
        arg3 = &temp3;
        Py_DECREF(p1);
    }
    {
        arg4 = PyObject_IsTrue(obj3);
    }
    result = (coral::PyOperation *)new coral::PyOperation(arg1,(std::string const &)*arg2,(std::string const &)*arg3,arg4);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__PyOperation, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_PyOperation(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_PyOperation",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation_getFunc(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    PyObject *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PyOperation_getFunc",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PyObject *)((coral::PyOperation const *)arg1)->getFunc();
    
    resultobj = result;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation_isWFR(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PyOperation_isWFR",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::PyOperation const *)arg1)->isWFR();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation_getFuncName(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PyOperation_getFuncName",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::PyOperation const *)arg1)->getFuncName();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation_getCode(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PyOperation_getCode",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::PyOperation const *)arg1)->getCode();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation___call__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    PyObject *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:PyOperation___call__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (PyObject *)(arg1)->__call__(arg2);
    
    resultobj = result;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PyOperation_getOperationLanguage(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::PyOperation *arg1 = (coral::PyOperation *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:PyOperation_getOperationLanguage",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__PyOperation,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::PyOperation const *)arg1)->getOperationLanguage();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * PyOperation_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__PyOperation, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_Project(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Project")) goto fail;
    result = (coral::Project *)new coral::Project();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Project(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Project",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Project const *)arg1)->__str__();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_isInvalid(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_isInvalid",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Project const *)arg1)->isInvalid();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_isUserProject(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_isUserProject",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Project const *)arg1)->isUserProject();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_setUserProject(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    bool arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Project_setUserProject",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyObject_IsTrue(obj1);
    }
    (arg1)->setUserProject(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_invalidate(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_invalidate",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->invalidate();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_setInvalid(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    bool arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Project_setInvalid",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyObject_IsTrue(obj1);
    }
    (arg1)->setInvalid(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_getXMIFormat(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_getXMIFormat",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Project const *)arg1)->getXMIFormat();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_setXMIFormat(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string *arg2 = 0 ;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Project_setXMIFormat",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    (arg1)->setXMIFormat((std::string const &)*arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_contents(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    coral::Sequence *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_contents",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Sequence *)((coral::Project const *)arg1)->contents();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Sequence, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_setFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string *arg2 = 0 ;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Project_setFilename",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    (arg1)->setFilename((std::string const &)*arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_getFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_getFilename",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::Project const *)arg1)->getFilename();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_getHrefFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Project_getHrefFilename",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::Project const *)arg1)->getHrefFilename();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Project_getProjectByFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    std::string const &arg2_defvalue = "" ;
    std::string *arg2 = (std::string *) &arg2_defvalue ;
    bool *arg3 = (bool *) NULL ;
    coral::autounref<coral::Project > result;
    std::string temp1 ;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|OO:Project_getProjectByFilename",&obj0,&obj1,&obj2)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    if (obj1) {
        {
            PyObject* p1 = PyObject_Str(obj1);
            temp2 = std::string(PyString_AsString(p1));
            arg2 = &temp2;
            Py_DECREF(p1);
        }
    }
    if (obj2) {
        if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_bool,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    }
    result = coral::Project::getProjectByFilename((std::string const &)*arg1,(std::string const &)*arg2,arg3);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Project, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Project_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Project, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_getAllProjects(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::vector<coral::Project * > result;
    
    if(!PyArg_ParseTuple(args,(char *)":getAllProjects")) goto fail;
    result = coral::getAllProjects();
    
    {
        resultobj = PyList_New((&result)->size());
        if (!resultobj) {
            resultobj = Py_None;
            Py_INCREF(resultobj);
        }else {
            int pos = 0;
            for (std::vector<coral::Project*>::const_iterator i = (&result)->begin();
            i != (&result)->end(); ++i, ++pos) {
                PyObject* s =
                SWIG_NewPointerObj(*i,
                SWIGTYPE_p_coral__Project,
                0);
                if (!s) {
                    Py_DECREF(resultobj);
                    resultobj = Py_None;
                    Py_INCREF(resultobj);
                    break;
                }
                (void) PyList_SetItem(resultobj, pos, s);
            }
        }
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_getCanonicalFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    std::string result;
    std::string temp1 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:getCanonicalFilename",&obj0)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    result = coral::getCanonicalFilename((std::string const &)*arg1);
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_getCoralPath(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::vector<std::string > result;
    
    if(!PyArg_ParseTuple(args,(char *)":getCoralPath")) goto fail;
    result = coral::getCoralPath();
    
    {
        resultobj = PyList_New((&result)->size());
        if (!resultobj) {
            resultobj = Py_None;
            Py_INCREF(resultobj);
        }else {
            int pos = 0;
            for (std::vector<std::string>::const_iterator i = (&result)->begin();
            i != (&result)->end();
            ++i, ++pos) {
                PyObject* s = PyString_FromString((*i).c_str());
                if (!s) {
                    Py_DECREF(resultobj);
                    resultobj = Py_None;
                    Py_INCREF(resultobj);
                    break;
                }
                (void) PyList_SetItem(resultobj, pos, s);
            }
        }
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_setCoralPath(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::vector<std::string > arg1 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:setCoralPath",&obj0)) goto fail;
    {
        if (!PyList_Check(obj0)) {
            PyErr_SetString(PyExc_TypeError,
            "Must receive list as input!");
            return NULL;
            
        }
        int size =  PyList_Size(obj0);
        for (int i = 0; i < size; ++i) {
            PyObject* o = PyList_GetItem(obj0, i);
            if (!PyString_Check(o)) {
                PyErr_SetString(PyExc_TypeError,
                "Must receive list of strings as input!");
                return NULL;
            }
            (&arg1)->push_back(PyString_AsString(o));
        }
    }
    coral::setCoralPath(arg1);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_addXMLNSRmap(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string *arg1 = 0 ;
    std::string *arg2 = 0 ;
    std::string *arg3 = 0 ;
    int arg4 ;
    int arg5 ;
    bool result;
    std::string temp1 ;
    std::string temp2 ;
    std::string temp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    PyObject * obj4 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOOOO:addXMLNSRmap",&obj0,&obj1,&obj2,&obj3,&obj4)) goto fail;
    {
        PyObject* p1 = PyObject_Str(obj0);
        temp1 = std::string(PyString_AsString(p1));
        arg1 = &temp1;
        Py_DECREF(p1);
    }
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    {
        PyObject* p1 = PyObject_Str(obj2);
        temp3 = std::string(PyString_AsString(p1));
        arg3 = &temp3;
        Py_DECREF(p1);
    }
    {
        arg4 = PyInt_AsLong(obj3);
    }
    {
        arg5 = PyInt_AsLong(obj4);
    }
    result = (bool)coral::addXMLNSRmap((std::string const &)*arg1,(std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_size(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int result;
    
    if(!PyArg_ParseTuple(args,(char *)":xmlns_db_size")) goto fail;
    result = (int)coral::xmlns_db_size();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_xmlns(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int arg1 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:xmlns_db_xmlns",&obj0)) goto fail;
    {
        arg1 = PyInt_AsLong(obj0);
    }
    result = coral::xmlns_db_xmlns(arg1);
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_filename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int arg1 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:xmlns_db_filename",&obj0)) goto fail;
    {
        arg1 = PyInt_AsLong(obj0);
    }
    result = coral::xmlns_db_filename(arg1);
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_metamodelname(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int arg1 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:xmlns_db_metamodelname",&obj0)) goto fail;
    {
        arg1 = PyInt_AsLong(obj0);
    }
    result = coral::xmlns_db_metamodelname(arg1);
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_version(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int arg1 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:xmlns_db_version",&obj0)) goto fail;
    {
        arg1 = PyInt_AsLong(obj0);
    }
    result = (int)coral::xmlns_db_version(arg1);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_xmlns_db_revision(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    int arg1 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:xmlns_db_revision",&obj0)) goto fail;
    {
        arg1 = PyInt_AsLong(obj0);
    }
    result = (int)coral::xmlns_db_revision(arg1);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_garbage_collect(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    
    if(!PyArg_ParseTuple(args,(char *)":garbage_collect")) goto fail;
    coral::garbage_collect();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ModelCopy(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    int arg2 = (int) 0 ;
    coral::modelcopy_map_t *arg3 = (coral::modelcopy_map_t *) NULL ;
    coral::modelcopy_map_t *arg4 = (coral::modelcopy_map_t *) NULL ;
    coral::autounref<coral::Sequence > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|OOO:ModelCopy",&obj0,&obj1,&obj2,&obj3)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyInt_AsLong(obj1);
        }
    }
    if (obj2) {
        {
            if (!PyDict_Check(obj2)) {
                PyErr_SetString(PyExc_TypeError,
                "Must receive dict as input!");
                return NULL;
            }else {
                arg3 = new coral::modelcopy_map_t();
            }
        }
    }
    if (obj3) {
        {
            if (!PyDict_Check(obj3)) {
                PyErr_SetString(PyExc_TypeError,
                "Must receive dict as input!");
                return NULL;
            }else {
                arg4 = new coral::modelcopy_map_t();
            }
        }
    }
    result = coral::ModelCopy((coral::Collection const *)arg1,arg2,arg3,arg4);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Sequence, 0);
    }
    {
        if (arg3) {
            for (std::map<const coral::Element*, const coral::Element*>::const_iterator i = arg3->begin();
            i != arg3->end();
            ++i) {
                const coral::Element* e1 = i->first;
                const coral::Element* e2 = i->second;
                // BUG should unref in case of exceptions
                PyObject* p1 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e1),
                SWIGTYPE_p_coral__Element,
                0);
                PyObject* p2 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e2),
                SWIGTYPE_p_coral__Element,
                0);
                int err = PyObject_SetItem(obj2, p1, p2);
                coral_assert(err == 0);
            }
        }
    }
    {
        if (arg4) {
            for (std::map<const coral::Element*, const coral::Element*>::const_iterator i = arg4->begin();
            i != arg4->end();
            ++i) {
                const coral::Element* e1 = i->first;
                const coral::Element* e2 = i->second;
                // BUG should unref in case of exceptions
                PyObject* p1 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e1),
                SWIGTYPE_p_coral__Element,
                0);
                PyObject* p2 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e2),
                SWIGTYPE_p_coral__Element,
                0);
                int err = PyObject_SetItem(obj3, p1, p2);
                coral_assert(err == 0);
            }
        }
    }
    {
        if (arg3) {
            delete arg3;
        }
    }
    {
        if (arg4) {
            delete arg4;
        }
    }
    return resultobj;
    fail:
    {
        if (arg3) {
            delete arg3;
        }
    }
    {
        if (arg4) {
            delete arg4;
        }
    }
    return NULL;
}


static PyObject *_wrap_ModelCopy_One(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    int arg2 = (int) 0 ;
    coral::modelcopy_map_t *arg3 = (coral::modelcopy_map_t *) NULL ;
    coral::modelcopy_map_t *arg4 = (coral::modelcopy_map_t *) NULL ;
    coral::autounref<coral::Atom > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|OOO:ModelCopy_One",&obj0,&obj1,&obj2,&obj3)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyInt_AsLong(obj1);
        }
    }
    if (obj2) {
        {
            if (!PyDict_Check(obj2)) {
                PyErr_SetString(PyExc_TypeError,
                "Must receive dict as input!");
                return NULL;
            }else {
                arg3 = new coral::modelcopy_map_t();
            }
        }
    }
    if (obj3) {
        {
            if (!PyDict_Check(obj3)) {
                PyErr_SetString(PyExc_TypeError,
                "Must receive dict as input!");
                return NULL;
            }else {
                arg4 = new coral::modelcopy_map_t();
            }
        }
    }
    result = coral::ModelCopy_One((coral::Atom const *)arg1,arg2,arg3,arg4);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Atom, 0);
    }
    {
        if (arg3) {
            for (std::map<const coral::Element*, const coral::Element*>::const_iterator i = arg3->begin();
            i != arg3->end();
            ++i) {
                const coral::Element* e1 = i->first;
                const coral::Element* e2 = i->second;
                // BUG should unref in case of exceptions
                PyObject* p1 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e1),
                SWIGTYPE_p_coral__Element,
                0);
                PyObject* p2 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e2),
                SWIGTYPE_p_coral__Element,
                0);
                int err = PyObject_SetItem(obj2, p1, p2);
                coral_assert(err == 0);
            }
        }
    }
    {
        if (arg4) {
            for (std::map<const coral::Element*, const coral::Element*>::const_iterator i = arg4->begin();
            i != arg4->end();
            ++i) {
                const coral::Element* e1 = i->first;
                const coral::Element* e2 = i->second;
                // BUG should unref in case of exceptions
                PyObject* p1 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e1),
                SWIGTYPE_p_coral__Element,
                0);
                PyObject* p2 =
                SWIG_NewPointerObj(const_cast<coral::Element*>(e2),
                SWIGTYPE_p_coral__Element,
                0);
                int err = PyObject_SetItem(obj3, p1, p2);
                coral_assert(err == 0);
            }
        }
    }
    {
        if (arg3) {
            delete arg3;
        }
    }
    {
        if (arg4) {
            delete arg4;
        }
    }
    return resultobj;
    fail:
    {
        if (arg3) {
            delete arg3;
        }
    }
    {
        if (arg4) {
            delete arg4;
        }
    }
    return NULL;
}


static PyObject *_wrap_isSameModel(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Atom *arg1 = (coral::Atom *) 0 ;
    coral::Atom *arg2 = (coral::Atom *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:isSameModel",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Atom,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)coral::isSameModel((coral::Atom const *)arg1,(coral::Atom const *)arg2);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element__getMyselfAndParents__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    bool arg2 = (bool) true ;
    coral::autounref<coral::OrderedSet > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:Element__getMyselfAndParents__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    result = coral::util::Element__getMyselfAndParents__((coral::Element const *)arg1,arg2);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__OrderedSet, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Element__getParentsAndMyself__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    bool arg2 = (bool) true ;
    coral::autounref<coral::OrderedSet > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:Element__getParentsAndMyself__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    result = coral::util::Element__getParentsAndMyself__((coral::Element const *)arg1,arg2);
    
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__OrderedSet, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_XMIDI_LocalToGlobalPosition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    double arg2 ;
    double arg3 ;
    std::pair<double,double > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:XMIDI_LocalToGlobalPosition",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyFloat_AsDouble(obj1);
    }
    {
        arg3 = PyFloat_AsDouble(obj2);
    }
    result = coral::util::XMIDI_LocalToGlobalPosition((coral::Element const *)arg1,arg2,arg3);
    
    {
        resultobj = PyList_New(2);
        if (!resultobj) {
            resultobj = Py_None;
            Py_INCREF(resultobj);
        }else {
            PyObject* d1 = PyFloat_FromDouble((&result)->first);
            PyObject* d2 = PyFloat_FromDouble((&result)->second);
            if (d1 && d2) {
                (void) PyList_SetItem(resultobj, 0, d1);
                (void) PyList_SetItem(resultobj, 1, d2);
            }else {
                if (d1) Py_DECREF(d1);
                if (d2) Py_DECREF(d2);
                Py_DECREF(resultobj);
                resultobj = Py_None;
                Py_INCREF(resultobj);
            }
        }
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_XMIDI_GlobalToLocalPosition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    double arg2 ;
    double arg3 ;
    std::pair<double,double > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:XMIDI_GlobalToLocalPosition",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyFloat_AsDouble(obj1);
    }
    {
        arg3 = PyFloat_AsDouble(obj2);
    }
    result = coral::util::XMIDI_GlobalToLocalPosition((coral::Element const *)arg1,arg2,arg3);
    
    {
        resultobj = PyList_New(2);
        if (!resultobj) {
            resultobj = Py_None;
            Py_INCREF(resultobj);
        }else {
            PyObject* d1 = PyFloat_FromDouble((&result)->first);
            PyObject* d2 = PyFloat_FromDouble((&result)->second);
            if (d1 && d2) {
                (void) PyList_SetItem(resultobj, 0, d1);
                (void) PyList_SetItem(resultobj, 1, d2);
            }else {
                if (d1) Py_DECREF(d1);
                if (d2) Py_DECREF(d2);
                Py_DECREF(resultobj);
                resultobj = Py_None;
                Py_INCREF(resultobj);
            }
        }
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_XMIDI_HasReferentialRole(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:XMIDI_HasReferentialRole",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)coral::util::XMIDI_HasReferentialRole((coral::Element const *)arg1);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_XMIDI_find_property_upwards(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    std::string *arg2 = 0 ;
    coral::Element *result;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:XMIDI_find_property_upwards",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    result = (coral::Element *)coral::util::XMIDI_find_property_upwards(arg1,(std::string const &)*arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_XMIDI_find_either_property_upwards(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    std::string *arg2 = 0 ;
    std::string *arg3 = 0 ;
    coral::Element *result;
    std::string temp2 ;
    std::string temp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:XMIDI_find_either_property_upwards",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    {
        PyObject* p1 = PyObject_Str(obj2);
        temp3 = std::string(PyString_AsString(p1));
        arg3 = &temp3;
        Py_DECREF(p1);
    }
    result = (coral::Element *)coral::util::XMIDI_find_either_property_upwards(arg1,(std::string const &)*arg2,(std::string const &)*arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ModelDifference(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    coral::Collection *arg2 = (coral::Collection *) 0 ;
    int arg3 = (int) 0 ;
    coral::autounref<coral::Element > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:ModelDifference",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyInt_AsLong(obj2);
        }
    }
    try {
        result = coral::DIFF::ModelDifference((coral::Collection const *)arg1,(coral::Collection const *)arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Element, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ModelDifference_One(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    int arg3 = (int) 0 ;
    coral::autounref<coral::Element > result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO|O:ModelDifference_One",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj2) {
        {
            arg3 = PyInt_AsLong(obj2);
        }
    }
    try {
        result = coral::DIFF::ModelDifference_One((coral::Element const *)arg1,(coral::Element const *)arg2,arg3);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Element, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_smd2lang(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::autounref<coral::Language > result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:smd2lang",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = coral::SMD01::smd2lang(arg1);
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Language, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_getDebugLog(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::string result;
    
    if(!PyArg_ParseTuple(args,(char *)":getDebugLog")) goto fail;
    result = coral::getDebugLog();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_setDebugObserver(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    PyObject *arg1 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:setDebugObserver",&obj0)) goto fail;
    arg1 = obj0;
    coral::setDebugObserver(arg1);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_getUniqueID(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::uuid_t result;
    
    if(!PyArg_ParseTuple(args,(char *)":getUniqueID")) goto fail;
    result = coral::getUniqueID();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_new_Transaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Transaction *result;
    
    if(!PyArg_ParseTuple(args,(char *)":new_Transaction")) goto fail;
    result = (coral::Transaction::Transaction *)new coral::Transaction::Transaction();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__Transaction, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Transaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Transaction *arg1 = (coral::Transaction::Transaction *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Transaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Transaction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Transaction___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Transaction *arg1 = (coral::Transaction::Transaction *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Transaction___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Transaction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Transaction::Transaction const *)arg1)->__str__();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Transaction_size(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Transaction *arg1 = (coral::Transaction::Transaction *) 0 ;
    size_t result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Transaction_size",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Transaction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Transaction::Transaction const *)arg1)->size();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Transaction___getitem__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Transaction *arg1 = (coral::Transaction::Transaction *) 0 ;
    int arg2 ;
    coral::Transaction::Command *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Transaction___getitem__",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Transaction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    {
        try {
            result = (coral::Transaction::Command *)(arg1)->__getitem__(arg2);
            
        }catch (std::out_of_range &e) {
            PyErr_SetString(PyExc_IndexError, e.what());
            return NULL;
        }
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__Command, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Transaction_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__Transaction, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_Command(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Command *arg1 = (coral::Transaction::Command *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Command",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Command,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Command___str__(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Command *arg1 = (coral::Transaction::Command *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Command___str__",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Command,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Transaction::Command const *)arg1)->__str__();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Command_execute(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Command *arg1 = (coral::Transaction::Command *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Command_execute",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Command,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->execute();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Command_unexecute(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Command *arg1 = (coral::Transaction::Command *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Command_unexecute",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Command,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->unexecute();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Command_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__Command, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_delete_ElementCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementCommand *arg1 = (coral::Transaction::ElementCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementCommand_getAtom(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementCommand *arg1 = (coral::Transaction::ElementCommand *) 0 ;
    coral::Atom *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementCommand_getAtom",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Atom *)((coral::Transaction::ElementCommand const *)arg1)->getAtom();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Atom, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ElementCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_NewProjectCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    coral::Transaction::NewProjectCommand *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:new_NewProjectCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::NewProjectCommand *)new coral::Transaction::NewProjectCommand(arg1);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__NewProjectCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_NewProjectCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::NewProjectCommand *arg1 = (coral::Transaction::NewProjectCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_NewProjectCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__NewProjectCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_NewProjectCommand_getNewProject(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::NewProjectCommand *arg1 = (coral::Transaction::NewProjectCommand *) 0 ;
    coral::Project *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:NewProjectCommand_getNewProject",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__NewProjectCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Project *)((coral::Transaction::NewProjectCommand const *)arg1)->getNewProject();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * NewProjectCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__NewProjectCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ProjectNameChangeCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    std::string *arg2 = 0 ;
    std::string *arg3 = 0 ;
    coral::Transaction::ProjectNameChangeCommand *result;
    std::string temp2 ;
    std::string temp3 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:new_ProjectNameChangeCommand",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    {
        PyObject* p1 = PyObject_Str(obj2);
        temp3 = std::string(PyString_AsString(p1));
        arg3 = &temp3;
        Py_DECREF(p1);
    }
    result = (coral::Transaction::ProjectNameChangeCommand *)new coral::Transaction::ProjectNameChangeCommand(arg1,(std::string const &)*arg2,(std::string const &)*arg3);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ProjectNameChangeCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectNameChangeCommand *arg1 = (coral::Transaction::ProjectNameChangeCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ProjectNameChangeCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ProjectNameChangeCommand_getProject(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectNameChangeCommand *arg1 = (coral::Transaction::ProjectNameChangeCommand *) 0 ;
    coral::Project *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ProjectNameChangeCommand_getProject",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Project *)((coral::Transaction::ProjectNameChangeCommand const *)arg1)->getProject();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ProjectNameChangeCommand_getOldFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectNameChangeCommand *arg1 = (coral::Transaction::ProjectNameChangeCommand *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ProjectNameChangeCommand_getOldFilename",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::Transaction::ProjectNameChangeCommand const *)arg1)->getOldFilename();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ProjectNameChangeCommand_getOldHrefFilename(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectNameChangeCommand *arg1 = (coral::Transaction::ProjectNameChangeCommand *) 0 ;
    std::string *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ProjectNameChangeCommand_getOldHrefFilename",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        std::string const &_result_ref = ((coral::Transaction::ProjectNameChangeCommand const *)arg1)->getOldHrefFilename();
        result = (std::string *) &_result_ref;
    }
    
    {
        resultobj = PyString_FromString(result->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ProjectNameChangeCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ProjectNameChangeCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ProjectChangeCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Project *arg2 = (coral::Project *) 0 ;
    coral::Transaction::ProjectChangeCommand *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:new_ProjectChangeCommand",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::ProjectChangeCommand *)new coral::Transaction::ProjectChangeCommand(arg1,arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ProjectChangeCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ProjectChangeCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectChangeCommand *arg1 = (coral::Transaction::ProjectChangeCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ProjectChangeCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ProjectChangeCommand_getOldProject(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ProjectChangeCommand *arg1 = (coral::Transaction::ProjectChangeCommand *) 0 ;
    coral::Project *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ProjectChangeCommand_getOldProject",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ProjectChangeCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Project *)((coral::Transaction::ProjectChangeCommand const *)arg1)->getOldProject();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Project, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ProjectChangeCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ProjectChangeCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ChangeElementPrimitiveCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::ElementPrimitive *arg1 = (coral::ElementPrimitive *) 0 ;
    coral::Transaction::ChangeElementPrimitiveCommand *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:new_ChangeElementPrimitiveCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__ElementPrimitive,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::ChangeElementPrimitiveCommand *)new coral::Transaction::ChangeElementPrimitiveCommand(arg1);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ChangeElementPrimitiveCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ChangeElementPrimitiveCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ChangeElementPrimitiveCommand *arg1 = (coral::Transaction::ChangeElementPrimitiveCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ChangeElementPrimitiveCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ChangeElementPrimitiveCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ChangeElementPrimitiveCommand_getNewAtom(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ChangeElementPrimitiveCommand *arg1 = (coral::Transaction::ChangeElementPrimitiveCommand *) 0 ;
    coral::ElementPrimitive *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ChangeElementPrimitiveCommand_getNewAtom",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ChangeElementPrimitiveCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::ElementPrimitive *)((coral::Transaction::ChangeElementPrimitiveCommand const *)arg1)->getNewAtom();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__ElementPrimitive, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ChangeElementPrimitiveCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ChangeElementPrimitiveCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ElementChangeSlotCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Slot *arg2 = (coral::Slot *) 0 ;
    coral::Transaction::ElementChangeSlotCommand *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:new_ElementChangeSlotCommand",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Slot,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::ElementChangeSlotCommand *)new coral::Transaction::ElementChangeSlotCommand(arg1,arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ElementChangeSlotCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ElementChangeSlotCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementChangeSlotCommand *arg1 = (coral::Transaction::ElementChangeSlotCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementChangeSlotCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementChangeSlotCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementChangeSlotCommand_getSlot(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementChangeSlotCommand *arg1 = (coral::Transaction::ElementChangeSlotCommand *) 0 ;
    coral::Slot *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementChangeSlotCommand_getSlot",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementChangeSlotCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Slot *)((coral::Transaction::ElementChangeSlotCommand const *)arg1)->getSlot();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Slot, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementChangeSlotCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ElementChangeSlotCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ElementNewCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    coral::Transaction::ElementNewCommand *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:new_ElementNewCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::ElementNewCommand *)new coral::Transaction::ElementNewCommand(arg1);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ElementNewCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ElementNewCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementNewCommand *arg1 = (coral::Transaction::ElementNewCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementNewCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementNewCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementNewCommand_getNewElement(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementNewCommand *arg1 = (coral::Transaction::ElementNewCommand *) 0 ;
    coral::Element *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementNewCommand_getNewElement",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementNewCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Element *)((coral::Transaction::ElementNewCommand const *)arg1)->getNewElement();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementNewCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ElementNewCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ElementUUIDCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Element *arg1 = (coral::Element *) 0 ;
    std::string *arg2 = 0 ;
    coral::Transaction::ElementUUIDCommand *result;
    std::string temp2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:new_ElementUUIDCommand",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        PyObject* p1 = PyObject_Str(obj1);
        temp2 = std::string(PyString_AsString(p1));
        arg2 = &temp2;
        Py_DECREF(p1);
    }
    result = (coral::Transaction::ElementUUIDCommand *)new coral::Transaction::ElementUUIDCommand(arg1,(std::string const &)*arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__ElementUUIDCommand, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_ElementUUIDCommand(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementUUIDCommand *arg1 = (coral::Transaction::ElementUUIDCommand *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_ElementUUIDCommand",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementUUIDCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ElementUUIDCommand_getOldXMIid(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::ElementUUIDCommand *arg1 = (coral::Transaction::ElementUUIDCommand *) 0 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:ElementUUIDCommand_getOldXMIid",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__ElementUUIDCommand,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = ((coral::Transaction::ElementUUIDCommand const *)arg1)->getOldXMIid();
    
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ElementUUIDCommand_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__ElementUUIDCommand, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_getTransactionManager(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *result;
    
    if(!PyArg_ParseTuple(args,(char *)":getTransactionManager")) goto fail;
    result = (coral::Transaction::Manager *)coral::Transaction::getTransactionManager();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__Manager, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_delete_Manager(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:delete_Manager",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    delete arg1;
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_already_modified(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    coral::Property *arg3 = (coral::Property *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:Manager_already_modified",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_coral__Property,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)((coral::Transaction::Manager const *)arg1)->already_modified((coral::Element const *)arg2,(coral::Property const *)arg3);
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_isUndoOrRedo(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_isUndoOrRedo",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->isUndoOrRedo();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_addObserver(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_addObserver",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->addObserver(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_addBusyObserver(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_addBusyObserver",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->addBusyObserver(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_removeBusyObserver(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_removeBusyObserver",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->removeBusyObserver(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_removeObserver(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_removeObserver",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    arg2 = obj1;
    (arg1)->removeObserver(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_getAmountOfTransactions(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_getAmountOfTransactions",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Transaction::Manager const *)arg1)->getAmountOfTransactions();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_getCurrentTransactionPosition(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_getCurrentTransactionPosition",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (int)((coral::Transaction::Manager const *)arg1)->getCurrentTransactionPosition();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_getTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    int arg2 ;
    coral::Transaction::Transaction *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_getTransaction",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    result = (coral::Transaction::Transaction *)(arg1)->getTransaction(arg2);
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__Transaction, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_getCurrentTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    coral::Transaction::Transaction *result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_getCurrentTransaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (coral::Transaction::Transaction *)((coral::Transaction::Manager const *)arg1)->getCurrentTransaction();
    
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Transaction__Transaction, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_beginModifyCmd(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool arg2 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:Manager_beginModifyCmd",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    (arg1)->beginModifyCmd(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_endModifyCmd(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_endModifyCmd",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = (bool)(arg1)->endModifyCmd();
        
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_beginTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool arg2 = (bool) false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O|O:Manager_beginTransaction",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    if (obj1) {
        {
            arg2 = PyObject_IsTrue(obj1);
        }
    }
    (arg1)->beginTransaction(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_endTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_endTransaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->endTransaction();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_beginStrictTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_beginStrictTransaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->beginStrictTransaction();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_endStrictTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_endStrictTransaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->endStrictTransaction();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_isCreatingTransaction(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_isCreatingTransaction",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->isCreatingTransaction();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_getHistoryLimit(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_getHistoryLimit",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->getHistoryLimit();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_setHistoryLimit(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    int arg2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:Manager_setHistoryLimit",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    {
        arg2 = PyInt_AsLong(obj1);
    }
    (arg1)->setHistoryLimit(arg2);
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_trimPast(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_trimPast",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->trimPast();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_trimFuture(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_trimFuture",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->trimFuture();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_clear(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_clear",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->clear();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_canUndo(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_canUndo",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->canUndo();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_canRedo(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_canRedo",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    result = (bool)(arg1)->canRedo();
    
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_undo(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_undo",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->undo();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_Manager_redo(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Transaction::Manager *arg1 = (coral::Transaction::Manager *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:Manager_redo",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Transaction__Manager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    (arg1)->redo();
    
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * Manager_swigregister(PyObject *self, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_coral__Transaction__Manager, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_loadModel(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    char *arg1 ;
    coral::Language *arg2 = (coral::Language *) NULL ;
    coral::Element *result;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"s|O:loadModel",&arg1,&obj1)) goto fail;
    if (obj1) {
        if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    }
    try {
        result = (coral::Element *)coral::io::loadModel((char const *)arg1,arg2);
        
    }
    catch(coral::load_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::load_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_coral__Element, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_saveModel(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    char *arg1 ;
    coral::Element *arg2 = (coral::Element *) 0 ;
    char *arg3 = (char *) "1.2" ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"sO|s:saveModel",&arg1,&obj1,&arg3)) goto fail;
    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Element,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        coral::io::saveModel((char const *)arg1,arg2,(char const *)arg3);
        
    }
    catch(coral::save_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::save_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_loadDocument(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    char *arg1 ;
    coral::Language *arg2 = (coral::Language *) NULL ;
    coral::autounref<coral::Project > result;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"s|O:loadDocument",&arg1,&obj1)) goto fail;
    if (obj1) {
        if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_coral__Language,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    }
    try {
        result = coral::io::loadDocument((char const *)arg1,arg2);
        
    }
    catch(coral::load_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::load_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Project, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_loadDocument_str(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    char *arg1 ;
    coral::autounref<coral::Project > result;
    
    if(!PyArg_ParseTuple(args,(char *)"s:loadDocument_str",&arg1)) goto fail;
    try {
        result = coral::io::loadDocument_str((char const *)arg1);
        
    }
    catch(coral::load_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::load_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = SWIG_NewPointerObj((void *) result.get(), SWIGTYPE_p_coral__Project, 0);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_saveDocument(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Project *arg1 = (coral::Project *) 0 ;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"O:saveDocument",&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Project,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        coral::io::saveDocument(arg1);
        
    }
    catch(coral::save_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::save_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_saveDocument_str(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    coral::Collection *arg1 = (coral::Collection *) 0 ;
    char *arg2 ;
    std::string result;
    PyObject * obj0 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"Os:saveDocument_str",&obj0,&arg2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_coral__Collection,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
    try {
        result = coral::io::saveDocument_str((coral::Collection const *)arg1,(char const *)arg2);
        
    }
    catch(coral::save_error &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"coral::save_error");
            SWIG_fail;
        }
    }
    catch(std::exception &_e) {
        {
            PyErr_SetString(PyExc_RuntimeError,"std::exception");
            SWIG_fail;
        }
    }
    catch(...) {
        throw; 
    }
    {
        resultobj = PyString_FromString((&result)->c_str());
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_getSupportedXMIVersions(PyObject *self, PyObject *args) {
    PyObject *resultobj;
    std::vector<std::string > result;
    
    if(!PyArg_ParseTuple(args,(char *)":getSupportedXMIVersions")) goto fail;
    result = coral::io::getSupportedXMIVersions();
    
    {
        resultobj = PyList_New((&result)->size());
        if (!resultobj) {
            resultobj = Py_None;
            Py_INCREF(resultobj);
        }else {
            int pos = 0;
            for (std::vector<std::string>::const_iterator i = (&result)->begin();
            i != (&result)->end();
            ++i, ++pos) {
                PyObject* s = PyString_FromString((*i).c_str());
                if (!s) {
                    Py_DECREF(resultobj);
                    resultobj = Py_None;
                    Py_INCREF(resultobj);
                    break;
                }
                (void) PyList_SetItem(resultobj, pos, s);
            }
        }
    }
    return resultobj;
    fail:
    return NULL;
}


static PyMethodDef SwigMethods[] = {
	 { (char *)"new_ref_counted", _wrap_new_ref_counted, METH_VARARGS },
	 { (char *)"delete_ref_counted", _wrap_delete_ref_counted, METH_VARARGS },
	 { (char *)"ref_counted_ref", _wrap_ref_counted_ref, METH_VARARGS },
	 { (char *)"ref_counted_unref", _wrap_ref_counted_unref, METH_VARARGS },
	 { (char *)"ref_counted_get_ref_count", _wrap_ref_counted_get_ref_count, METH_VARARGS },
	 { (char *)"ref_counted_get_id", _wrap_ref_counted_get_id, METH_VARARGS },
	 { (char *)"ref_counted___eq__", _wrap_ref_counted___eq__, METH_VARARGS },
	 { (char *)"ref_counted___ne__", _wrap_ref_counted___ne__, METH_VARARGS },
	 { (char *)"ref_counted___hash__", _wrap_ref_counted___hash__, METH_VARARGS },
	 { (char *)"ref_counted_swigregister", ref_counted_swigregister, METH_VARARGS },
	 { (char *)"new_ModelFeatureIterator", _wrap_new_ModelFeatureIterator, METH_VARARGS },
	 { (char *)"delete_ModelFeatureIterator", _wrap_delete_ModelFeatureIterator, METH_VARARGS },
	 { (char *)"ModelFeatureIterator___iter__", _wrap_ModelFeatureIterator___iter__, METH_VARARGS },
	 { (char *)"ModelFeatureIterator_next", _wrap_ModelFeatureIterator_next, METH_VARARGS },
	 { (char *)"ModelFeatureIterator_swigregister", ModelFeatureIterator_swigregister, METH_VARARGS },
	 { (char *)"new_PropertyIterator", _wrap_new_PropertyIterator, METH_VARARGS },
	 { (char *)"delete_PropertyIterator", _wrap_delete_PropertyIterator, METH_VARARGS },
	 { (char *)"PropertyIterator___iter__", _wrap_PropertyIterator___iter__, METH_VARARGS },
	 { (char *)"PropertyIterator_next", _wrap_PropertyIterator_next, METH_VARARGS },
	 { (char *)"PropertyIterator_swigregister", PropertyIterator_swigregister, METH_VARARGS },
	 { (char *)"new_SuperClassesIterator", _wrap_new_SuperClassesIterator, METH_VARARGS },
	 { (char *)"delete_SuperClassesIterator", _wrap_delete_SuperClassesIterator, METH_VARARGS },
	 { (char *)"SuperClassesIterator___iter__", _wrap_SuperClassesIterator___iter__, METH_VARARGS },
	 { (char *)"SuperClassesIterator_next", _wrap_SuperClassesIterator_next, METH_VARARGS },
	 { (char *)"SuperClassesIterator_swigregister", SuperClassesIterator_swigregister, METH_VARARGS },
	 { (char *)"new_SubClassesIterator", _wrap_new_SubClassesIterator, METH_VARARGS },
	 { (char *)"delete_SubClassesIterator", _wrap_delete_SubClassesIterator, METH_VARARGS },
	 { (char *)"SubClassesIterator___iter__", _wrap_SubClassesIterator___iter__, METH_VARARGS },
	 { (char *)"SubClassesIterator_next", _wrap_SubClassesIterator_next, METH_VARARGS },
	 { (char *)"SubClassesIterator_swigregister", SubClassesIterator_swigregister, METH_VARARGS },
	 { (char *)"new_AllSuperClassesIterator", _wrap_new_AllSuperClassesIterator, METH_VARARGS },
	 { (char *)"delete_AllSuperClassesIterator", _wrap_delete_AllSuperClassesIterator, METH_VARARGS },
	 { (char *)"AllSuperClassesIterator___iter__", _wrap_AllSuperClassesIterator___iter__, METH_VARARGS },
	 { (char *)"AllSuperClassesIterator_next", _wrap_AllSuperClassesIterator_next, METH_VARARGS },
	 { (char *)"AllSuperClassesIterator_swigregister", AllSuperClassesIterator_swigregister, METH_VARARGS },
	 { (char *)"new_MDAEDIterator", _wrap_new_MDAEDIterator, METH_VARARGS },
	 { (char *)"delete_MDAEDIterator", _wrap_delete_MDAEDIterator, METH_VARARGS },
	 { (char *)"MDAEDIterator___iter__", _wrap_MDAEDIterator___iter__, METH_VARARGS },
	 { (char *)"MDAEDIterator_next", _wrap_MDAEDIterator_next, METH_VARARGS },
	 { (char *)"MDAEDIterator_swigregister", MDAEDIterator_swigregister, METH_VARARGS },
	 { (char *)"new_OperationsIterator", _wrap_new_OperationsIterator, METH_VARARGS },
	 { (char *)"delete_OperationsIterator", _wrap_delete_OperationsIterator, METH_VARARGS },
	 { (char *)"OperationsIterator___iter__", _wrap_OperationsIterator___iter__, METH_VARARGS },
	 { (char *)"OperationsIterator_next", _wrap_OperationsIterator_next, METH_VARARGS },
	 { (char *)"OperationsIterator_swigregister", OperationsIterator_swigregister, METH_VARARGS },
	 { (char *)"delete_Atom", _wrap_delete_Atom, METH_VARARGS },
	 { (char *)"Atom___type__", _wrap_Atom___type__, METH_VARARGS },
	 { (char *)"Atom___isPart__", _wrap_Atom___isPart__, METH_VARARGS },
	 { (char *)"Atom___str__", _wrap_Atom___str__, METH_VARARGS },
	 { (char *)"Atom___asSet__", _wrap_Atom___asSet__, METH_VARARGS },
	 { (char *)"Atom_oclIsKindOf", _wrap_Atom_oclIsKindOf, METH_VARARGS },
	 { (char *)"Atom___int__", _wrap_Atom___int__, METH_VARARGS },
	 { (char *)"Atom___long__", _wrap_Atom___long__, METH_VARARGS },
	 { (char *)"Atom___float__", _wrap_Atom___float__, METH_VARARGS },
	 { (char *)"Atom___getEValue__", _wrap_Atom___getEValue__, METH_VARARGS },
	 { (char *)"Atom___getEValueByName__", _wrap_Atom___getEValueByName__, METH_VARARGS },
	 { (char *)"Atom___setEValue__", _wrap_Atom___setEValue__, METH_VARARGS },
	 { (char *)"Atom___setEValueByName__", _wrap_Atom___setEValueByName__, METH_VARARGS },
	 { (char *)"Atom___getPyValue__", _wrap_Atom___getPyValue__, METH_VARARGS },
	 { (char *)"Atom___setPyValue__", _wrap_Atom___setPyValue__, METH_VARARGS },
	 { (char *)"Atom___getIValue__", _wrap_Atom___getIValue__, METH_VARARGS },
	 { (char *)"Atom___setIValue__", _wrap_Atom___setIValue__, METH_VARARGS },
	 { (char *)"Atom___getDValue__", _wrap_Atom___getDValue__, METH_VARARGS },
	 { (char *)"Atom___setDValue__", _wrap_Atom___setDValue__, METH_VARARGS },
	 { (char *)"Atom___setString__", _wrap_Atom___setString__, METH_VARARGS },
	 { (char *)"Atom___getString__", _wrap_Atom___getString__, METH_VARARGS },
	 { (char *)"Atom_swigregister", Atom_swigregister, METH_VARARGS },
	 { (char *)"new_Element", _wrap_new_Element, METH_VARARGS },
	 { (char *)"delete_Element", _wrap_delete_Element, METH_VARARGS },
	 { (char *)"Element___XMIid__", _wrap_Element___XMIid__, METH_VARARGS },
	 { (char *)"Element___resetXMIid__", _wrap_Element___resetXMIid__, METH_VARARGS },
	 { (char *)"Element___switchType__", _wrap_Element___switchType__, METH_VARARGS },
	 { (char *)"Element_isWellFormed", _wrap_Element_isWellFormed, METH_VARARGS },
	 { (char *)"Element_isWellFormedRecursive", _wrap_Element_isWellFormedRecursive, METH_VARARGS },
	 { (char *)"Element___parent__", _wrap_Element___parent__, METH_VARARGS },
	 { (char *)"Element___parentSlot__", _wrap_Element___parentSlot__, METH_VARARGS },
	 { (char *)"Element___getRoot__", _wrap_Element___getRoot__, METH_VARARGS },
	 { (char *)"Element___getAllParts__", _wrap_Element___getAllParts__, METH_VARARGS },
	 { (char *)"Element___getProject__", _wrap_Element___getProject__, METH_VARARGS },
	 { (char *)"Element___setProject__", _wrap_Element___setProject__, METH_VARARGS },
	 { (char *)"Element___getRootsProject__", _wrap_Element___getRootsProject__, METH_VARARGS },
	 { (char *)"Element___setXMIid__", _wrap_Element___setXMIid__, METH_VARARGS },
	 { (char *)"Element___hasSlotByName__", _wrap_Element___hasSlotByName__, METH_VARARGS },
	 { (char *)"Element___getSlotRO__", _wrap_Element___getSlotRO__, METH_VARARGS },
	 { (char *)"Element___getSlotByName__", _wrap_Element___getSlotByName__, METH_VARARGS },
	 { (char *)"Element___getSlotByOppositeName__", _wrap_Element___getSlotByOppositeName__, METH_VARARGS },
	 { (char *)"Element___getSlotByNameInsert__", _wrap_Element___getSlotByNameInsert__, METH_VARARGS },
	 { (char *)"Element___getSlotByNameInsertElement__", _wrap_Element___getSlotByNameInsertElement__, METH_VARARGS },
	 { (char *)"Element___getSlotOneElement__", _wrap_Element___getSlotOneElement__, METH_VARARGS },
	 { (char *)"Element___type__", _wrap_Element___type__, METH_VARARGS },
	 { (char *)"Element___isPart__", _wrap_Element___isPart__, METH_VARARGS },
	 { (char *)"Element___isConnectedTo__", _wrap_Element___isConnectedTo__, METH_VARARGS },
	 { (char *)"Element___resetAttrs__", _wrap_Element___resetAttrs__, METH_VARARGS },
	 { (char *)"Element___all_slots__", _wrap_Element___all_slots__, METH_VARARGS },
	 { (char *)"Element___properties__", _wrap_Element___properties__, METH_VARARGS },
	 { (char *)"Element_swigregister", Element_swigregister, METH_VARARGS },
	 { (char *)"Slot_getElement", _wrap_Slot_getElement, METH_VARARGS },
	 { (char *)"delete_Slot", _wrap_delete_Slot, METH_VARARGS },
	 { (char *)"Slot_clone", _wrap_Slot_clone, METH_VARARGS },
	 { (char *)"Slot_getCollection", _wrap_Slot_getCollection, METH_VARARGS },
	 { (char *)"Slot_getProperty", _wrap_Slot_getProperty, METH_VARARGS },
	 { (char *)"Slot___iter__", _wrap_Slot___iter__, METH_VARARGS },
	 { (char *)"Slot___getitem__", _wrap_Slot___getitem__, METH_VARARGS },
	 { (char *)"Slot___str__", _wrap_Slot___str__, METH_VARARGS },
	 { (char *)"Slot___setitem__", _wrap_Slot___setitem__, METH_VARARGS },
	 { (char *)"Slot___len__", _wrap_Slot___len__, METH_VARARGS },
	 { (char *)"Slot_size", _wrap_Slot_size, METH_VARARGS },
	 { (char *)"Slot_resetSlot", _wrap_Slot_resetSlot, METH_VARARGS },
	 { (char *)"Slot_insert", _wrap_Slot_insert, METH_VARARGS },
	 { (char *)"Slot_drop", _wrap_Slot_drop, METH_VARARGS },
	 { (char *)"Slot_remove", _wrap_Slot_remove, METH_VARARGS },
	 { (char *)"Slot_drop_index", _wrap_Slot_drop_index, METH_VARARGS },
	 { (char *)"Slot_add", _wrap_Slot_add, METH_VARARGS },
	 { (char *)"Slot_append", _wrap_Slot_append, METH_VARARGS },
	 { (char *)"Slot_swigregister", Slot_swigregister, METH_VARARGS },
	 { (char *)"delete_ElementPrimitive", _wrap_delete_ElementPrimitive, METH_VARARGS },
	 { (char *)"ElementPrimitive___type__", _wrap_ElementPrimitive___type__, METH_VARARGS },
	 { (char *)"ElementPrimitive_clone", _wrap_ElementPrimitive_clone, METH_VARARGS },
	 { (char *)"ElementPrimitive_reset", _wrap_ElementPrimitive_reset, METH_VARARGS },
	 { (char *)"ElementPrimitive_swapWithAtom", _wrap_ElementPrimitive_swapWithAtom, METH_VARARGS },
	 { (char *)"ElementPrimitive___eq__", _wrap_ElementPrimitive___eq__, METH_VARARGS },
	 { (char *)"ElementPrimitive___ne__", _wrap_ElementPrimitive___ne__, METH_VARARGS },
	 { (char *)"ElementPrimitive___lt__", _wrap_ElementPrimitive___lt__, METH_VARARGS },
	 { (char *)"ElementPrimitive___le__", _wrap_ElementPrimitive___le__, METH_VARARGS },
	 { (char *)"ElementPrimitive___gt__", _wrap_ElementPrimitive___gt__, METH_VARARGS },
	 { (char *)"ElementPrimitive___ge__", _wrap_ElementPrimitive___ge__, METH_VARARGS },
	 { (char *)"ElementPrimitive___len__", _wrap_ElementPrimitive___len__, METH_VARARGS },
	 { (char *)"ElementPrimitive___unicode__", _wrap_ElementPrimitive___unicode__, METH_VARARGS },
	 { (char *)"ElementPrimitive_swigregister", ElementPrimitive_swigregister, METH_VARARGS },
	 { (char *)"setCorrespondingElement", _wrap_setCorrespondingElement, METH_VARARGS },
	 { (char *)"Meta2ModelBridge_getCorrespondingElement", _wrap_Meta2ModelBridge_getCorrespondingElement, METH_VARARGS },
	 { (char *)"new_Meta2ModelBridge", _wrap_new_Meta2ModelBridge, METH_VARARGS },
	 { (char *)"delete_Meta2ModelBridge", _wrap_delete_Meta2ModelBridge, METH_VARARGS },
	 { (char *)"Meta2ModelBridge_swigregister", Meta2ModelBridge_swigregister, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_getOperation", _wrap_AbstractElementDefinition_getOperation, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_getAbstractElementDefinitionFromSMD", _wrap_AbstractElementDefinition_getAbstractElementDefinitionFromSMD, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___addOperation__", _wrap_AbstractElementDefinition___addOperation__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___removeOperation__", _wrap_AbstractElementDefinition___removeOperation__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___bindOperation__", _wrap_AbstractElementDefinition___bindOperation__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isAbstract", _wrap_AbstractElementDefinition_isAbstract, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_setAbstract", _wrap_AbstractElementDefinition_setAbstract, METH_VARARGS },
	 { (char *)"delete_AbstractElementDefinition", _wrap_delete_AbstractElementDefinition, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_getName", _wrap_AbstractElementDefinition_getName, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_addSubclass", _wrap_AbstractElementDefinition_addSubclass, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_addSuperclass", _wrap_AbstractElementDefinition_addSuperclass, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isDatatypeDefinition", _wrap_AbstractElementDefinition_isDatatypeDefinition, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isEnumerationDefinition", _wrap_AbstractElementDefinition_isEnumerationDefinition, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___package__", _wrap_AbstractElementDefinition___package__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___language__", _wrap_AbstractElementDefinition___language__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isRootDefinition", _wrap_AbstractElementDefinition_isRootDefinition, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isSubclass", _wrap_AbstractElementDefinition_isSubclass, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isProperSubclass", _wrap_AbstractElementDefinition_isProperSubclass, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___superclasses__", _wrap_AbstractElementDefinition___superclasses__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___all_superclasses__", _wrap_AbstractElementDefinition___all_superclasses__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___subclasses__", _wrap_AbstractElementDefinition___subclasses__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___operations__", _wrap_AbstractElementDefinition___operations__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_isPresentation", _wrap_AbstractElementDefinition_isPresentation, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_newAtom", _wrap_AbstractElementDefinition_newAtom, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_newElement", _wrap_AbstractElementDefinition_newElement, METH_VARARGS },
	 { (char *)"AbstractElementDefinition___str__", _wrap_AbstractElementDefinition___str__, METH_VARARGS },
	 { (char *)"AbstractElementDefinition_swigregister", AbstractElementDefinition_swigregister, METH_VARARGS },
	 { (char *)"inheritanceTree", _wrap_inheritanceTree, METH_VARARGS },
	 { (char *)"crossesPresentationLayer", _wrap_crossesPresentationLayer, METH_VARARGS },
	 { (char *)"ElementDefinition___propagateProperties", _wrap_ElementDefinition___propagateProperties, METH_VARARGS },
	 { (char *)"new_ElementDefinition", _wrap_new_ElementDefinition, METH_VARARGS },
	 { (char *)"delete_ElementDefinition", _wrap_delete_ElementDefinition, METH_VARARGS },
	 { (char *)"ElementDefinition_addProperty", _wrap_ElementDefinition_addProperty, METH_VARARGS },
	 { (char *)"ElementDefinition_addPropertyRecursive", _wrap_ElementDefinition_addPropertyRecursive, METH_VARARGS },
	 { (char *)"ElementDefinition_getPropertyByName", _wrap_ElementDefinition_getPropertyByName, METH_VARARGS },
	 { (char *)"ElementDefinition_getPropertyByOpposite", _wrap_ElementDefinition_getPropertyByOpposite, METH_VARARGS },
	 { (char *)"ElementDefinition_isMOFDatatype", _wrap_ElementDefinition_isMOFDatatype, METH_VARARGS },
	 { (char *)"ElementDefinition_setMOFDatatype", _wrap_ElementDefinition_setMOFDatatype, METH_VARARGS },
	 { (char *)"ElementDefinition___call__", _wrap_ElementDefinition___call__, METH_VARARGS },
	 { (char *)"ElementDefinition_isPresentation", _wrap_ElementDefinition_isPresentation, METH_VARARGS },
	 { (char *)"ElementDefinition___properties__", _wrap_ElementDefinition___properties__, METH_VARARGS },
	 { (char *)"ElementDefinition_swigregister", ElementDefinition_swigregister, METH_VARARGS },
	 { (char *)"delete_Property", _wrap_delete_Property, METH_VARARGS },
	 { (char *)"Property_getOwner", _wrap_Property_getOwner, METH_VARARGS },
	 { (char *)"Property_getROSlot", _wrap_Property_getROSlot, METH_VARARGS },
	 { (char *)"Property_getDefaultValue", _wrap_Property_getDefaultValue, METH_VARARGS },
	 { (char *)"Property_isMultSingle", _wrap_Property_isMultSingle, METH_VARARGS },
	 { (char *)"Property_isMultUnlimited", _wrap_Property_isMultUnlimited, METH_VARARGS },
	 { (char *)"Property_isAtMostOne", _wrap_Property_isAtMostOne, METH_VARARGS },
	 { (char *)"Property_isAtLeastOne", _wrap_Property_isAtLeastOne, METH_VARARGS },
	 { (char *)"Property_getMultLower", _wrap_Property_getMultLower, METH_VARARGS },
	 { (char *)"Property_getMultUpper", _wrap_Property_getMultUpper, METH_VARARGS },
	 { (char *)"Property_isOrdered", _wrap_Property_isOrdered, METH_VARARGS },
	 { (char *)"Property_isBag", _wrap_Property_isBag, METH_VARARGS },
	 { (char *)"Property_isBidirectional", _wrap_Property_isBidirectional, METH_VARARGS },
	 { (char *)"Property_isComposition", _wrap_Property_isComposition, METH_VARARGS },
	 { (char *)"Property_isAssociation", _wrap_Property_isAssociation, METH_VARARGS },
	 { (char *)"Property_isUnserializable", _wrap_Property_isUnserializable, METH_VARARGS },
	 { (char *)"Property_isAnonymous", _wrap_Property_isAnonymous, METH_VARARGS },
	 { (char *)"Property_getName", _wrap_Property_getName, METH_VARARGS },
	 { (char *)"Property_getTarget", _wrap_Property_getTarget, METH_VARARGS },
	 { (char *)"Property_getOppositeProperty", _wrap_Property_getOppositeProperty, METH_VARARGS },
	 { (char *)"new_Property", _wrap_new_Property, METH_VARARGS },
	 { (char *)"Property_swigregister", Property_swigregister, METH_VARARGS },
	 { (char *)"Package_getXMLNS", _wrap_Package_getXMLNS, METH_VARARGS },
	 { (char *)"Package_setXMLNS", _wrap_Package_setXMLNS, METH_VARARGS },
	 { (char *)"Package___elements__", _wrap_Package___elements__, METH_VARARGS },
	 { (char *)"Package___imported_elements__", _wrap_Package___imported_elements__, METH_VARARGS },
	 { (char *)"Package___language__", _wrap_Package___language__, METH_VARARGS },
	 { (char *)"new_Package", _wrap_new_Package, METH_VARARGS },
	 { (char *)"delete_Package", _wrap_delete_Package, METH_VARARGS },
	 { (char *)"Package_getElement", _wrap_Package_getElement, METH_VARARGS },
	 { (char *)"Package___getattr__", _wrap_Package___getattr__, METH_VARARGS },
	 { (char *)"Package_addElement", _wrap_Package_addElement, METH_VARARGS },
	 { (char *)"Package_removeElement", _wrap_Package_removeElement, METH_VARARGS },
	 { (char *)"Package_importElement", _wrap_Package_importElement, METH_VARARGS },
	 { (char *)"Package___getLanguageByXMLNS__", _wrap_Package___getLanguageByXMLNS__, METH_VARARGS },
	 { (char *)"Package_swigregister", Package_swigregister, METH_VARARGS },
	 { (char *)"new_Language", _wrap_new_Language, METH_VARARGS },
	 { (char *)"delete_Language", _wrap_delete_Language, METH_VARARGS },
	 { (char *)"Language_setRoot", _wrap_Language_setRoot, METH_VARARGS },
	 { (char *)"Language_getRoot", _wrap_Language_getRoot, METH_VARARGS },
	 { (char *)"Language_getVersion", _wrap_Language_getVersion, METH_VARARGS },
	 { (char *)"Language_getRevision", _wrap_Language_getRevision, METH_VARARGS },
	 { (char *)"Language___getLanguage__", _wrap_Language___getLanguage__, METH_VARARGS },
	 { (char *)"Language_swigregister", Language_swigregister, METH_VARARGS },
	 { (char *)"delete_Collection", _wrap_delete_Collection, METH_VARARGS },
	 { (char *)"Collection_isOrdered", _wrap_Collection_isOrdered, METH_VARARGS },
	 { (char *)"Collection_isBag", _wrap_Collection_isBag, METH_VARARGS },
	 { (char *)"Collection_size", _wrap_Collection_size, METH_VARARGS },
	 { (char *)"Collection___len__", _wrap_Collection___len__, METH_VARARGS },
	 { (char *)"Collection_isEmpty", _wrap_Collection_isEmpty, METH_VARARGS },
	 { (char *)"Collection___nonzero__", _wrap_Collection___nonzero__, METH_VARARGS },
	 { (char *)"Collection_nonEmpty", _wrap_Collection_nonEmpty, METH_VARARGS },
	 { (char *)"Collection_includes", _wrap_Collection_includes, METH_VARARGS },
	 { (char *)"Collection___contains__", _wrap_Collection___contains__, METH_VARARGS },
	 { (char *)"Collection_excludes", _wrap_Collection_excludes, METH_VARARGS },
	 { (char *)"Collection_count", _wrap_Collection_count, METH_VARARGS },
	 { (char *)"Collection_includesAll", _wrap_Collection_includesAll, METH_VARARGS },
	 { (char *)"Collection_excludesAll", _wrap_Collection_excludesAll, METH_VARARGS },
	 { (char *)"Collection_unionWith", _wrap_Collection_unionWith, METH_VARARGS },
	 { (char *)"Collection_intersectWith", _wrap_Collection_intersectWith, METH_VARARGS },
	 { (char *)"Collection_setDifference", _wrap_Collection_setDifference, METH_VARARGS },
	 { (char *)"Collection___iter__", _wrap_Collection___iter__, METH_VARARGS },
	 { (char *)"Collection_insert", _wrap_Collection_insert, METH_VARARGS },
	 { (char *)"Collection___getitem__", _wrap_Collection___getitem__, METH_VARARGS },
	 { (char *)"Collection___setitem__", _wrap_Collection___setitem__, METH_VARARGS },
	 { (char *)"Collection_remove_keepref", _wrap_Collection_remove_keepref, METH_VARARGS },
	 { (char *)"Collection_drop", _wrap_Collection_drop, METH_VARARGS },
	 { (char *)"Collection_add", _wrap_Collection_add, METH_VARARGS },
	 { (char *)"Collection_append", _wrap_Collection_append, METH_VARARGS },
	 { (char *)"Collection_drop_index", _wrap_Collection_drop_index, METH_VARARGS },
	 { (char *)"Collection_reset", _wrap_Collection_reset, METH_VARARGS },
	 { (char *)"Collection___str__", _wrap_Collection___str__, METH_VARARGS },
	 { (char *)"Collection___unicode__", _wrap_Collection___unicode__, METH_VARARGS },
	 { (char *)"Collection_newSimilarCollection", _wrap_Collection_newSimilarCollection, METH_VARARGS },
	 { (char *)"Collection_clone", _wrap_Collection_clone, METH_VARARGS },
	 { (char *)"Collection_newCollection", _wrap_Collection_newCollection, METH_VARARGS },
	 { (char *)"Collection_swigregister", Collection_swigregister, METH_VARARGS },
	 { (char *)"new_Bag", _wrap_new_Bag, METH_VARARGS },
	 { (char *)"delete_Bag", _wrap_delete_Bag, METH_VARARGS },
	 { (char *)"Bag_swigregister", Bag_swigregister, METH_VARARGS },
	 { (char *)"new_OrderedSet", _wrap_new_OrderedSet, METH_VARARGS },
	 { (char *)"delete_OrderedSet", _wrap_delete_OrderedSet, METH_VARARGS },
	 { (char *)"OrderedSet_swigregister", OrderedSet_swigregister, METH_VARARGS },
	 { (char *)"new_Sequence", _wrap_new_Sequence, METH_VARARGS },
	 { (char *)"delete_Sequence", _wrap_delete_Sequence, METH_VARARGS },
	 { (char *)"Sequence_swigregister", Sequence_swigregister, METH_VARARGS },
	 { (char *)"new_Set", _wrap_new_Set, METH_VARARGS },
	 { (char *)"delete_Set", _wrap_delete_Set, METH_VARARGS },
	 { (char *)"Set_swigregister", Set_swigregister, METH_VARARGS },
	 { (char *)"new_Iterator", _wrap_new_Iterator, METH_VARARGS },
	 { (char *)"delete_Iterator", _wrap_delete_Iterator, METH_VARARGS },
	 { (char *)"Iterator_next", _wrap_Iterator_next, METH_VARARGS },
	 { (char *)"Iterator___iter__", _wrap_Iterator___iter__, METH_VARARGS },
	 { (char *)"Iterator_swigregister", Iterator_swigregister, METH_VARARGS },
	 { (char *)"new_DatatypeDefinition", _wrap_new_DatatypeDefinition, METH_VARARGS },
	 { (char *)"delete_DatatypeDefinition", _wrap_delete_DatatypeDefinition, METH_VARARGS },
	 { (char *)"DatatypeDefinition_swigregister", DatatypeDefinition_swigregister, METH_VARARGS },
	 { (char *)"new_EnumerationDefinition", _wrap_new_EnumerationDefinition, METH_VARARGS },
	 { (char *)"delete_EnumerationDefinition", _wrap_delete_EnumerationDefinition, METH_VARARGS },
	 { (char *)"EnumerationDefinition___addEnum__", _wrap_EnumerationDefinition___addEnum__, METH_VARARGS },
	 { (char *)"EnumerationDefinition_getDescription", _wrap_EnumerationDefinition_getDescription, METH_VARARGS },
	 { (char *)"EnumerationDefinition_getIndexByDescription", _wrap_EnumerationDefinition_getIndexByDescription, METH_VARARGS },
	 { (char *)"EnumerationDefinition_size", _wrap_EnumerationDefinition_size, METH_VARARGS },
	 { (char *)"EnumerationDefinition_swigregister", EnumerationDefinition_swigregister, METH_VARARGS },
	 { (char *)"new_PyOperation", _wrap_new_PyOperation, METH_VARARGS },
	 { (char *)"delete_PyOperation", _wrap_delete_PyOperation, METH_VARARGS },
	 { (char *)"PyOperation_getFunc", _wrap_PyOperation_getFunc, METH_VARARGS },
	 { (char *)"PyOperation_isWFR", _wrap_PyOperation_isWFR, METH_VARARGS },
	 { (char *)"PyOperation_getFuncName", _wrap_PyOperation_getFuncName, METH_VARARGS },
	 { (char *)"PyOperation_getCode", _wrap_PyOperation_getCode, METH_VARARGS },
	 { (char *)"PyOperation___call__", _wrap_PyOperation___call__, METH_VARARGS },
	 { (char *)"PyOperation_getOperationLanguage", _wrap_PyOperation_getOperationLanguage, METH_VARARGS },
	 { (char *)"PyOperation_swigregister", PyOperation_swigregister, METH_VARARGS },
	 { (char *)"new_Project", _wrap_new_Project, METH_VARARGS },
	 { (char *)"delete_Project", _wrap_delete_Project, METH_VARARGS },
	 { (char *)"Project___str__", _wrap_Project___str__, METH_VARARGS },
	 { (char *)"Project_isInvalid", _wrap_Project_isInvalid, METH_VARARGS },
	 { (char *)"Project_isUserProject", _wrap_Project_isUserProject, METH_VARARGS },
	 { (char *)"Project_setUserProject", _wrap_Project_setUserProject, METH_VARARGS },
	 { (char *)"Project_invalidate", _wrap_Project_invalidate, METH_VARARGS },
	 { (char *)"Project_setInvalid", _wrap_Project_setInvalid, METH_VARARGS },
	 { (char *)"Project_getXMIFormat", _wrap_Project_getXMIFormat, METH_VARARGS },
	 { (char *)"Project_setXMIFormat", _wrap_Project_setXMIFormat, METH_VARARGS },
	 { (char *)"Project_contents", _wrap_Project_contents, METH_VARARGS },
	 { (char *)"Project_setFilename", _wrap_Project_setFilename, METH_VARARGS },
	 { (char *)"Project_getFilename", _wrap_Project_getFilename, METH_VARARGS },
	 { (char *)"Project_getHrefFilename", _wrap_Project_getHrefFilename, METH_VARARGS },
	 { (char *)"Project_getProjectByFilename", _wrap_Project_getProjectByFilename, METH_VARARGS },
	 { (char *)"Project_swigregister", Project_swigregister, METH_VARARGS },
	 { (char *)"getAllProjects", _wrap_getAllProjects, METH_VARARGS },
	 { (char *)"getCanonicalFilename", _wrap_getCanonicalFilename, METH_VARARGS },
	 { (char *)"getCoralPath", _wrap_getCoralPath, METH_VARARGS },
	 { (char *)"setCoralPath", _wrap_setCoralPath, METH_VARARGS },
	 { (char *)"addXMLNSRmap", _wrap_addXMLNSRmap, METH_VARARGS },
	 { (char *)"xmlns_db_size", _wrap_xmlns_db_size, METH_VARARGS },
	 { (char *)"xmlns_db_xmlns", _wrap_xmlns_db_xmlns, METH_VARARGS },
	 { (char *)"xmlns_db_filename", _wrap_xmlns_db_filename, METH_VARARGS },
	 { (char *)"xmlns_db_metamodelname", _wrap_xmlns_db_metamodelname, METH_VARARGS },
	 { (char *)"xmlns_db_version", _wrap_xmlns_db_version, METH_VARARGS },
	 { (char *)"xmlns_db_revision", _wrap_xmlns_db_revision, METH_VARARGS },
	 { (char *)"garbage_collect", _wrap_garbage_collect, METH_VARARGS },
	 { (char *)"ModelCopy", _wrap_ModelCopy, METH_VARARGS },
	 { (char *)"ModelCopy_One", _wrap_ModelCopy_One, METH_VARARGS },
	 { (char *)"isSameModel", _wrap_isSameModel, METH_VARARGS },
	 { (char *)"Element__getMyselfAndParents__", _wrap_Element__getMyselfAndParents__, METH_VARARGS },
	 { (char *)"Element__getParentsAndMyself__", _wrap_Element__getParentsAndMyself__, METH_VARARGS },
	 { (char *)"XMIDI_LocalToGlobalPosition", _wrap_XMIDI_LocalToGlobalPosition, METH_VARARGS },
	 { (char *)"XMIDI_GlobalToLocalPosition", _wrap_XMIDI_GlobalToLocalPosition, METH_VARARGS },
	 { (char *)"XMIDI_HasReferentialRole", _wrap_XMIDI_HasReferentialRole, METH_VARARGS },
	 { (char *)"XMIDI_find_property_upwards", _wrap_XMIDI_find_property_upwards, METH_VARARGS },
	 { (char *)"XMIDI_find_either_property_upwards", _wrap_XMIDI_find_either_property_upwards, METH_VARARGS },
	 { (char *)"ModelDifference", _wrap_ModelDifference, METH_VARARGS },
	 { (char *)"ModelDifference_One", _wrap_ModelDifference_One, METH_VARARGS },
	 { (char *)"smd2lang", _wrap_smd2lang, METH_VARARGS },
	 { (char *)"getDebugLog", _wrap_getDebugLog, METH_VARARGS },
	 { (char *)"setDebugObserver", _wrap_setDebugObserver, METH_VARARGS },
	 { (char *)"getUniqueID", _wrap_getUniqueID, METH_VARARGS },
	 { (char *)"new_Transaction", _wrap_new_Transaction, METH_VARARGS },
	 { (char *)"delete_Transaction", _wrap_delete_Transaction, METH_VARARGS },
	 { (char *)"Transaction___str__", _wrap_Transaction___str__, METH_VARARGS },
	 { (char *)"Transaction_size", _wrap_Transaction_size, METH_VARARGS },
	 { (char *)"Transaction___getitem__", _wrap_Transaction___getitem__, METH_VARARGS },
	 { (char *)"Transaction_swigregister", Transaction_swigregister, METH_VARARGS },
	 { (char *)"delete_Command", _wrap_delete_Command, METH_VARARGS },
	 { (char *)"Command___str__", _wrap_Command___str__, METH_VARARGS },
	 { (char *)"Command_execute", _wrap_Command_execute, METH_VARARGS },
	 { (char *)"Command_unexecute", _wrap_Command_unexecute, METH_VARARGS },
	 { (char *)"Command_swigregister", Command_swigregister, METH_VARARGS },
	 { (char *)"delete_ElementCommand", _wrap_delete_ElementCommand, METH_VARARGS },
	 { (char *)"ElementCommand_getAtom", _wrap_ElementCommand_getAtom, METH_VARARGS },
	 { (char *)"ElementCommand_swigregister", ElementCommand_swigregister, METH_VARARGS },
	 { (char *)"new_NewProjectCommand", _wrap_new_NewProjectCommand, METH_VARARGS },
	 { (char *)"delete_NewProjectCommand", _wrap_delete_NewProjectCommand, METH_VARARGS },
	 { (char *)"NewProjectCommand_getNewProject", _wrap_NewProjectCommand_getNewProject, METH_VARARGS },
	 { (char *)"NewProjectCommand_swigregister", NewProjectCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ProjectNameChangeCommand", _wrap_new_ProjectNameChangeCommand, METH_VARARGS },
	 { (char *)"delete_ProjectNameChangeCommand", _wrap_delete_ProjectNameChangeCommand, METH_VARARGS },
	 { (char *)"ProjectNameChangeCommand_getProject", _wrap_ProjectNameChangeCommand_getProject, METH_VARARGS },
	 { (char *)"ProjectNameChangeCommand_getOldFilename", _wrap_ProjectNameChangeCommand_getOldFilename, METH_VARARGS },
	 { (char *)"ProjectNameChangeCommand_getOldHrefFilename", _wrap_ProjectNameChangeCommand_getOldHrefFilename, METH_VARARGS },
	 { (char *)"ProjectNameChangeCommand_swigregister", ProjectNameChangeCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ProjectChangeCommand", _wrap_new_ProjectChangeCommand, METH_VARARGS },
	 { (char *)"delete_ProjectChangeCommand", _wrap_delete_ProjectChangeCommand, METH_VARARGS },
	 { (char *)"ProjectChangeCommand_getOldProject", _wrap_ProjectChangeCommand_getOldProject, METH_VARARGS },
	 { (char *)"ProjectChangeCommand_swigregister", ProjectChangeCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ChangeElementPrimitiveCommand", _wrap_new_ChangeElementPrimitiveCommand, METH_VARARGS },
	 { (char *)"delete_ChangeElementPrimitiveCommand", _wrap_delete_ChangeElementPrimitiveCommand, METH_VARARGS },
	 { (char *)"ChangeElementPrimitiveCommand_getNewAtom", _wrap_ChangeElementPrimitiveCommand_getNewAtom, METH_VARARGS },
	 { (char *)"ChangeElementPrimitiveCommand_swigregister", ChangeElementPrimitiveCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ElementChangeSlotCommand", _wrap_new_ElementChangeSlotCommand, METH_VARARGS },
	 { (char *)"delete_ElementChangeSlotCommand", _wrap_delete_ElementChangeSlotCommand, METH_VARARGS },
	 { (char *)"ElementChangeSlotCommand_getSlot", _wrap_ElementChangeSlotCommand_getSlot, METH_VARARGS },
	 { (char *)"ElementChangeSlotCommand_swigregister", ElementChangeSlotCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ElementNewCommand", _wrap_new_ElementNewCommand, METH_VARARGS },
	 { (char *)"delete_ElementNewCommand", _wrap_delete_ElementNewCommand, METH_VARARGS },
	 { (char *)"ElementNewCommand_getNewElement", _wrap_ElementNewCommand_getNewElement, METH_VARARGS },
	 { (char *)"ElementNewCommand_swigregister", ElementNewCommand_swigregister, METH_VARARGS },
	 { (char *)"new_ElementUUIDCommand", _wrap_new_ElementUUIDCommand, METH_VARARGS },
	 { (char *)"delete_ElementUUIDCommand", _wrap_delete_ElementUUIDCommand, METH_VARARGS },
	 { (char *)"ElementUUIDCommand_getOldXMIid", _wrap_ElementUUIDCommand_getOldXMIid, METH_VARARGS },
	 { (char *)"ElementUUIDCommand_swigregister", ElementUUIDCommand_swigregister, METH_VARARGS },
	 { (char *)"getTransactionManager", _wrap_getTransactionManager, METH_VARARGS },
	 { (char *)"delete_Manager", _wrap_delete_Manager, METH_VARARGS },
	 { (char *)"Manager_already_modified", _wrap_Manager_already_modified, METH_VARARGS },
	 { (char *)"Manager_isUndoOrRedo", _wrap_Manager_isUndoOrRedo, METH_VARARGS },
	 { (char *)"Manager_addObserver", _wrap_Manager_addObserver, METH_VARARGS },
	 { (char *)"Manager_addBusyObserver", _wrap_Manager_addBusyObserver, METH_VARARGS },
	 { (char *)"Manager_removeBusyObserver", _wrap_Manager_removeBusyObserver, METH_VARARGS },
	 { (char *)"Manager_removeObserver", _wrap_Manager_removeObserver, METH_VARARGS },
	 { (char *)"Manager_getAmountOfTransactions", _wrap_Manager_getAmountOfTransactions, METH_VARARGS },
	 { (char *)"Manager_getCurrentTransactionPosition", _wrap_Manager_getCurrentTransactionPosition, METH_VARARGS },
	 { (char *)"Manager_getTransaction", _wrap_Manager_getTransaction, METH_VARARGS },
	 { (char *)"Manager_getCurrentTransaction", _wrap_Manager_getCurrentTransaction, METH_VARARGS },
	 { (char *)"Manager_beginModifyCmd", _wrap_Manager_beginModifyCmd, METH_VARARGS },
	 { (char *)"Manager_endModifyCmd", _wrap_Manager_endModifyCmd, METH_VARARGS },
	 { (char *)"Manager_beginTransaction", _wrap_Manager_beginTransaction, METH_VARARGS },
	 { (char *)"Manager_endTransaction", _wrap_Manager_endTransaction, METH_VARARGS },
	 { (char *)"Manager_beginStrictTransaction", _wrap_Manager_beginStrictTransaction, METH_VARARGS },
	 { (char *)"Manager_endStrictTransaction", _wrap_Manager_endStrictTransaction, METH_VARARGS },
	 { (char *)"Manager_isCreatingTransaction", _wrap_Manager_isCreatingTransaction, METH_VARARGS },
	 { (char *)"Manager_getHistoryLimit", _wrap_Manager_getHistoryLimit, METH_VARARGS },
	 { (char *)"Manager_setHistoryLimit", _wrap_Manager_setHistoryLimit, METH_VARARGS },
	 { (char *)"Manager_trimPast", _wrap_Manager_trimPast, METH_VARARGS },
	 { (char *)"Manager_trimFuture", _wrap_Manager_trimFuture, METH_VARARGS },
	 { (char *)"Manager_clear", _wrap_Manager_clear, METH_VARARGS },
	 { (char *)"Manager_canUndo", _wrap_Manager_canUndo, METH_VARARGS },
	 { (char *)"Manager_canRedo", _wrap_Manager_canRedo, METH_VARARGS },
	 { (char *)"Manager_undo", _wrap_Manager_undo, METH_VARARGS },
	 { (char *)"Manager_redo", _wrap_Manager_redo, METH_VARARGS },
	 { (char *)"Manager_swigregister", Manager_swigregister, METH_VARARGS },
	 { (char *)"loadModel", _wrap_loadModel, METH_VARARGS },
	 { (char *)"saveModel", _wrap_saveModel, METH_VARARGS },
	 { (char *)"loadDocument", _wrap_loadDocument, METH_VARARGS },
	 { (char *)"loadDocument_str", _wrap_loadDocument_str, METH_VARARGS },
	 { (char *)"saveDocument", _wrap_saveDocument, METH_VARARGS },
	 { (char *)"saveDocument_str", _wrap_saveDocument_str, METH_VARARGS },
	 { (char *)"getSupportedXMIVersions", _wrap_getSupportedXMIVersions, METH_VARARGS },
	 { NULL, NULL }
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */

static void *_p_coral__LanguageTo_p_coral__Package(void *x) {
    return (void *)((coral::Package *)  ((coral::Language *) x));
}
static void *_p_coral__PackageTo_p_coral__AbstractElementDefinition(void *x) {
    return (void *)((coral::AbstractElementDefinition *)  ((coral::Package *) x));
}
static void *_p_coral__LanguageTo_p_coral__AbstractElementDefinition(void *x) {
    return (void *)((coral::AbstractElementDefinition *) (coral::Package *) ((coral::Language *) x));
}
static void *_p_coral__ElementDefinitionTo_p_coral__AbstractElementDefinition(void *x) {
    return (void *)((coral::AbstractElementDefinition *)  ((coral::ElementDefinition *) x));
}
static void *_p_coral__DatatypeDefinitionTo_p_coral__AbstractElementDefinition(void *x) {
    return (void *)((coral::AbstractElementDefinition *)  ((coral::DatatypeDefinition *) x));
}
static void *_p_coral__EnumerationDefinitionTo_p_coral__AbstractElementDefinition(void *x) {
    return (void *)((coral::AbstractElementDefinition *) (coral::DatatypeDefinition *) ((coral::EnumerationDefinition *) x));
}
static void *_p_coral__EnumerationDefinitionTo_p_coral__DatatypeDefinition(void *x) {
    return (void *)((coral::DatatypeDefinition *)  ((coral::EnumerationDefinition *) x));
}
static void *_p_coral__SequenceTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Collection *) ((coral::Sequence *) x));
}
static void *_p_coral__PackageTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *)(coral::AbstractElementDefinition *) ((coral::Package *) x));
}
static void *_p_coral__EnumerationDefinitionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *)(coral::AbstractElementDefinition *)(coral::DatatypeDefinition *) ((coral::EnumerationDefinition *) x));
}
static void *_p_coral__DatatypeDefinitionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *)(coral::AbstractElementDefinition *) ((coral::DatatypeDefinition *) x));
}
static void *_p_coral__AbstractElementDefinitionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *) ((coral::AbstractElementDefinition *) x));
}
static void *_p_coral__ElementDefinitionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *)(coral::AbstractElementDefinition *) ((coral::ElementDefinition *) x));
}
static void *_p_coral__PyOperationTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::PyOperation *) x));
}
static void *_p_coral__CollectionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Collection *) x));
}
static void *_p_coral__Meta2ModelBridgeTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Meta2ModelBridge *) x));
}
static void *_p_coral__IteratorTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Iterator *) x));
}
static void *_p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *)(coral::Transaction::ElementCommand *) ((coral::Transaction::ElementChangeSlotCommand *) x));
}
static void *_p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *)(coral::Transaction::ElementCommand *) ((coral::Transaction::ChangeElementPrimitiveCommand *) x));
}
static void *_p_coral__Transaction__ProjectChangeCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *)(coral::Transaction::ElementCommand *) ((coral::Transaction::ProjectChangeCommand *) x));
}
static void *_p_coral__Transaction__ProjectNameChangeCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *) ((coral::Transaction::ProjectNameChangeCommand *) x));
}
static void *_p_coral__Transaction__NewProjectCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *) ((coral::Transaction::NewProjectCommand *) x));
}
static void *_p_coral__Transaction__ElementCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *) ((coral::Transaction::ElementCommand *) x));
}
static void *_p_coral__Transaction__CommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Transaction::Command *) x));
}
static void *_p_coral__Transaction__ElementNewCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *)(coral::Transaction::ElementCommand *) ((coral::Transaction::ElementNewCommand *) x));
}
static void *_p_coral__Transaction__ElementUUIDCommandTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Transaction::Command *)(coral::Transaction::ElementCommand *) ((coral::Transaction::ElementUUIDCommand *) x));
}
static void *_p_coral__ElementPrimitiveTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Atom *) ((coral::ElementPrimitive *) x));
}
static void *_p_coral__LanguageTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *)(coral::AbstractElementDefinition *)(coral::Package *) ((coral::Language *) x));
}
static void *_p_coral__BagTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Collection *) ((coral::Bag *) x));
}
static void *_p_coral__OrderedSetTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Collection *) ((coral::OrderedSet *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *) x));
}
static void *_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *) x));
}
static void *_p_coral__PropertyTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Meta2ModelBridge *) ((coral::Property *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *) x));
}
static void *_p_coral__AtomTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Atom *) x));
}
static void *_p_coral__ElementTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Atom *) ((coral::Element *) x));
}
static void *_p_coral__SetTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *) (coral::Collection *) ((coral::Set *) x));
}
static void *_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *) x));
}
static void *_p_coral__Transaction__TransactionTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Transaction::Transaction *) x));
}
static void *_p_coral__ProjectTo_p_coral__ref_counted(void *x) {
    return (void *)((coral::ref_counted *)  ((coral::Project *) x));
}
static void *_p_coral__OrderedSetTo_p_coral__Collection(void *x) {
    return (void *)((coral::Collection *)  ((coral::OrderedSet *) x));
}
static void *_p_coral__SequenceTo_p_coral__Collection(void *x) {
    return (void *)((coral::Collection *)  ((coral::Sequence *) x));
}
static void *_p_coral__BagTo_p_coral__Collection(void *x) {
    return (void *)((coral::Collection *)  ((coral::Bag *) x));
}
static void *_p_coral__SetTo_p_coral__Collection(void *x) {
    return (void *)((coral::Collection *)  ((coral::Set *) x));
}
static void *_p_coral__PropertyTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *)  ((coral::Property *) x));
}
static void *_p_coral__PackageTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *) (coral::AbstractElementDefinition *) ((coral::Package *) x));
}
static void *_p_coral__LanguageTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *) (coral::AbstractElementDefinition *)(coral::Package *) ((coral::Language *) x));
}
static void *_p_coral__AbstractElementDefinitionTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *)  ((coral::AbstractElementDefinition *) x));
}
static void *_p_coral__ElementDefinitionTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *) (coral::AbstractElementDefinition *) ((coral::ElementDefinition *) x));
}
static void *_p_coral__DatatypeDefinitionTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *) (coral::AbstractElementDefinition *) ((coral::DatatypeDefinition *) x));
}
static void *_p_coral__EnumerationDefinitionTo_p_coral__Meta2ModelBridge(void *x) {
    return (void *)((coral::Meta2ModelBridge *) (coral::AbstractElementDefinition *)(coral::DatatypeDefinition *) ((coral::EnumerationDefinition *) x));
}
static void *_p_coral__Transaction__ElementCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *)  ((coral::Transaction::ElementCommand *) x));
}
static void *_p_coral__Transaction__NewProjectCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *)  ((coral::Transaction::NewProjectCommand *) x));
}
static void *_p_coral__Transaction__ProjectNameChangeCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *)  ((coral::Transaction::ProjectNameChangeCommand *) x));
}
static void *_p_coral__Transaction__ProjectChangeCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *) (coral::Transaction::ElementCommand *) ((coral::Transaction::ProjectChangeCommand *) x));
}
static void *_p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *) (coral::Transaction::ElementCommand *) ((coral::Transaction::ChangeElementPrimitiveCommand *) x));
}
static void *_p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *) (coral::Transaction::ElementCommand *) ((coral::Transaction::ElementChangeSlotCommand *) x));
}
static void *_p_coral__Transaction__ElementNewCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *) (coral::Transaction::ElementCommand *) ((coral::Transaction::ElementNewCommand *) x));
}
static void *_p_coral__Transaction__ElementUUIDCommandTo_p_coral__Transaction__Command(void *x) {
    return (void *)((coral::Transaction::Command *) (coral::Transaction::ElementCommand *) ((coral::Transaction::ElementUUIDCommand *) x));
}
static void *_p_coral__Transaction__ProjectChangeCommandTo_p_coral__Transaction__ElementCommand(void *x) {
    return (void *)((coral::Transaction::ElementCommand *)  ((coral::Transaction::ProjectChangeCommand *) x));
}
static void *_p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__Transaction__ElementCommand(void *x) {
    return (void *)((coral::Transaction::ElementCommand *)  ((coral::Transaction::ChangeElementPrimitiveCommand *) x));
}
static void *_p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__Transaction__ElementCommand(void *x) {
    return (void *)((coral::Transaction::ElementCommand *)  ((coral::Transaction::ElementChangeSlotCommand *) x));
}
static void *_p_coral__Transaction__ElementNewCommandTo_p_coral__Transaction__ElementCommand(void *x) {
    return (void *)((coral::Transaction::ElementCommand *)  ((coral::Transaction::ElementNewCommand *) x));
}
static void *_p_coral__Transaction__ElementUUIDCommandTo_p_coral__Transaction__ElementCommand(void *x) {
    return (void *)((coral::Transaction::ElementCommand *)  ((coral::Transaction::ElementUUIDCommand *) x));
}
static void *_p_coral__ElementTo_p_coral__Atom(void *x) {
    return (void *)((coral::Atom *)  ((coral::Element *) x));
}
static void *_p_coral__ElementPrimitiveTo_p_coral__Atom(void *x) {
    return (void *)((coral::Atom *)  ((coral::ElementPrimitive *) x));
}
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t", 0, "PythonSequenceIteratorDirect<coral::AbstractElementDefinition::operations_type::iterator,coral::PyOperation * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t", 0, "PythonSequenceIteratorDirect<coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator,coral::AbstractElementDefinition * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t", 0, "PythonSequenceIteratorDirect<coral::AbstractElementDefinition::subclasses_type::iterator,coral::AbstractElementDefinition * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t", 0, "PythonSequenceIteratorDirect<coral::AbstractElementDefinition::superclasses_type::iterator,coral::AbstractElementDefinition * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t"},{0}};
static swig_type_info _swigt__p_coral__Package[] = {{"_p_coral__Package", 0, "coral::Package *", 0},{"_p_coral__Package"},{"_p_coral__Language", _p_coral__LanguageTo_p_coral__Package},{0}};
static swig_type_info _swigt__p_coral__Sequence[] = {{"_p_coral__Sequence", 0, "coral::Sequence *", 0},{"_p_coral__Sequence"},{0}};
static swig_type_info _swigt__p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator[] = {{"_p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator", 0, "coral::AbstractElementDefinition::topologic_all_superclasses_type::iterator *", 0},{"_p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator"},{0}};
static swig_type_info _swigt__p_coral__AbstractElementDefinition__superclasses_type__iterator[] = {{"_p_coral__AbstractElementDefinition__superclasses_type__iterator", 0, "coral::AbstractElementDefinition::superclasses_type::iterator *", 0},{"_p_coral__AbstractElementDefinition__superclasses_type__iterator"},{0}};
static swig_type_info _swigt__p_coral__Slot[] = {{"_p_coral__Slot", 0, "coral::Slot *", 0},{"_p_coral__Slot"},{0}};
static swig_type_info _swigt__p_coral__Atom[] = {{"_p_coral__Atom", 0, "coral::Atom *", 0},{"_p_coral__Element", _p_coral__ElementTo_p_coral__Atom},{"_p_coral__ElementPrimitive", _p_coral__ElementPrimitiveTo_p_coral__Atom},{"_p_coral__Atom"},{0}};
static swig_type_info _swigt__p_bool[] = {{"_p_bool", 0, "bool *", 0},{"_p_bool"},{0}};
static swig_type_info _swigt__p_coral__ElementDefinition[] = {{"_p_coral__ElementDefinition", 0, "coral::ElementDefinition *", 0},{"_p_coral__ElementDefinition"},{0}};
static swig_type_info _swigt__p_coral__AbstractElementDefinition[] = {{"_p_coral__AbstractElementDefinition", 0, "coral::AbstractElementDefinition *", 0},{"_p_coral__Package", _p_coral__PackageTo_p_coral__AbstractElementDefinition},{"_p_coral__Language", _p_coral__LanguageTo_p_coral__AbstractElementDefinition},{"_p_coral__AbstractElementDefinition"},{"_p_coral__ElementDefinition", _p_coral__ElementDefinitionTo_p_coral__AbstractElementDefinition},{"_p_coral__DatatypeDefinition", _p_coral__DatatypeDefinitionTo_p_coral__AbstractElementDefinition},{"_p_coral__EnumerationDefinition", _p_coral__EnumerationDefinitionTo_p_coral__AbstractElementDefinition},{0}};
static swig_type_info _swigt__p_coral__DatatypeDefinition[] = {{"_p_coral__DatatypeDefinition", 0, "coral::DatatypeDefinition *", 0},{"_p_coral__DatatypeDefinition"},{"_p_coral__EnumerationDefinition", _p_coral__EnumerationDefinitionTo_p_coral__DatatypeDefinition},{0}};
static swig_type_info _swigt__p_coral__EnumerationDefinition[] = {{"_p_coral__EnumerationDefinition", 0, "coral::EnumerationDefinition *", 0},{"_p_coral__EnumerationDefinition"},{0}};
static swig_type_info _swigt__p_coral__PyOperation[] = {{"_p_coral__PyOperation", 0, "coral::PyOperation *", 0},{"_p_coral__PyOperation"},{0}};
static swig_type_info _swigt__p_coral__ref_counted[] = {{"_p_coral__ref_counted", 0, "coral::ref_counted *", 0},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t", _p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_tTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t", _p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t", _p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t", _p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted},{"_p_coral__Sequence", _p_coral__SequenceTo_p_coral__ref_counted},{"_p_coral__Package", _p_coral__PackageTo_p_coral__ref_counted},{"_p_coral__Atom", _p_coral__AtomTo_p_coral__ref_counted},{"_p_coral__ElementDefinition", _p_coral__ElementDefinitionTo_p_coral__ref_counted},{"_p_coral__EnumerationDefinition", _p_coral__EnumerationDefinitionTo_p_coral__ref_counted},{"_p_coral__DatatypeDefinition", _p_coral__DatatypeDefinitionTo_p_coral__ref_counted},{"_p_coral__AbstractElementDefinition", _p_coral__AbstractElementDefinitionTo_p_coral__ref_counted},{"_p_coral__PyOperation", _p_coral__PyOperationTo_p_coral__ref_counted},{"_p_coral__ref_counted"},{"_p_coral__Transaction__ChangeElementPrimitiveCommand", _p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__ref_counted},{"_p_coral__Collection", _p_coral__CollectionTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t", _p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_tTo_p_coral__ref_counted},{"_p_coral__Meta2ModelBridge", _p_coral__Meta2ModelBridgeTo_p_coral__ref_counted},{"_p_coral__Iterator", _p_coral__IteratorTo_p_coral__ref_counted},{"_p_coral__Transaction__ProjectNameChangeCommand", _p_coral__Transaction__ProjectNameChangeCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__NewProjectCommand", _p_coral__Transaction__NewProjectCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__ElementChangeSlotCommand", _p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__ProjectChangeCommand", _p_coral__Transaction__ProjectChangeCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__ElementCommand", _p_coral__Transaction__ElementCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__Command", _p_coral__Transaction__CommandTo_p_coral__ref_counted},{"_p_coral__Transaction__ElementNewCommand", _p_coral__Transaction__ElementNewCommandTo_p_coral__ref_counted},{"_p_coral__Transaction__ElementUUIDCommand", _p_coral__Transaction__ElementUUIDCommandTo_p_coral__ref_counted},{"_p_coral__ElementPrimitive", _p_coral__ElementPrimitiveTo_p_coral__ref_counted},{"_p_coral__Language", _p_coral__LanguageTo_p_coral__ref_counted},{"_p_coral__OrderedSet", _p_coral__OrderedSetTo_p_coral__ref_counted},{"_p_coral__Bag", _p_coral__BagTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t", _p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_tTo_p_coral__ref_counted},{"_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t", _p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_tTo_p_coral__ref_counted},{"_p_coral__Property", _p_coral__PropertyTo_p_coral__ref_counted},{"_p_coral__Element", _p_coral__ElementTo_p_coral__ref_counted},{"_p_coral__Set", _p_coral__SetTo_p_coral__ref_counted},{"_p_coral__Transaction__Transaction", _p_coral__Transaction__TransactionTo_p_coral__ref_counted},{"_p_coral__Project", _p_coral__ProjectTo_p_coral__ref_counted},{0}};
static swig_type_info _swigt__p_coral__Transaction__ChangeElementPrimitiveCommand[] = {{"_p_coral__Transaction__ChangeElementPrimitiveCommand", 0, "coral::Transaction::ChangeElementPrimitiveCommand *", 0},{"_p_coral__Transaction__ChangeElementPrimitiveCommand"},{0}};
static swig_type_info _swigt__p_coral__Collection[] = {{"_p_coral__Collection", 0, "coral::Collection *", 0},{"_p_coral__OrderedSet", _p_coral__OrderedSetTo_p_coral__Collection},{"_p_coral__Bag", _p_coral__BagTo_p_coral__Collection},{"_p_coral__Set", _p_coral__SetTo_p_coral__Collection},{"_p_coral__Sequence", _p_coral__SequenceTo_p_coral__Collection},{"_p_coral__Collection"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t", 0, "PythonSequenceIteratorDirect<coral::Package::elements_type::iterator,coral::AbstractElementDefinition * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t"},{0}};
static swig_type_info _swigt__p_coral__Meta2ModelBridge[] = {{"_p_coral__Meta2ModelBridge", 0, "coral::Meta2ModelBridge *", 0},{"_p_coral__Property", _p_coral__PropertyTo_p_coral__Meta2ModelBridge},{"_p_coral__Package", _p_coral__PackageTo_p_coral__Meta2ModelBridge},{"_p_coral__Meta2ModelBridge"},{"_p_coral__Language", _p_coral__LanguageTo_p_coral__Meta2ModelBridge},{"_p_coral__AbstractElementDefinition", _p_coral__AbstractElementDefinitionTo_p_coral__Meta2ModelBridge},{"_p_coral__ElementDefinition", _p_coral__ElementDefinitionTo_p_coral__Meta2ModelBridge},{"_p_coral__DatatypeDefinition", _p_coral__DatatypeDefinitionTo_p_coral__Meta2ModelBridge},{"_p_coral__EnumerationDefinition", _p_coral__EnumerationDefinitionTo_p_coral__Meta2ModelBridge},{0}};
static swig_type_info _swigt__p_coral__Iterator[] = {{"_p_coral__Iterator", 0, "coral::Iterator *", 0},{"_p_coral__Iterator"},{0}};
static swig_type_info _swigt__p_coral__Package__elements_type__iterator[] = {{"_p_coral__Package__elements_type__iterator", 0, "coral::Package::elements_type::iterator *", 0},{"_p_coral__Package__elements_type__iterator"},{0}};
static swig_type_info _swigt__p_coral__Element__slots_type__iterator[] = {{"_p_coral__Element__slots_type__iterator", 0, "coral::Element::slots_type::iterator *", 0},{"_p_coral__Element__slots_type__iterator"},{0}};
static swig_type_info _swigt__p_coral__Transaction__Command[] = {{"_p_coral__Transaction__Command", 0, "coral::Transaction::Command *", 0},{"_p_coral__Transaction__Command"},{"_p_coral__Transaction__ElementCommand", _p_coral__Transaction__ElementCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ProjectChangeCommand", _p_coral__Transaction__ProjectChangeCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ChangeElementPrimitiveCommand", _p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ElementChangeSlotCommand", _p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ElementNewCommand", _p_coral__Transaction__ElementNewCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ElementUUIDCommand", _p_coral__Transaction__ElementUUIDCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__NewProjectCommand", _p_coral__Transaction__NewProjectCommandTo_p_coral__Transaction__Command},{"_p_coral__Transaction__ProjectNameChangeCommand", _p_coral__Transaction__ProjectNameChangeCommandTo_p_coral__Transaction__Command},{0}};
static swig_type_info _swigt__p_coral__Transaction__ElementCommand[] = {{"_p_coral__Transaction__ElementCommand", 0, "coral::Transaction::ElementCommand *", 0},{"_p_coral__Transaction__ElementCommand"},{"_p_coral__Transaction__ProjectChangeCommand", _p_coral__Transaction__ProjectChangeCommandTo_p_coral__Transaction__ElementCommand},{"_p_coral__Transaction__ChangeElementPrimitiveCommand", _p_coral__Transaction__ChangeElementPrimitiveCommandTo_p_coral__Transaction__ElementCommand},{"_p_coral__Transaction__ElementChangeSlotCommand", _p_coral__Transaction__ElementChangeSlotCommandTo_p_coral__Transaction__ElementCommand},{"_p_coral__Transaction__ElementNewCommand", _p_coral__Transaction__ElementNewCommandTo_p_coral__Transaction__ElementCommand},{"_p_coral__Transaction__ElementUUIDCommand", _p_coral__Transaction__ElementUUIDCommandTo_p_coral__Transaction__ElementCommand},{0}};
static swig_type_info _swigt__p_coral__unicodestring[] = {{"_p_coral__unicodestring", 0, "coral::unicodestring *", 0},{"_p_coral__unicodestring"},{0}};
static swig_type_info _swigt__p_coral__Transaction__NewProjectCommand[] = {{"_p_coral__Transaction__NewProjectCommand", 0, "coral::Transaction::NewProjectCommand *", 0},{"_p_coral__Transaction__NewProjectCommand"},{0}};
static swig_type_info _swigt__p_coral__Transaction__ProjectNameChangeCommand[] = {{"_p_coral__Transaction__ProjectNameChangeCommand", 0, "coral::Transaction::ProjectNameChangeCommand *", 0},{"_p_coral__Transaction__ProjectNameChangeCommand"},{0}};
static swig_type_info _swigt__p_coral__Transaction__ProjectChangeCommand[] = {{"_p_coral__Transaction__ProjectChangeCommand", 0, "coral::Transaction::ProjectChangeCommand *", 0},{"_p_coral__Transaction__ProjectChangeCommand"},{0}};
static swig_type_info _swigt__p_coral__Transaction__ElementChangeSlotCommand[] = {{"_p_coral__Transaction__ElementChangeSlotCommand", 0, "coral::Transaction::ElementChangeSlotCommand *", 0},{"_p_coral__Transaction__ElementChangeSlotCommand"},{0}};
static swig_type_info _swigt__p_coral__Transaction__ElementNewCommand[] = {{"_p_coral__Transaction__ElementNewCommand", 0, "coral::Transaction::ElementNewCommand *", 0},{"_p_coral__Transaction__ElementNewCommand"},{0}};
static swig_type_info _swigt__p_coral__Transaction__ElementUUIDCommand[] = {{"_p_coral__Transaction__ElementUUIDCommand", 0, "coral::Transaction::ElementUUIDCommand *", 0},{"_p_coral__Transaction__ElementUUIDCommand"},{0}};
static swig_type_info _swigt__p_coral__AbstractElementDefinition__operations_type__iterator[] = {{"_p_coral__AbstractElementDefinition__operations_type__iterator", 0, "coral::AbstractElementDefinition::operations_type::iterator *", 0},{"_p_coral__AbstractElementDefinition__operations_type__iterator"},{0}};
static swig_type_info _swigt__p_coral__ElementDefinition__ordered_properties_type__const_iterator[] = {{"_p_coral__ElementDefinition__ordered_properties_type__const_iterator", 0, "coral::ElementDefinition::ordered_properties_type::const_iterator *", 0},{"_p_coral__ElementDefinition__ordered_properties_type__const_iterator"},{0}};
static swig_type_info _swigt__p_coral__ElementPrimitive[] = {{"_p_coral__ElementPrimitive", 0, "coral::ElementPrimitive *", 0},{"_p_coral__ElementPrimitive"},{0}};
static swig_type_info _swigt__p_coral__Language[] = {{"_p_coral__Language", 0, "coral::Language *", 0},{"_p_coral__Language"},{0}};
static swig_type_info _swigt__p_coral__Bag[] = {{"_p_coral__Bag", 0, "coral::Bag *", 0},{"_p_coral__Bag"},{0}};
static swig_type_info _swigt__p_coral__OrderedSet[] = {{"_p_coral__OrderedSet", 0, "coral::OrderedSet *", 0},{"_p_coral__OrderedSet"},{0}};
static swig_type_info _swigt__p_std__auto_ptrTcoral__Slot_t[] = {{"_p_std__auto_ptrTcoral__Slot_t", 0, "std::auto_ptr<coral::Slot > *", 0},{"_p_std__auto_ptrTcoral__Slot_t"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t[] = {{"_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t", 0, "PythonSequenceIteratorDirect<coral::ElementDefinition::ordered_properties_type::const_iterator,coral::Property * > *", 0},{"_p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t"},{0}};
static swig_type_info _swigt__p_coral__AbstractElementDefinition__subclasses_type__iterator[] = {{"_p_coral__AbstractElementDefinition__subclasses_type__iterator", 0, "coral::AbstractElementDefinition::subclasses_type::iterator *", 0},{"_p_coral__AbstractElementDefinition__subclasses_type__iterator"},{0}};
static swig_type_info _swigt__p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t[] = {{"_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t", 0, "PythonSequenceIteratorSecond<coral::Element::slots_type::iterator,coral::Slot * > *", 0},{"_p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t"},{0}};
static swig_type_info _swigt__p_coral__Property[] = {{"_p_coral__Property", 0, "coral::Property *", 0},{"_p_coral__Property"},{0}};
static swig_type_info _swigt__p_std__locale[] = {{"_p_std__locale", 0, "std::locale *", 0},{"_p_std__locale"},{0}};
static swig_type_info _swigt__p_coral__Element[] = {{"_p_coral__Element", 0, "coral::Element *", 0},{"_p_coral__Element"},{0}};
static swig_type_info _swigt__p_coral__Set[] = {{"_p_coral__Set", 0, "coral::Set *", 0},{"_p_coral__Set"},{0}};
static swig_type_info _swigt__p_coral__Transaction__Transaction[] = {{"_p_coral__Transaction__Transaction", 0, "coral::Transaction::Transaction *", 0},{"_p_coral__Transaction__Transaction"},{0}};
static swig_type_info _swigt__p_coral__Project[] = {{"_p_coral__Project", 0, "coral::Project *", 0},{"_p_coral__Project"},{0}};
static swig_type_info _swigt__p_std__vectorTstd__string_t[] = {{"_p_std__vectorTstd__string_t", 0, "std::vector<std::string > *", 0},{"_p_std__vectorTstd__string_t"},{0}};
static swig_type_info _swigt__p_coral__Transaction__Manager[] = {{"_p_coral__Transaction__Manager", 0, "coral::Transaction::Manager *", 0},{"_p_coral__Transaction__Manager"},{0}};

static swig_type_info *swig_types_initial[] = {
_swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__operations_type__iterator_coral__PyOperation_p_t, 
_swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__topologic_all_superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 
_swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__subclasses_type__iterator_coral__AbstractElementDefinition_p_t, 
_swigt__p_PythonSequenceIteratorDirectTcoral__AbstractElementDefinition__superclasses_type__iterator_coral__AbstractElementDefinition_p_t, 
_swigt__p_coral__Package, 
_swigt__p_coral__Sequence, 
_swigt__p_coral__AbstractElementDefinition__topologic_all_superclasses_type__iterator, 
_swigt__p_coral__AbstractElementDefinition__superclasses_type__iterator, 
_swigt__p_coral__Slot, 
_swigt__p_coral__Atom, 
_swigt__p_bool, 
_swigt__p_coral__ElementDefinition, 
_swigt__p_coral__AbstractElementDefinition, 
_swigt__p_coral__DatatypeDefinition, 
_swigt__p_coral__EnumerationDefinition, 
_swigt__p_coral__PyOperation, 
_swigt__p_coral__ref_counted, 
_swigt__p_coral__Transaction__ChangeElementPrimitiveCommand, 
_swigt__p_coral__Collection, 
_swigt__p_PythonSequenceIteratorDirectTcoral__Package__elements_type__iterator_coral__AbstractElementDefinition_p_t, 
_swigt__p_coral__Meta2ModelBridge, 
_swigt__p_coral__Iterator, 
_swigt__p_coral__Package__elements_type__iterator, 
_swigt__p_coral__Element__slots_type__iterator, 
_swigt__p_coral__Transaction__Command, 
_swigt__p_coral__Transaction__ElementCommand, 
_swigt__p_coral__unicodestring, 
_swigt__p_coral__Transaction__NewProjectCommand, 
_swigt__p_coral__Transaction__ProjectNameChangeCommand, 
_swigt__p_coral__Transaction__ProjectChangeCommand, 
_swigt__p_coral__Transaction__ElementChangeSlotCommand, 
_swigt__p_coral__Transaction__ElementNewCommand, 
_swigt__p_coral__Transaction__ElementUUIDCommand, 
_swigt__p_coral__AbstractElementDefinition__operations_type__iterator, 
_swigt__p_coral__ElementDefinition__ordered_properties_type__const_iterator, 
_swigt__p_coral__ElementPrimitive, 
_swigt__p_coral__Language, 
_swigt__p_coral__Bag, 
_swigt__p_coral__OrderedSet, 
_swigt__p_std__auto_ptrTcoral__Slot_t, 
_swigt__p_PythonSequenceIteratorDirectTcoral__ElementDefinition__ordered_properties_type__const_iterator_coral__Property_p_t, 
_swigt__p_coral__AbstractElementDefinition__subclasses_type__iterator, 
_swigt__p_PythonSequenceIteratorSecondTcoral__Element__slots_type__iterator_coral__Slot_p_t, 
_swigt__p_coral__Property, 
_swigt__p_std__locale, 
_swigt__p_coral__Element, 
_swigt__p_coral__Set, 
_swigt__p_coral__Transaction__Transaction, 
_swigt__p_coral__Project, 
_swigt__p_std__vectorTstd__string_t, 
_swigt__p_coral__Transaction__Manager, 
0
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */

static swig_const_info swig_const_table[] = {
{0}};

#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) SWIG_init(void) {
    static PyObject *SWIG_globals = 0; 
    static int       typeinit = 0;
    PyObject *m, *d;
    int       i;
    if (!SWIG_globals) SWIG_globals = SWIG_newvarlink();
    m = Py_InitModule((char *) SWIG_name, SwigMethods);
    d = PyModule_GetDict(m);
    
    if (!typeinit) {
        for (i = 0; swig_types_initial[i]; i++) {
            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
        }
        typeinit = 1;
    }
    SWIG_InstallConstants(d,swig_const_table);
    
    
    coral::init_coral_framework();
    
    PyDict_SetItemString(d,(char*)"cvar", SWIG_globals);
    SWIG_addvarlink(SWIG_globals,(char*)"clocale",_wrap_clocale_get, _wrap_clocale_set);
}

