// This file was generated by
//     //third_party/jni_zero/jni_zero.py
// For
//     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_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1bar(
    JNIEnv* env,
    jclass jcaller,
    jobject sample);
JNI_BOUNDARY_EXPORT void
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1foo(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jboolean
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1hasPhalange(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jclass
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnClass(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnClasses(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedAppObjects(
    JNIEnv* env,
    jclass jcaller,
    jclass __arrayClazz);
JNI_BOUNDARY_EXPORT jintArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedInts(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedString(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedStrings(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobject
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnObject(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnObjects(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnString(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStrings(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobject
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStruct(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStructs(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jthrowable
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowable(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowables(
    JNIEnv* env,
    jclass jcaller);
JNI_BOUNDARY_EXPORT jstring
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1revString(
    JNIEnv* env,
    jclass jcaller,
    jstring stringToReverse);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1sendSamplesToNative(
    JNIEnv* env,
    jclass jcaller,
    jobjectArray strs);
JNI_BOUNDARY_EXPORT jobjectArray
    Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1sendToNative(
    JNIEnv* env,
    jclass jcaller,
    jobjectArray strs);
JNI_BOUNDARY_EXPORT jintArray
    Java_org_jni_1zero_GEN_1JNI_org_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_org_jni_1zero_GEN_1JNI_org_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_org_jni_1zero_GEN_1JNI[] = {
    { "org_jni_1zero_SampleForAnnotationProcessor_bar", "(Ljava/lang/Object;)Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1bar)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_foo", "()V",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1foo)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_hasPhalange", "()Z",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1hasPhalange)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnClass", "()Ljava/lang/Class;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnClass)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnClasses", "()[Ljava/lang/Class;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnClasses)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnConvertedAppObjects",
        "(Ljava/lang/Class;)[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedAppObjects)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnConvertedInts", "()[I",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedInts)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnConvertedString", "()Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedString)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnConvertedStrings", "()[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnConvertedStrings)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnObject", "()Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnObject)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnObjects", "()[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnObjects)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnString", "()Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnString)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnStrings", "()[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStrings)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnStruct", "()Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStruct)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnStructs", "()[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnStructs)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnThrowable", "()Ljava/lang/Throwable;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowable)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_returnThrowables", "()[Ljava/lang/Throwable;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1returnThrowables)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_revString",
        "(Ljava/lang/String;)Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1revString)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_sendSamplesToNative",
        "([Ljava/lang/Object;)[Ljava/lang/Object;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1sendSamplesToNative)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_sendToNative",
        "([Ljava/lang/String;)[Ljava/lang/String;",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1sendToNative)
        },
    { "org_jni_1zero_SampleForAnnotationProcessor_testAllPrimitives",
        "(I[IJ[JS[SC[CB[BD[DF[FZ[Z)[I",
        reinterpret_cast<void*>(Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1testAllPrimitives)
        },
    { "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_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleForAnnotationProcessor_1testSpecialTypes)
        },

};

namespace {

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

  jni_zero::ScopedJavaLocalRef<jclass> native_clazz =
      jni_zero::GetClass(env, "org/jni_zero/GEN_JNI");
  if (env->RegisterNatives(
      native_clazz.obj(),
      kMethods_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_org_jni_1zero_GEN_1JNI(env)) {
    return false;
  }


  return true;
}

}  // namespace 


#endif  // TEMP_DIR_HEADER_

