• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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