/* Copyright (c) 2015,2016 Sequence Logic Inc. All rights reserved * * SWIG interface for converting between std::vector and com.sequencelogic.cppcore.client.Collaborator [] * */ %typemap(jni) std::vector &, std::vector & "jobjectArray" %typemap(jtype) std::vector &, std::vector & "com.sequencelogic.cppcore.client.Collaborator [][]" %typemap(jstype) std::vector &, std::vector & "com.sequencelogic.cppcore.client.Collaborator [][]" %typemap(javain) std::vector &, std::vector & "$javainput" /* Convert from com.sequencelogic.cppcore.client.Collaborator [] to std::vector */ %typemap(in) std::vector &, std::vector & { $1 = new std::vector(); if (!$input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: NULL com/ionu/ionuSamd/client/Collaborator [][]"); return $null; } if (jenv->GetArrayLength($input) == 0) { SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "In sequencelogic-collaborator.i: Array must contain at least 1 element"); return $null; } jclass jCollabObjClazz = jenv->FindClass("com/sequencelogic/cppcore/client/Collaborator"); if (jCollabObjClazz == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find class 'com/sequencelogic/cppcore/client/Collaborator'"); return $null; } jmethodID jGetCollabJSON = jenv->GetMethodID(jCollabObjClazz, "getAsJsonUpload", "()Lorg/json/JSONObject;"); if (jGetCollabJSON == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find getAsJsonUpload taking a in 'com/sequencelogic/cppcore/client/Collaborator'"); return $null; } jobjectArray tmpJObjArray = static_cast(jenv->GetObjectArrayElement($input, 0)); if (tmpJObjArray != 0) { unsigned int nSize = static_cast(jenv->GetArrayLength(tmpJObjArray)); jmethodID toStringID = 0; for (unsigned int i = 0; i < nSize; ++i) { jobject tmpCollabObject = static_cast(jenv->GetObjectArrayElement(tmpJObjArray, i)); if (tmpCollabObject == 0) continue; jobject tmpJObject = static_cast(jenv->CallObjectMethod(tmpCollabObject, jGetCollabJSON)); if (tmpJObject == 0) continue; if (toStringID == 0) { jclass jObjClazz = jenv->GetObjectClass(tmpJObject); toStringID = jenv->GetMethodID(jObjClazz, "toString", "()Ljava/lang/String;"); } jstring jsonObjStr = static_cast(jenv->CallObjectMethod(tmpJObject, toStringID)); const char *pCJsonStr = jenv->GetStringUTFChars(jsonObjStr, 0); $1->push_back(Collaborator(JSONObject(pCJsonStr))); jenv->ReleaseStringUTFChars(jsonObjStr, pCJsonStr); } } } %typemap(freearg) std::vector &, std::vector & { delete $1; } /* Convert from std::vector to com.sequencelogic.cppcore.client.Collaborator [] */ %typemap(argout) std::vector &, std::vector & { // Convert from $1 to $input if ($1->size() > 0) { jclass jCollabObjClazz = jenv->FindClass("com/sequencelogic/cppcore/client/Collaborator"); if (jCollabObjClazz == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find class 'com/sequencelogic/cppcore/client/Collaborator'"); return $null; } jmethodID jCollabCTOR = jenv->GetMethodID(jCollabObjClazz, "", "(Ljava/lang/String;)V"); if (jCollabCTOR == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find constructor taking a string in 'java/lang/String'"); return $null; } jobjectArray newObjArray = jenv->NewObjectArray($1->size(), jCollabObjClazz, 0); if (newObjArray != 0) { for (unsigned int i = 0; i < $1->size(); ++i) { std::string tmpStr = (*$1)[i].getAsJsonUpload()->toString(); jstring jCollabStr = jenv->NewStringUTF(tmpStr.c_str()); jobject jCollab = jenv->NewObject(jCollabObjClazz, jCollabCTOR, jCollabStr); jenv->SetObjectArrayElement(newObjArray, i, jCollab); jenv->DeleteLocalRef(jCollabStr); } jenv->SetObjectArrayElement($input, 0, newObjArray); } else jenv->SetObjectArrayElement($input, 0, 0); } else jenv->SetObjectArrayElement($input, 0, 0); } ///////////////////////////////////////////////////////////////////////////// %typemap(jni) std::vector & "jobjectArray" %typemap(jtype) std::vector & "com.sequencelogic.cppcore.client.CollabAccess.Code [][]" %typemap(jstype) std::vector & "com.sequencelogic.cppcore.client.CollabAccess.Code [][]" %typemap(javain) std::vector & "$javainput" /* Convert from com.sequencelogic.cppcore.client.CollabAccess.Code [] to std::vector */ %typemap(in) std::vector & { $1 = new std::vector(); if (!$input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: NULL com.sequencelogic.cppcore.client.CollabAccess.Code[][]"); return $null; } if (jenv->GetArrayLength($input) == 0) { SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "In sequencelogic-collaborator.i: Array must contain at least 1 element"); return $null; } jobjectArray tmpJIntArray = static_cast(jenv->GetObjectArrayElement($input, 0)); if (tmpJIntArray != 0) { unsigned int nSize = static_cast(jenv->GetArrayLength(tmpJIntArray)); jmethodID toValueID = 0; for (unsigned int i = 0; i < nSize; ++i) { jobject enumObj = static_cast(jenv->GetObjectArrayElement(tmpJIntArray, i)); if (enumObj == 0) break; if (toValueID == 0) { jclass jObjClazz = jenv->GetObjectClass(enumObj); toValueID = jenv->GetMethodID(jObjClazz, "swigValue", "()I"); } $1->push_back(static_cast(jenv->CallIntMethod(enumObj, toValueID))); } } } %typemap(freearg) std::vector & { delete $1; } /* Convert from std::vector to com.sequencelogic.cppcore.client.CollabAccess.Code [] */ %typemap(argout) std::vector & { jclass jCodeClazz = jenv->FindClass("com/sequencelogic/cppcore/client/CollabAccess$Code"); if (jCodeClazz == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find class 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jmethodID jCodeEnumID = jenv->GetStaticMethodID(jCodeClazz, "swigToEnum", "(I)Lcom/sequencelogic/cppcore/client/CollabAccess$Code;"); if (jCodeEnumID == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find swigToEnum in 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jobjectArray newObjArray = jenv->NewObjectArray($1->size(), jCodeClazz, 0); for (unsigned int i = 0; i < $1->size(); ++i) { jobject enumObj = jenv->CallStaticObjectMethod(jCodeClazz, jCodeEnumID, (*$1)[i]); jenv->SetObjectArrayElement(newObjArray, i, enumObj); } jenv->SetObjectArrayElement($input, 0, newObjArray); } %typemap(jni) sequencelogic::CollabAccess::Code & "jobjectArray" %typemap(jtype) sequencelogic::CollabAccess::Code & "com.sequencelogic.cppcore.client.CollabAccess.Code[]" %typemap(jstype) sequencelogic::CollabAccess::Code & "com.sequencelogic.cppcore.client.CollabAccess.Code[]" %typemap(javain) sequencelogic::CollabAccess::Code & "$javainput" %typemap(in) sequencelogic::CollabAccess::Code & { if (!$input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: NULL com.sequencelogic.cppcore.client.CollabAccess.Code array"); return $null; } if (JCALL1(GetArrayLength, jenv, $input) == 0) { SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "In sequencelogic-collaborator.i: Array must contain at least 1 element"); return $null; } $1 = new CollabAccess::Code; jclass collabAccessCodeClazz = jenv->FindClass("com/sequencelogic/cppcore/client/CollabAccess$Code"); if (collabAccessCodeClazz == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find class 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jmethodID toValueID = jenv->GetMethodID(collabAccessCodeClazz, "swigValue", "()I"); if (toValueID == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find swigValue in 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jobject tmpObj = jenv->GetObjectArrayElement($input, 0); if (tmpObj != 0) *$1 = static_cast(jenv->CallIntMethod(tmpObj, toValueID)); } %typemap(freearg) sequencelogic::CollabAccess::Code & { delete $1; } %typemap(argout) sequencelogic::CollabAccess::Code & { jclass jCodeClazz = jenv->FindClass("com/sequencelogic/cppcore/client/CollabAccess$Code"); if (jCodeClazz == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find class 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jmethodID jCodeEnumID = jenv->GetStaticMethodID(jCodeClazz, "swigToEnum", "(I)Lcom/sequencelogic/cppcore/client/CollabAccess$Code;"); if (jCodeEnumID == NULL) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "In sequencelogic-collaborator.i: Cannot find swigToEnum 'com/sequencelogic/cppcore/client/CollabAccess$Code'"); return $null; } jobject enumObj = jenv->CallStaticObjectMethod(jCodeClazz, jCodeEnumID, *$1); jenv->SetObjectArrayElement($input, 0, enumObj); } %typemap(typecheck) sequencelogic::CollabAccess::Code & = jobjectArray;