Sleds/cppcore/sequencelogic-file.i

32 lines
1.1 KiB
OpenEdge ABL

/* Copyright (c) 2015,2016 Sequence Logic Inc. All rights reserved
*
* SWIG interface for converting between sequencelogic::File and java.io.File
*
*/
%typemap(jni) sequencelogic::File, const sequencelogic::File & "jobject"
%typemap(jtype) sequencelogic::File, const sequencelogic::File & "java.io.File"
%typemap(jstype) sequencelogic::File, const sequencelogic::File & "java.io.File"
%typemap(javain) sequencelogic::File, const sequencelogic::File & "$javainput"
%typemap(in) sequencelogic::File &, sequencelogic::File
{
if ($input != NULL)
{
// Convert $input (a java.io.File) to $1 (a sequencelogic::File)
jclass jFileClazz = jenv->GetObjectClass($input);
jmethodID toStringID = jenv->GetMethodID(jFileClazz, "getAbsolutePath", "()Ljava/lang/String;");
jstring absPath = static_cast<jstring>(jenv->CallObjectMethod($input, toStringID));
const char *pCPathStr = jenv->GetStringUTFChars(absPath, 0);
$1 = new sequencelogic::File(pCPathStr);
jenv->ReleaseStringUTFChars(absPath, pCPathStr);
}
}
%typemap(freearg) sequencelogic::File, const sequencelogic::File &
{
delete $1;
}