diff options
Diffstat (limited to 'java/jni/ZT_jniarray.cpp')
| -rw-r--r-- | java/jni/ZT_jniarray.cpp | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/java/jni/ZT_jniarray.cpp b/java/jni/ZT_jniarray.cpp deleted file mode 100644 index a1cae76e..00000000 --- a/java/jni/ZT_jniarray.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// Created by Grant Limberg on 10/21/20. -// - -#include "ZT_jniarray.h" -#include <vector> -#include <string> -#include <cassert> - -jclass java_util_ArrayList; -jmethodID java_util_ArrayList_; -jmethodID java_util_ArrayList_size; -jmethodID java_util_ArrayList_get; -jmethodID java_util_ArrayList_add; - -void InitListJNI(JNIEnv* env) { - java_util_ArrayList = static_cast<jclass>(env->NewGlobalRef(env->FindClass("java/util/ArrayList"))); - java_util_ArrayList_ = env->GetMethodID(java_util_ArrayList, "<init>", "(I)V"); - java_util_ArrayList_size = env->GetMethodID (java_util_ArrayList, "size", "()I"); - java_util_ArrayList_get = env->GetMethodID(java_util_ArrayList, "get", "(I)Ljava/lang/Object;"); - java_util_ArrayList_add = env->GetMethodID(java_util_ArrayList, "add", "(Ljava/lang/Object;)Z"); -} - -jclass ListJNI::getListClass(JNIEnv* env) { - jclass jclazz = env->FindClass("java/util/List"); - assert(jclazz != nullptr); - return jclazz; -} - -jclass ListJNI::getArrayListClass(JNIEnv* env) { - jclass jclazz = env->FindClass("java/util/ArrayList"); - assert(jclazz != nullptr); - return jclazz; -} - -jclass ListJNI::getIteratorClass(JNIEnv* env) { - jclass jclazz = env->FindClass("java/util/Iterator"); - assert(jclazz != nullptr); - return jclazz; -} - -jmethodID ListJNI::getIteratorMethod(JNIEnv* env) { - static jmethodID mid = env->GetMethodID( - getListClass(env), "iterator", "()Ljava/util/Iterator;"); - assert(mid != nullptr); - return mid; -} - -jmethodID ListJNI::getHasNextMethod(JNIEnv* env) { - static jmethodID mid = env->GetMethodID( - getIteratorClass(env), "hasNext", "()Z"); - assert(mid != nullptr); - return mid; -} - -jmethodID ListJNI::getNextMethod(JNIEnv* env) { - static jmethodID mid = env->GetMethodID( - getIteratorClass(env), "next", "()Ljava/lang/Object;"); - assert(mid != nullptr); - return mid; -} - -jmethodID ListJNI::getArrayListConstructorMethodId(JNIEnv* env, jclass jclazz) { - static jmethodID mid = env->GetMethodID( - jclazz, "<init>", "(I)V"); - assert(mid != nullptr); - return mid; -} - -jmethodID ListJNI::getListAddMethodId(JNIEnv* env) { - static jmethodID mid = env->GetMethodID( - getListClass(env), "add", "(Ljava/lang/Object;)Z"); - assert(mid != nullptr); - return mid; -} - -jclass ByteJNI::getByteClass(JNIEnv* env) { - jclass jclazz = env->FindClass("java/lang/Byte"); - assert(jclazz != nullptr); - return jclazz; -} - -jmethodID ByteJNI::getByteValueMethod(JNIEnv* env) { - static jmethodID mid = env->GetMethodID( - getByteClass(env), "byteValue", "()B"); - assert(mid != nullptr); - return mid; -} - -jobject cppToJava(JNIEnv* env, std::vector<std::string> vector) { - jobject result = env->NewObject(java_util_ArrayList, java_util_ArrayList_, vector.size()); - for (std::string s: vector) { - jstring element = env->NewStringUTF(s.c_str()); - env->CallBooleanMethod(result, java_util_ArrayList_add, element); - env->DeleteLocalRef(element); - } - return result; -} - -std::vector<std::string> javaToCpp(JNIEnv* env, jobject arrayList) { - jint len = env->CallIntMethod(arrayList, java_util_ArrayList_size); - std::vector<std::string> result; - result.reserve(len); - for (jint i=0; i<len; i++) { - jstring element = static_cast<jstring>(env->CallObjectMethod(arrayList, java_util_ArrayList_get, i)); - const char* pchars = env->GetStringUTFChars(element, nullptr); - result.emplace_back(pchars); - env->ReleaseStringUTFChars(element, pchars); - env->DeleteLocalRef(element); - } - return result; -} |
