// This file was generated by
//     //third_party/jni_zero/jni_zero.py
// For
//     J.N

#ifndef TEMP_DIR_HEADER_
#define TEMP_DIR_HEADER_

#include <iterator>

#include "overridden/jni_zero_internal.h"


extern const int64_t kJniZeroHashWhole = -7874644414477415949LL;
extern const int64_t kJniZeroHashPriority = 4128442159926458844LL;

// Class Accessors.
#ifndef org_jni_1zero_SampleProxyEdgeCases_clazz_defined
#define org_jni_1zero_SampleProxyEdgeCases_clazz_defined
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunique-object-duplication"
inline jclass org_jni_1zero_SampleProxyEdgeCases_clazz(JNIEnv* env) {
  static const char kClassName[] = "org/jni_zero/SampleProxyEdgeCases";
  static std::atomic<jclass> cached_class;
  return jni_zero::internal::LazyGetClass(env, kClassName, &cached_class);
}
#pragma clang diagnostic pop
#endif


// Forward Declarations.
JNI_ZERO_MUXED_ENTRYPOINT void Muxed_org_jni_1zero_TinySample2_test(
    JNIEnv* env,
    jint b,
    jobject a);
JNI_ZERO_MUXED_ENTRYPOINT void Muxed_org_jni_1zero_TinySample2_test2(
    JNIEnv* env,
    jint a,
    jobject b);
JNI_ZERO_MUXED_ENTRYPOINT jint Muxed_org_jni_1zero_SampleProxyEdgeCases_addStructB(
    JNIEnv* env,
    jobject caller,
    jobject b);
JNI_ZERO_MUXED_ENTRYPOINT jobject Muxed_org_jni_1zero_SampleProxyEdgeCases_arrayTypes1(
    JNIEnv* env,
    jobject a,
    jobject b);
JNI_ZERO_MUXED_ENTRYPOINT jobject Muxed_org_jni_1zero_SampleProxyEdgeCases_arrayTypes2(
    JNIEnv* env,
    jobject a,
    jobject b);
JNI_ZERO_MUXED_ENTRYPOINT void Muxed_org_jni_1zero_SampleProxyEdgeCases_foo__weirdly__escaped_name1(
    JNIEnv* env);
JNI_ZERO_MUXED_ENTRYPOINT jobject Muxed_org_jni_1zero_SampleProxyEdgeCases_genericsWithNestedClassArray(
    JNIEnv* env,
    jobject arg);
JNI_ZERO_MUXED_ENTRYPOINT void Muxed_org_jni_1zero_SampleProxyEdgeCases_setBool(
    JNIEnv* env,
    jobject b,
    jobject i);
JNI_ZERO_MUXED_ENTRYPOINT jboolean Muxed_org_jni_1zero_SampleProxyEdgeCases_setStringBuilder(
    JNIEnv* env,
    jobject sb);
JNI_ZERO_MUXED_ENTRYPOINT jint Muxed_org_jni_1zero_SampleProxyEdgeCases_setStringBuilder(
    JNIEnv* env,
    jint sb);
JNI_ZERO_BOUNDARY_EXPORT void Java_org_jni_1zero_SampleProxyEdgeCases_nativeInstanceMethod(
    JNIEnv* env,
    jlong nativeInstance);
JNI_ZERO_BOUNDARY_EXPORT void Java_org_jni_1zero_SampleProxyEdgeCases_nativeStaticMethod(
    JNIEnv* env);
JNI_ZERO_MUXED_ENTRYPOINT jboolean Muxed_org_jni_1zero_TinySample_bar(
    JNIEnv* env,
    jint a,
    jobject b);
JNI_ZERO_MUXED_ENTRYPOINT void Muxed_org_jni_1zero_TinySample_foo(JNIEnv* env, jint b, jobject a);

// Multiplexing Methods.
JNI_ZERO_BOUNDARY_EXPORT void Java_J_N_V(JNIEnv* env, jclass jcaller, jint switch_num) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_foo__weirdly__escaped_name1(env);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jint Java_J_N_II(JNIEnv* env, jclass jcaller, jint switch_num, jint p0) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_setStringBuilder(env, p0);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jobject Java_J_N_OO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jobject p0) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_genericsWithNestedClassArray(env, p0);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jboolean Java_J_N_ZO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jobject p0) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_setStringBuilder(env, p0);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT void Java_J_N_VIO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jint p0,
    jobject p1) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 3);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_TinySample2_test(env, p0, p1);
    case 1:
      return Muxed_org_jni_1zero_TinySample2_test2(env, p0, p1);
    case 2:
      return Muxed_org_jni_1zero_TinySample_foo(env, p0, p1);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT void Java_J_N_VOO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jobject p0,
    jobject p1) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_setBool(env, p0, p1);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jint Java_J_N_IOO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jobject p0,
    jobject p1) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_addStructB(env, p0, p1);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jobject Java_J_N_OOO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jobject p0,
    jobject p1) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 2);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_arrayTypes1(env, p0, p1);
    case 1:
      return Muxed_org_jni_1zero_SampleProxyEdgeCases_arrayTypes2(env, p0, p1);
    default:
      __builtin_unreachable();
  }
}
JNI_ZERO_BOUNDARY_EXPORT jboolean Java_J_N_ZIO(
    JNIEnv* env,
    jclass jcaller,
    jint switch_num,
    jint p0,
    jobject p1) {
  JNI_ZERO_DCHECK(switch_num >= 0 && switch_num < 1);
  switch (switch_num) {
    case 0:
      return Muxed_org_jni_1zero_TinySample_bar(env, p0, p1);
    default:
      __builtin_unreachable();
  }
}


#endif  // TEMP_DIR_HEADER_
