// This file was generated by
//     //third_party/jni_zero/jni_zero.py
// For
//     this.is.a.package.prefix.org.jni_zero.GEN_JNI

#ifndef TEMP_DIR_HEADER_
#define TEMP_DIR_HEADER_

#include <iterator>

#include "third_party/jni_zero/jni_zero_internal.h"



// Forward declarations (methods).

JNI_BOUNDARY_EXPORT jobject
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1bar(
    JNIEnv* env,
    jclass jcaller,
    jobject sample);
JNI_BOUNDARY_EXPORT void
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1foo(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jboolean
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1hasPhalange(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jclass
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnClass(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnClasses(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedAppObjects(
    JNIEnv* env,
    jclass jcaller,
    jclass __arrayClazz);
JNI_BOUNDARY_EXPORT jintArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedInts(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedString(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedStrings(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobject
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnObject(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnObjects(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnString(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStrings(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobject
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStruct(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStructs(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jthrowable
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowable(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowables(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1revString(
    JNIEnv* env,
    jclass jcaller,
    jstring stringToReverse);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1sendSamplesToNative(
    JNIEnv* env,
    jclass jcaller,
    jobjectArray strs);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1sendToNative(
    JNIEnv* env,
    jclass jcaller,
    jobjectArray strs);
JNI_BOUNDARY_EXPORT jintArray
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1testAllPrimitives(
    JNIEnv* env,
    jclass jcaller,
    jint zint,
    jintArray ints,
    jlong zlong,
    jlongArray longs,
    jshort zshort,
    jshortArray shorts,
    jchar zchar,
    jcharArray chars,
    jbyte zbyte,
    jbyteArray bytes,
    jdouble zdouble,
    jdoubleArray doubles,
    jfloat zfloat,
    jfloatArray floats,
    jboolean zbool,
    jbooleanArray bools);
JNI_BOUNDARY_EXPORT void
    Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1testSpecialTypes(
    JNIEnv* env,
    jclass jcaller,
    jclass clazz,
    jobjectArray classes,
    jthrowable throwable,
    jobjectArray throwables,
    jstring string,
    jobjectArray strings,
    jstring convertedString,
    jobjectArray convertedStrings,
    jstring optionalString,
    jobject tStruct,
    jobjectArray structs,
    jobject obj,
    jobject convertedObj,
    jobjectArray objects,
    jobject nestedInterface,
    jobject view,
    jobject context,
    jobjectArray convertedObjects);


// Method declarations.


static const JNINativeMethod kMethods_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI[] = {
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_bar",
        "(Ljava/lang/Object;)Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1bar)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_foo", "()V",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1foo)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_hasPhalange", "()Z",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1hasPhalange)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnClass",
        "()Ljava/lang/Class;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnClass)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnClasses",
        "()[Ljava/lang/Class;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnClasses)
        },
    {
        "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnConvertedAppObjects",
        "(Ljava/lang/Class;)[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedAppObjects)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnConvertedInts",
        "()[I",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedInts)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnConvertedString",
        "()Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedString)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnConvertedStrings",
        "()[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedStrings)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnObject",
        "()Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnObject)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnObjects",
        "()[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnObjects)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnString",
        "()Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnString)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnStrings",
        "()[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStrings)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnStruct",
        "()Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStruct)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnStructs",
        "()[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnStructs)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnThrowable",
        "()Ljava/lang/Throwable;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowable)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_returnThrowables",
        "()[Ljava/lang/Throwable;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowables)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_revString",
        "(Ljava/lang/String;)Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1revString)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_sendSamplesToNative",
        "([Ljava/lang/Object;)[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1sendSamplesToNative)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_sendToNative",
        "([Ljava/lang/String;)[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1sendToNative)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_testAllPrimitives",
        "(I[IJ[JS[SC[CB[BD[DF[FZ[Z)[I",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1testAllPrimitives)
        },
    { "this_is_a_package_prefix_org_jni_1zero_SampleForAnnotationProcessor_testSpecialTypes",
        "(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Throwable;[Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)V",
        reinterpret_cast<void*>(Java_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI_this_1is_1a_1package_1prefix_1org_1jni_11zero_1SampleForAnnotationProcessor_1testSpecialTypes)
        },

};

namespace {

JNI_ZERO_COMPONENT_BUILD_EXPORT bool RegisterNative_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI(JNIEnv* env) {
  const int number_of_methods = std::size(kMethods_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI);

  jni_zero::ScopedJavaLocalRef<jclass> native_clazz =
      jni_zero::GetClass(env, "this/is/a/package/prefix/org/jni_zero/GEN_JNI");
  if (env->RegisterNatives(
      native_clazz.obj(),
      kMethods_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI,
      number_of_methods) < 0) {

    jni_zero::internal::HandleRegistrationError(env, native_clazz.obj(), __FILE__);
    return false;
  }

  return true;
}

}  // namespace


// Registration function.

namespace  {

bool RegisterNatives(JNIEnv* env) {
  // Register natives in a proxy.
  if (!RegisterNative_this_is_a_package_prefix_org_jni_1zero_GEN_1JNI(env)) {
    return false;
  }


  return true;
}

}  // namespace 


#endif  // TEMP_DIR_HEADER_

