Sleds/cppcore/sequencelogic-collaborator.i

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;