247 lines
11 KiB
OpenEdge ABL
247 lines
11 KiB
OpenEdge ABL
/* Copyright (c) 2015,2016 Sequence Logic Inc. All rights reserved
|
|
*
|
|
* SWIG interface for converting between std::vector<sequencelogic::Collaborator> and com.sequencelogic.cppcore.client.Collaborator []
|
|
*
|
|
*/
|
|
|
|
%typemap(jni) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> & "jobjectArray"
|
|
%typemap(jtype) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> & "com.sequencelogic.cppcore.client.Collaborator [][]"
|
|
%typemap(jstype) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> & "com.sequencelogic.cppcore.client.Collaborator [][]"
|
|
|
|
%typemap(javain) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> & "$javainput"
|
|
|
|
/* Convert from com.sequencelogic.cppcore.client.Collaborator [] to std::vector<Collaborator> */
|
|
%typemap(in) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> &
|
|
{
|
|
$1 = new std::vector<Collaborator>();
|
|
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<jobjectArray>(jenv->GetObjectArrayElement($input, 0));
|
|
if (tmpJObjArray != 0)
|
|
{
|
|
unsigned int nSize = static_cast<unsigned int>(jenv->GetArrayLength(tmpJObjArray));
|
|
jmethodID toStringID = 0;
|
|
for (unsigned int i = 0; i < nSize; ++i)
|
|
{
|
|
jobject tmpCollabObject = static_cast<jobject>(jenv->GetObjectArrayElement(tmpJObjArray, i));
|
|
if (tmpCollabObject == 0)
|
|
continue;
|
|
jobject tmpJObject = static_cast<jobject>(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<jstring>(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<Collaborator> &, std::vector<sequencelogic::Collaborator> &
|
|
{
|
|
delete $1;
|
|
}
|
|
|
|
/* Convert from std::vector<Collaborator> to com.sequencelogic.cppcore.client.Collaborator [] */
|
|
%typemap(argout) std::vector<Collaborator> &, std::vector<sequencelogic::Collaborator> &
|
|
{
|
|
// 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, "<init>", "(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<sequencelogic::CollabAccess::Code> & "jobjectArray"
|
|
%typemap(jtype) std::vector<sequencelogic::CollabAccess::Code> & "com.sequencelogic.cppcore.client.CollabAccess.Code [][]"
|
|
%typemap(jstype) std::vector<sequencelogic::CollabAccess::Code> & "com.sequencelogic.cppcore.client.CollabAccess.Code [][]"
|
|
|
|
%typemap(javain) std::vector<sequencelogic::CollabAccess::Code> & "$javainput"
|
|
|
|
/* Convert from com.sequencelogic.cppcore.client.CollabAccess.Code [] to std::vector<CollabAccess::Code> */
|
|
%typemap(in) std::vector<sequencelogic::CollabAccess::Code> &
|
|
{
|
|
$1 = new std::vector<CollabAccess::Code>();
|
|
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<jobjectArray>(jenv->GetObjectArrayElement($input, 0));
|
|
if (tmpJIntArray != 0)
|
|
{
|
|
unsigned int nSize = static_cast<unsigned int>(jenv->GetArrayLength(tmpJIntArray));
|
|
jmethodID toValueID = 0;
|
|
for (unsigned int i = 0; i < nSize; ++i)
|
|
{
|
|
jobject enumObj = static_cast<jobject>(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<CollabAccess::Code>(jenv->CallIntMethod(enumObj, toValueID)));
|
|
}
|
|
}
|
|
}
|
|
|
|
%typemap(freearg) std::vector<sequencelogic::CollabAccess::Code> &
|
|
{
|
|
delete $1;
|
|
}
|
|
|
|
/* Convert from std::vector<CollabAccess::Code> to com.sequencelogic.cppcore.client.CollabAccess.Code [] */
|
|
%typemap(argout) std::vector<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 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<CollabAccess::Code>(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;
|