* Manage not empty constructors
* Manage objects
* Manage enums
* When an error occurs (exception or exist), we should, before "leaving", clean up all the variable (we could store all the current variable in the list to be able to retrieve them quickly)

* When returning an array of primitive types, we do :

jsize len = curEnv->GetArrayLength(res);
jboolean isCopy = JNI_TRUE;
jint *resultsArray = curEnv->GetIntArrayElements(res, &isCopy);
long * myArray=(long *)malloc(sizeof(long *)*len);
for (jsize i = 0; i < len; i++){
	myArray[i]=resultsArray[i];
}
return myArray;
There is probably a much better way to do it
