• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2014 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
6// This file is autogenerated by
7//     third_party/jni_zero/jni_generator.py
8// For
9//     this/is/a/package/prefix/org/jni_zero/samples/SampleForTests
10
11#ifndef this_is_a_package_prefix_org_jni_zero_samples_SampleForTests_JNI
12#define this_is_a_package_prefix_org_jni_zero_samples_SampleForTests_JNI
13
14#include <jni.h>
15
16#include "third_party/jni_zero/jni_export.h"
17#include "third_party/jni_zero/jni_zero_helper.h"
18
19
20// Step 1: Forward declarations.
21
22JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char
23    kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests[];
24const char kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests[] =
25    "this/is/a/package/prefix/org/jni_zero/samples/SampleForTests";
26
27JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char
28    kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA[];
29const char
30    kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA[] =
31    "this/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerStructA";
32
33JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char
34    kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB[];
35const char
36    kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB[] =
37    "this/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerStructB";
38// Leaking this jclass as we cannot use LazyInstance from some threads.
39JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass>
40    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(nullptr);
41#ifndef this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz_defined
42#define this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz_defined
43inline jclass this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(JNIEnv* env) {
44  return base::android::LazyGetClass(env,
45      kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests,
46      &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz);
47}
48#endif
49// Leaking this jclass as we cannot use LazyInstance from some threads.
50JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass>
51    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(nullptr);
52#ifndef this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz_defined
53#define this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz_defined
54inline jclass
55    this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(JNIEnv*
56    env) {
57  return base::android::LazyGetClass(env,
58      kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA,
59      &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz);
60}
61#endif
62// Leaking this jclass as we cannot use LazyInstance from some threads.
63JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass>
64    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(nullptr);
65#ifndef this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz_defined
66#define this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz_defined
67inline jclass
68    this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(JNIEnv*
69    env) {
70  return base::android::LazyGetClass(env,
71      kClassPath_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB,
72      &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz);
73}
74#endif
75
76
77// Step 2: Constants (optional).
78
79
80// Step 3: Method stubs.
81namespace base {
82namespace android {
83
84JNI_BOUNDARY_EXPORT void
85    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1addStructB(
86    JNIEnv* env,
87    jclass jcaller,
88    jlong nativeCPPClass,
89    jobject caller,
90    jobject b) {
91  CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
92  CHECK_NATIVE_PTR(env, jcaller, native, "AddStructB");
93  return native->AddStructB(env, base::android::JavaParamRef<jobject>(env, caller),
94      base::android::JavaParamRef<jobject>(env, b));
95}
96
97JNI_BOUNDARY_EXPORT void
98    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1destroy(
99    JNIEnv* env,
100    jclass jcaller,
101    jlong nativeCPPClass,
102    jobject caller) {
103  CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
104  CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
105  return native->Destroy(env, base::android::JavaParamRef<jobject>(env, caller));
106}
107
108static base::android::ScopedJavaLocalRef<jclass> JNI_SampleForTests_GetClass(JNIEnv* env, const
109    base::android::JavaParamRef<jclass>& arg0);
110
111JNI_BOUNDARY_EXPORT jclass
112    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1getClass(
113    JNIEnv* env,
114    jclass jcaller,
115    jclass arg0) {
116  return JNI_SampleForTests_GetClass(env, base::android::JavaParamRef<jclass>(env, arg0)).Release();
117}
118
119static jdouble JNI_SampleForTests_GetDoubleFunction(JNIEnv* env, const
120    base::android::JavaParamRef<jobject>& caller);
121
122JNI_BOUNDARY_EXPORT jdouble
123    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1getDoubleFunction(
124    JNIEnv* env,
125    jclass jcaller,
126    jobject caller) {
127  return JNI_SampleForTests_GetDoubleFunction(env, base::android::JavaParamRef<jobject>(env,
128      caller));
129}
130
131static jfloat JNI_SampleForTests_GetFloatFunction(JNIEnv* env);
132
133JNI_BOUNDARY_EXPORT jfloat
134    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1getFloatFunction(
135    JNIEnv* env,
136    jclass jcaller) {
137  return JNI_SampleForTests_GetFloatFunction(env);
138}
139
140static base::android::ScopedJavaLocalRef<jobject> JNI_SampleForTests_GetNonPODDatatype(JNIEnv* env,
141    const base::android::JavaParamRef<jobject>& caller);
142
143JNI_BOUNDARY_EXPORT jobject
144    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1getNonPODDatatype(
145    JNIEnv* env,
146    jclass jcaller,
147    jobject caller) {
148  return JNI_SampleForTests_GetNonPODDatatype(env, base::android::JavaParamRef<jobject>(env,
149      caller)).Release();
150}
151
152static base::android::ScopedJavaLocalRef<jthrowable> JNI_SampleForTests_GetThrowable(JNIEnv* env,
153    const base::android::JavaParamRef<jthrowable>& arg0);
154
155JNI_BOUNDARY_EXPORT jthrowable
156    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1getThrowable(
157    JNIEnv* env,
158    jclass jcaller,
159    jthrowable arg0) {
160  return JNI_SampleForTests_GetThrowable(env, base::android::JavaParamRef<jthrowable>(env,
161      arg0)).Release();
162}
163
164static jlong JNI_SampleForTests_Init(JNIEnv* env, const base::android::JavaParamRef<jobject>&
165    caller,
166    const base::android::JavaParamRef<jstring>& param);
167
168JNI_BOUNDARY_EXPORT jlong
169    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1init(
170    JNIEnv* env,
171    jclass jcaller,
172    jobject caller,
173    jstring param) {
174  return JNI_SampleForTests_Init(env, base::android::JavaParamRef<jobject>(env, caller),
175      base::android::JavaParamRef<jstring>(env, param));
176}
177
178JNI_BOUNDARY_EXPORT void
179    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1iterateAndDoSomethingWithStructB(
180    JNIEnv* env,
181    jclass jcaller,
182    jlong nativeCPPClass,
183    jobject caller) {
184  CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
185  CHECK_NATIVE_PTR(env, jcaller, native, "IterateAndDoSomethingWithStructB");
186  return native->IterateAndDoSomethingWithStructB(env, base::android::JavaParamRef<jobject>(env,
187      caller));
188}
189
190JNI_BOUNDARY_EXPORT jint
191    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1method(
192    JNIEnv* env,
193    jclass jcaller,
194    jlong nativeCPPClass,
195    jobject caller) {
196  CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
197  CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
198  return native->Method(env, base::android::JavaParamRef<jobject>(env, caller));
199}
200
201JNI_BOUNDARY_EXPORT jdouble
202    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1methodOtherP0(
203    JNIEnv* env,
204    jclass jcaller,
205    jlong nativePtr,
206    jobject caller) {
207  CPPClass::InnerClass* native = reinterpret_cast<CPPClass::InnerClass*>(nativePtr);
208  CHECK_NATIVE_PTR(env, jcaller, native, "MethodOtherP0", 0);
209  return native->MethodOtherP0(env, base::android::JavaParamRef<jobject>(env, caller));
210}
211
212JNI_BOUNDARY_EXPORT jstring
213    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1returnAString(
214    JNIEnv* env,
215    jclass jcaller,
216    jlong nativeCPPClass,
217    jobject caller) {
218  CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
219  CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", nullptr);
220  return native->ReturnAString(env, base::android::JavaParamRef<jobject>(env, caller)).Release();
221}
222
223static void JNI_SampleForTests_SetNonPODDatatype(JNIEnv* env, const
224    base::android::JavaParamRef<jobject>& caller,
225    const base::android::JavaParamRef<jobject>& rect);
226
227JNI_BOUNDARY_EXPORT void
228    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1samples_1SampleForTests_1setNonPODDatatype(
229    JNIEnv* env,
230    jclass jcaller,
231    jobject caller,
232    jobject rect) {
233  return JNI_SampleForTests_SetNonPODDatatype(env, base::android::JavaParamRef<jobject>(env,
234      caller), base::android::JavaParamRef<jobject>(env, rect));
235}
236
237
238static std::atomic<jmethodID>
239    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_Constructor2(nullptr);
240static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_Constructor(JNIEnv* env,
241    JniIntWrapper foo,
242    JniIntWrapper bar) {
243  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
244  CHECK_CLAZZ(env, clazz,
245      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
246
247  jni_generator::JniJavaCallContextChecked call_context;
248  call_context.Init<
249      base::android::MethodID::TYPE_INSTANCE>(
250          env,
251          clazz,
252          "<init>",
253          "(II)V",
254          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_Constructor2);
255
256  jobject ret =
257      env->NewObject(clazz,
258          call_context.base.method_id, as_jint(foo), as_jint(bar));
259  return base::android::ScopedJavaLocalRef<jobject>(env, ret);
260}
261
262static std::atomic<jmethodID>
263    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_addStructA1(nullptr);
264static void Java_SampleForTests_addStructA(JNIEnv* env, const base::android::JavaRef<jobject>& obj,
265    const base::android::JavaRef<jobject>& a) {
266  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
267  CHECK_CLAZZ(env, obj.obj(),
268      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
269
270  jni_generator::JniJavaCallContextChecked call_context;
271  call_context.Init<
272      base::android::MethodID::TYPE_INSTANCE>(
273          env,
274          clazz,
275          "addStructA",
276          "(Lthis/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerStructA;)V",
277          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_addStructA1);
278
279     env->CallVoidMethod(obj.obj(),
280          call_context.base.method_id, a.obj());
281}
282
283static std::atomic<jmethodID>
284    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getClass1(nullptr);
285static base::android::ScopedJavaLocalRef<jclass> Java_SampleForTests_getClass(JNIEnv* env, const
286    base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jclass>& arg0) {
287  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
288  CHECK_CLAZZ(env, obj.obj(),
289      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
290
291  jni_generator::JniJavaCallContextChecked call_context;
292  call_context.Init<
293      base::android::MethodID::TYPE_INSTANCE>(
294          env,
295          clazz,
296          "getClass",
297          "(Ljava/lang/Class;)Ljava/lang/Class;",
298          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getClass1);
299
300  jclass ret =
301      static_cast<jclass>(env->CallObjectMethod(obj.obj(),
302          call_context.base.method_id, arg0.obj()));
303  return base::android::ScopedJavaLocalRef<jclass>(env, ret);
304}
305
306static std::atomic<jmethodID>
307    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerEnum0(nullptr);
308static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerEnum(JNIEnv* env) {
309  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
310  CHECK_CLAZZ(env, clazz,
311      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
312
313  jni_generator::JniJavaCallContextChecked call_context;
314  call_context.Init<
315      base::android::MethodID::TYPE_STATIC>(
316          env,
317          clazz,
318          "getInnerEnum",
319          "()Lthis/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerEnum;",
320          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerEnum0);
321
322  jobject ret =
323      env->CallStaticObjectMethod(clazz,
324          call_context.base.method_id);
325  return base::android::ScopedJavaLocalRef<jobject>(env, ret);
326}
327
328static std::atomic<jmethodID>
329    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerEnum1(nullptr);
330static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerEnum(JNIEnv* env,
331    JniIntWrapper a) {
332  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
333  CHECK_CLAZZ(env, clazz,
334      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
335
336  jni_generator::JniJavaCallContextChecked call_context;
337  call_context.Init<
338      base::android::MethodID::TYPE_STATIC>(
339          env,
340          clazz,
341          "getInnerEnum",
342          "(I)Lthis/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerEnum;",
343          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerEnum1);
344
345  jobject ret =
346      env->CallStaticObjectMethod(clazz,
347          call_context.base.method_id, as_jint(a));
348  return base::android::ScopedJavaLocalRef<jobject>(env, ret);
349}
350
351static std::atomic<jmethodID>
352    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerInterface0(nullptr);
353static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerInterface(JNIEnv* env)
354    {
355  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
356  CHECK_CLAZZ(env, clazz,
357      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
358
359  jni_generator::JniJavaCallContextChecked call_context;
360  call_context.Init<
361      base::android::MethodID::TYPE_STATIC>(
362          env,
363          clazz,
364          "getInnerInterface",
365          "()Lthis/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerInterface;",
366          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getInnerInterface0);
367
368  jobject ret =
369      env->CallStaticObjectMethod(clazz,
370          call_context.base.method_id);
371  return base::android::ScopedJavaLocalRef<jobject>(env, ret);
372}
373
374static std::atomic<jmethodID>
375    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getThrowable1(nullptr);
376static base::android::ScopedJavaLocalRef<jthrowable> Java_SampleForTests_getThrowable(JNIEnv* env,
377    const base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jthrowable>& arg0) {
378  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
379  CHECK_CLAZZ(env, obj.obj(),
380      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), nullptr);
381
382  jni_generator::JniJavaCallContextChecked call_context;
383  call_context.Init<
384      base::android::MethodID::TYPE_INSTANCE>(
385          env,
386          clazz,
387          "getThrowable",
388          "(Ljava/lang/Throwable;)Ljava/lang/Throwable;",
389          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_getThrowable1);
390
391  jthrowable ret =
392      static_cast<jthrowable>(env->CallObjectMethod(obj.obj(),
393          call_context.base.method_id, arg0.obj()));
394  return base::android::ScopedJavaLocalRef<jthrowable>(env, ret);
395}
396
397static std::atomic<jmethodID>
398    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_iterateAndDoSomething0(nullptr);
399static void Java_SampleForTests_iterateAndDoSomething(JNIEnv* env, const
400    base::android::JavaRef<jobject>& obj) {
401  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
402  CHECK_CLAZZ(env, obj.obj(),
403      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
404
405  jni_generator::JniJavaCallContextChecked call_context;
406  call_context.Init<
407      base::android::MethodID::TYPE_INSTANCE>(
408          env,
409          clazz,
410          "iterateAndDoSomething",
411          "()V",
412          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_iterateAndDoSomething0);
413
414     env->CallVoidMethod(obj.obj(),
415          call_context.base.method_id);
416}
417
418static std::atomic<jmethodID>
419    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_javaMethod2(nullptr);
420static jint Java_SampleForTests_javaMethod(JNIEnv* env, const base::android::JavaRef<jobject>& obj,
421    JniIntWrapper foo,
422    JniIntWrapper bar) {
423  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
424  CHECK_CLAZZ(env, obj.obj(),
425      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), 0);
426
427  jni_generator::JniJavaCallContextChecked call_context;
428  call_context.Init<
429      base::android::MethodID::TYPE_INSTANCE>(
430          env,
431          clazz,
432          "javaMethod",
433          "(II)I",
434          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_javaMethod2);
435
436  jint ret =
437      env->CallIntMethod(obj.obj(),
438          call_context.base.method_id, as_jint(foo), as_jint(bar));
439  return ret;
440}
441
442static std::atomic<jmethodID>
443    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_javaMethodWithAnnotatedParam4(nullptr);
444static void Java_SampleForTests_javaMethodWithAnnotatedParam(JNIEnv* env, const
445    base::android::JavaRef<jobject>& obj, JniIntWrapper foo,
446    JniIntWrapper bar,
447    JniIntWrapper baz,
448    JniIntWrapper bat) {
449  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
450  CHECK_CLAZZ(env, obj.obj(),
451      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
452
453  jni_generator::JniJavaCallContextChecked call_context;
454  call_context.Init<
455      base::android::MethodID::TYPE_INSTANCE>(
456          env,
457          clazz,
458          "javaMethodWithAnnotatedParam",
459          "(IIII)V",
460&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_javaMethodWithAnnotatedParam4);
461
462     env->CallVoidMethod(obj.obj(),
463          call_context.base.method_id, as_jint(foo), as_jint(bar), as_jint(baz), as_jint(bat));
464}
465
466static std::atomic<jmethodID>
467    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_methodThatThrowsException0(nullptr);
468static void Java_SampleForTests_methodThatThrowsException(JNIEnv* env, const
469    base::android::JavaRef<jobject>& obj) {
470  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
471  CHECK_CLAZZ(env, obj.obj(),
472      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
473
474  jni_generator::JniJavaCallContextUnchecked call_context;
475  call_context.Init<
476      base::android::MethodID::TYPE_INSTANCE>(
477          env,
478          clazz,
479          "methodThatThrowsException",
480          "()V",
481&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_methodThatThrowsException0);
482
483     env->CallVoidMethod(obj.obj(),
484          call_context.method_id);
485}
486
487static std::atomic<jmethodID>
488    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_methodWithGenericParams2(nullptr);
489static void Java_SampleForTests_methodWithGenericParams(JNIEnv* env, const
490    base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jobject>& foo,
491    const base::android::JavaRef<jobject>& bar) {
492  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
493  CHECK_CLAZZ(env, obj.obj(),
494      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
495
496  jni_generator::JniJavaCallContextChecked call_context;
497  call_context.Init<
498      base::android::MethodID::TYPE_INSTANCE>(
499          env,
500          clazz,
501          "methodWithGenericParams",
502          "(Ljava/util/Map;Ljava/util/LinkedList;)V",
503&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_methodWithGenericParams2);
504
505     env->CallVoidMethod(obj.obj(),
506          call_context.base.method_id, foo.obj(), bar.obj());
507}
508
509static std::atomic<jmethodID>
510    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_packagePrivateJavaMethod0(nullptr);
511static void Java_SampleForTests_packagePrivateJavaMethod(JNIEnv* env, const
512    base::android::JavaRef<jobject>& obj) {
513  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
514  CHECK_CLAZZ(env, obj.obj(),
515      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env));
516
517  jni_generator::JniJavaCallContextChecked call_context;
518  call_context.Init<
519      base::android::MethodID::TYPE_INSTANCE>(
520          env,
521          clazz,
522          "packagePrivateJavaMethod",
523          "()V",
524&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_packagePrivateJavaMethod0);
525
526     env->CallVoidMethod(obj.obj(),
527          call_context.base.method_id);
528}
529
530static std::atomic<jmethodID>
531    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_staticJavaMethod0(nullptr);
532static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) {
533  jclass clazz = this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env);
534  CHECK_CLAZZ(env, clazz,
535      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_clazz(env), false);
536
537  jni_generator::JniJavaCallContextChecked call_context;
538  call_context.Init<
539      base::android::MethodID::TYPE_STATIC>(
540          env,
541          clazz,
542          "staticJavaMethod",
543          "()Z",
544          &g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_staticJavaMethod0);
545
546  jboolean ret =
547      env->CallStaticBooleanMethod(clazz,
548          call_context.base.method_id);
549  return ret;
550}
551
552static std::atomic<jmethodID>
553    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_create3(nullptr);
554static base::android::ScopedJavaLocalRef<jobject> Java_InnerStructA_create(JNIEnv* env, jlong l,
555    JniIntWrapper i,
556    const base::android::JavaRef<jstring>& s) {
557  jclass clazz =
558      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(env);
559  CHECK_CLAZZ(env, clazz,
560      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(env),
561          nullptr);
562
563  jni_generator::JniJavaCallContextChecked call_context;
564  call_context.Init<
565      base::android::MethodID::TYPE_STATIC>(
566          env,
567          clazz,
568          "create",
569"(JILjava/lang/String;)Lthis/is/a/package/prefix/org/jni_zero/samples/SampleForTests$InnerStructA;",
570&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructA_create3);
571
572  jobject ret =
573      env->CallStaticObjectMethod(clazz,
574          call_context.base.method_id, l, as_jint(i), s.obj());
575  return base::android::ScopedJavaLocalRef<jobject>(env, ret);
576}
577
578static std::atomic<jmethodID>
579    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getKey0(nullptr);
580static jlong Java_InnerStructB_getKey(JNIEnv* env, const base::android::JavaRef<jobject>& obj) {
581  jclass clazz =
582      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env);
583  CHECK_CLAZZ(env, obj.obj(),
584      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env),
585          0);
586
587  jni_generator::JniJavaCallContextChecked call_context;
588  call_context.Init<
589      base::android::MethodID::TYPE_INSTANCE>(
590          env,
591          clazz,
592          "getKey",
593          "()J",
594&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getKey0);
595
596  jlong ret =
597      env->CallLongMethod(obj.obj(),
598          call_context.base.method_id);
599  return ret;
600}
601
602static std::atomic<jmethodID>
603    g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getValue0(nullptr);
604static base::android::ScopedJavaLocalRef<jstring> Java_InnerStructB_getValue(JNIEnv* env, const
605    base::android::JavaRef<jobject>& obj) {
606  jclass clazz =
607      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env);
608  CHECK_CLAZZ(env, obj.obj(),
609      this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env),
610          nullptr);
611
612  jni_generator::JniJavaCallContextChecked call_context;
613  call_context.Init<
614      base::android::MethodID::TYPE_INSTANCE>(
615          env,
616          clazz,
617          "getValue",
618          "()Ljava/lang/String;",
619&g_this_is_a_package_prefix_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getValue0);
620
621  jstring ret =
622      static_cast<jstring>(env->CallObjectMethod(obj.obj(),
623          call_context.base.method_id));
624  return base::android::ScopedJavaLocalRef<jstring>(env, ret);
625}
626
627}  // namespace android
628}  // namespace base
629
630#endif  // this_is_a_package_prefix_org_jni_zero_samples_SampleForTests_JNI
631