Path: blob/master/modules/java/generator/src/cpp/listconverters.cpp
16354 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html34// Author: abratchik56#define LOG_TAG "org.opencv.utils.Converters"7#include "common.h"8910jobject vector_String_to_List(JNIEnv* env, std::vector<cv::String>& vs) {1112static jclass juArrayList = ARRAYLIST(env);13static jmethodID m_create = CONSTRUCTOR(env, juArrayList);14jmethodID m_add = LIST_ADD(env, juArrayList);1516jobject result = env->NewObject(juArrayList, m_create, vs.size());17for (std::vector<cv::String>::iterator it = vs.begin(); it != vs.end(); ++it) {18jstring element = env->NewStringUTF((*it).c_str());19env->CallBooleanMethod(result, m_add, element);20env->DeleteLocalRef(element);21}22return result;23}2425std::vector<cv::String> List_to_vector_String(JNIEnv* env, jobject list)26{27static jclass juArrayList = ARRAYLIST(env);28jmethodID m_size = LIST_SIZE(env,juArrayList);29jmethodID m_get = LIST_GET(env, juArrayList);3031jint len = env->CallIntMethod(list, m_size);32std::vector<cv::String> result;33result.reserve(len);34for (jint i=0; i<len; i++)35{36jstring element = static_cast<jstring>(env->CallObjectMethod(list, m_get, i));37const char* pchars = env->GetStringUTFChars(element, NULL);38result.push_back(pchars);39env->ReleaseStringUTFChars(element, pchars);40env->DeleteLocalRef(element);41}42return result;43}4445void Copy_vector_String_to_List(JNIEnv* env, std::vector<cv::String>& vs, jobject list)46{47static jclass juArrayList = ARRAYLIST(env);48jmethodID m_clear = LIST_CLEAR(env, juArrayList);49jmethodID m_add = LIST_ADD(env, juArrayList);5051env->CallVoidMethod(list, m_clear);52for (std::vector<cv::String>::iterator it = vs.begin(); it != vs.end(); ++it)53{54jstring element = env->NewStringUTF((*it).c_str());55env->CallBooleanMethod(list, m_add, element);56env->DeleteLocalRef(element);57}58}596061