1 // Copyright 2024 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "third_party/jni_zero/common_apis.h"
6
7 #include "third_party/jni_zero/generate_jni/JniUtil_jni.h"
8 #include "third_party/jni_zero/system_jni/Arrays_jni.h"
9 #include "third_party/jni_zero/system_jni/Collection_jni.h"
10 #include "third_party/jni_zero/system_jni/List_jni.h"
11 #include "third_party/jni_zero/system_jni/Map_jni.h"
12
13 namespace jni_zero {
14
CollectionToArray(JNIEnv * env,const JavaRef<jobject> & collection)15 ScopedJavaLocalRef<jobjectArray> CollectionToArray(
16 JNIEnv* env,
17 const JavaRef<jobject>& collection) {
18 return JNI_Collection::Java_Collection_toArray(env, collection);
19 }
20
ArrayToList(JNIEnv * env,const JavaRef<jobjectArray> & array)21 ScopedJavaLocalRef<jobject> ArrayToList(JNIEnv* env,
22 const JavaRef<jobjectArray>& array) {
23 return JNI_Arrays::Java_Arrays_asList(env, array);
24 }
25
MapToArray(JNIEnv * env,const JavaRef<jobject> & map)26 ScopedJavaLocalRef<jobjectArray> MapToArray(JNIEnv* env,
27 const JavaRef<jobject>& map) {
28 return Java_JniUtil_mapToArray(env, map);
29 }
30
ArrayToMap(JNIEnv * env,const JavaRef<jobjectArray> & array)31 ScopedJavaLocalRef<jobject> ArrayToMap(JNIEnv* env,
32 const JavaRef<jobjectArray>& array) {
33 return Java_JniUtil_arrayToMap(env, array);
34 }
35
ListGet(JNIEnv * env,const JavaRef<jobject> & list,jint idx)36 ScopedJavaLocalRef<jobject> ListGet(JNIEnv* env,
37 const JavaRef<jobject>& list,
38 jint idx) {
39 return JNI_List::Java_List_get(env, list, idx);
40 }
41
ListSet(JNIEnv * env,const JavaRef<jobject> & list,jint idx,const JavaRef<jobject> & value)42 ScopedJavaLocalRef<jobject> ListSet(JNIEnv* env,
43 const JavaRef<jobject>& list,
44 jint idx,
45 const JavaRef<jobject>& value) {
46 return JNI_List::Java_List_set(env, list, idx, value);
47 }
48
ListAdd(JNIEnv * env,const JavaRef<jobject> & list,const JavaRef<jobject> & value)49 void ListAdd(JNIEnv* env,
50 const JavaRef<jobject>& list,
51 const JavaRef<jobject>& value) {
52 JNI_List::Java_List_add(env, list, value);
53 }
54
MapGet(JNIEnv * env,const JavaRef<jobject> & map,const JavaRef<jobject> & key)55 ScopedJavaLocalRef<jobject> MapGet(JNIEnv* env,
56 const JavaRef<jobject>& map,
57 const JavaRef<jobject>& key) {
58 return JNI_Map::Java_Map_get(env, map, key);
59 }
60
MapSet(JNIEnv * env,const JavaRef<jobject> & map,const JavaRef<jobject> & key,const JavaRef<jobject> & value)61 ScopedJavaLocalRef<jobject> MapSet(JNIEnv* env,
62 const JavaRef<jobject>& map,
63 const JavaRef<jobject>& key,
64 const JavaRef<jobject>& value) {
65 return JNI_Map::Java_Map_put(env, map, key, value);
66 }
67
CollectionSize(JNIEnv * env,const JavaRef<jobject> & collection)68 jint CollectionSize(JNIEnv* env, const JavaRef<jobject>& collection) {
69 return JNI_Collection::Java_Collection_size(env, collection);
70 }
71
MapSize(JNIEnv * env,const JavaRef<jobject> & map)72 jint MapSize(JNIEnv* env, const JavaRef<jobject>& map) {
73 return JNI_Map::Java_Map_size(env, map);
74 }
75
76 } // namespace jni_zero
77