# === Below Generated by make_jni2.jl ===

get_version(penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetVersion, jint, (Ptr{JNIEnv},), penv)

define_class(name::AbstractString, loader::jobject, buf::Array{jbyte,1}, len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].DefineClass, jclass, (Ptr{JNIEnv}, Cstring, jobject, Ptr{jbyte}, jsize,), penv, name, loader, buf, len)

find_class(name::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].FindClass, jclass, (Ptr{JNIEnv}, Cstring,), penv, name)

from_reflected_method(method::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].FromReflectedMethod, jmethodID, (Ptr{JNIEnv}, jobject,), penv, method)

from_reflected_field(field::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].FromReflectedField, jfieldID, (Ptr{JNIEnv}, jobject,), penv, field)

to_reflected_method(cls::jclass, methodID::jmethodID, isStatic::jboolean, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ToReflectedMethod, jobject, (Ptr{JNIEnv}, jclass, jmethodID, jboolean,), penv, cls, methodID, isStatic)

get_superclass(sub::jclass, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetSuperclass, jclass, (Ptr{JNIEnv}, jclass,), penv, sub)

is_assignable_from(sub::jclass, sup::jclass, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].IsAssignableFrom, jboolean, (Ptr{JNIEnv}, jclass, jclass,), penv, sub, sup)

to_reflected_field(cls::jclass, fieldID::jfieldID, isStatic::jboolean, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ToReflectedField, jobject, (Ptr{JNIEnv}, jclass, jfieldID, jboolean,), penv, cls, fieldID, isStatic)

throw(obj::jthrowable, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].Throw, jint, (Ptr{JNIEnv}, jthrowable,), penv, obj)

throw_new(clazz::jclass, msg::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ThrowNew, jint, (Ptr{JNIEnv}, jclass, Cstring,), penv, clazz, msg)

exception_occurred(penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ExceptionOccurred, jthrowable, (Ptr{JNIEnv},), penv)

exception_describe(penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ExceptionDescribe, Nothing, (Ptr{JNIEnv},), penv)

exception_clear(penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ExceptionClear, Nothing, (Ptr{JNIEnv},), penv)

fatal_error(msg::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].FatalError, Nothing, (Ptr{JNIEnv}, Cstring,), penv, msg)

push_local_frame(capacity::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].PushLocalFrame, jint, (Ptr{JNIEnv}, jint,), penv, capacity)

pop_local_frame(result::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].PopLocalFrame, jobject, (Ptr{JNIEnv}, jobject,), penv, result)

new_global_ref(lobj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewGlobalRef, jobject, (Ptr{JNIEnv}, jobject,), penv, lobj)

delete_global_ref(gref::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].DeleteGlobalRef, Nothing, (Ptr{JNIEnv}, jobject,), penv, gref)

delete_local_ref(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].DeleteLocalRef, Nothing, (Ptr{JNIEnv}, jobject,), penv, obj)

is_same_object(obj1::jobject, obj2::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].IsSameObject, jboolean, (Ptr{JNIEnv}, jobject, jobject,), penv, obj1, obj2)

new_local_ref(ref::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewLocalRef, jobject, (Ptr{JNIEnv}, jobject,), penv, ref)

ensure_local_capacity(capacity::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].EnsureLocalCapacity, jint, (Ptr{JNIEnv}, jint,), penv, capacity)

alloc_object(clazz::jclass, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].AllocObject, jobject, (Ptr{JNIEnv}, jclass,), penv, clazz)

new_object_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewObjectA, jobject, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

get_object_class(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetObjectClass, jclass, (Ptr{JNIEnv}, jobject,), penv, obj)

is_instance_of(obj::jobject, clazz::jclass, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].IsInstanceOf, jboolean, (Ptr{JNIEnv}, jobject, jclass,), penv, obj, clazz)

get_method_id(clazz::jclass, name::AbstractString, sig::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetMethodID, jmethodID, (Ptr{JNIEnv}, jclass, Cstring, Cstring,), penv, clazz, name, sig)

call_object_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallObjectMethodA, jobject, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_boolean_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallBooleanMethodA, jboolean, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_byte_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallByteMethodA, jbyte, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_char_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallCharMethodA, jchar, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_short_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallShortMethodA, jshort, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_int_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallIntMethodA, jint, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_long_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallLongMethodA, jlong, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_float_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallFloatMethodA, jfloat, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_double_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallDoubleMethodA, jdouble, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_void_method_a(obj::jobject, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallVoidMethodA, Nothing, (Ptr{JNIEnv}, jobject, jmethodID, Ptr{jvalue},), penv, obj, methodID, args)

call_nonvirtual_object_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualObjectMethodA, jobject, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_boolean_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualBooleanMethodA, jboolean, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_byte_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualByteMethodA, jbyte, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_char_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualCharMethodA, jchar, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_short_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualShortMethodA, jshort, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_int_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualIntMethodA, jint, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_long_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualLongMethodA, jlong, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_float_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualFloatMethodA, jfloat, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_double_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualDoubleMethodA, jdouble, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

call_nonvirtual_void_method_a(obj::jobject, clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallNonvirtualVoidMethodA, Nothing, (Ptr{JNIEnv}, jobject, jclass, jmethodID, Ptr{jvalue},), penv, obj, clazz, methodID, args)

get_field_id(clazz::jclass, name::AbstractString, sig::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetFieldID, jfieldID, (Ptr{JNIEnv}, jclass, Cstring, Cstring,), penv, clazz, name, sig)

get_object_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetObjectField, jobject, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_boolean_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetBooleanField, jboolean, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_byte_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetByteField, jbyte, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_char_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetCharField, jchar, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_short_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetShortField, jshort, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_int_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetIntField, jint, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_long_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetLongField, jlong, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_float_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetFloatField, jfloat, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

get_double_field(obj::jobject, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetDoubleField, jdouble, (Ptr{JNIEnv}, jobject, jfieldID,), penv, obj, fieldID)

set_object_field(obj::jobject, fieldID::jfieldID, val::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetObjectField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jobject,), penv, obj, fieldID, val)

set_boolean_field(obj::jobject, fieldID::jfieldID, val::jboolean, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetBooleanField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jboolean,), penv, obj, fieldID, val)

set_byte_field(obj::jobject, fieldID::jfieldID, val::jbyte, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetByteField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jbyte,), penv, obj, fieldID, val)

set_char_field(obj::jobject, fieldID::jfieldID, val::jchar, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetCharField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jchar,), penv, obj, fieldID, val)

set_short_field(obj::jobject, fieldID::jfieldID, val::jshort, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetShortField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jshort,), penv, obj, fieldID, val)

set_int_field(obj::jobject, fieldID::jfieldID, val::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetIntField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jint,), penv, obj, fieldID, val)

set_long_field(obj::jobject, fieldID::jfieldID, val::jlong, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetLongField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jlong,), penv, obj, fieldID, val)

set_float_field(obj::jobject, fieldID::jfieldID, val::jfloat, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetFloatField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jfloat,), penv, obj, fieldID, val)

set_double_field(obj::jobject, fieldID::jfieldID, val::jdouble, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetDoubleField, Nothing, (Ptr{JNIEnv}, jobject, jfieldID, jdouble,), penv, obj, fieldID, val)

get_static_method_id(clazz::jclass, name::AbstractString, sig::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticMethodID, jmethodID, (Ptr{JNIEnv}, jclass, Cstring, Cstring,), penv, clazz, name, sig)

call_static_object_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticObjectMethodA, jobject, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_boolean_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticBooleanMethodA, jboolean, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_byte_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticByteMethodA, jbyte, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_char_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticCharMethodA, jchar, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_short_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticShortMethodA, jshort, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_int_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticIntMethodA, jint, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_long_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticLongMethodA, jlong, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_float_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticFloatMethodA, jfloat, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_double_method_a(clazz::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticDoubleMethodA, jdouble, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, clazz, methodID, args)

call_static_void_method_a(cls::jclass, methodID::jmethodID, args::Array{jvalue,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].CallStaticVoidMethodA, Nothing, (Ptr{JNIEnv}, jclass, jmethodID, Ptr{jvalue},), penv, cls, methodID, args)

get_static_field_id(clazz::jclass, name::AbstractString, sig::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticFieldID, jfieldID, (Ptr{JNIEnv}, jclass, Cstring, Cstring,), penv, clazz, name, sig)

get_static_object_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticObjectField, jobject, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_boolean_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticBooleanField, jboolean, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_byte_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticByteField, jbyte, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_char_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticCharField, jchar, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_short_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticShortField, jshort, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_int_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticIntField, jint, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_long_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticLongField, jlong, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_float_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticFloatField, jfloat, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

get_static_double_field(clazz::jclass, fieldID::jfieldID, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStaticDoubleField, jdouble, (Ptr{JNIEnv}, jclass, jfieldID,), penv, clazz, fieldID)

set_static_object_field(clazz::jclass, fieldID::jfieldID, value::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticObjectField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jobject,), penv, clazz, fieldID, value)

set_static_boolean_field(clazz::jclass, fieldID::jfieldID, value::jboolean, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticBooleanField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jboolean,), penv, clazz, fieldID, value)

set_static_byte_field(clazz::jclass, fieldID::jfieldID, value::jbyte, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticByteField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jbyte,), penv, clazz, fieldID, value)

set_static_char_field(clazz::jclass, fieldID::jfieldID, value::jchar, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticCharField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jchar,), penv, clazz, fieldID, value)

set_static_short_field(clazz::jclass, fieldID::jfieldID, value::jshort, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticShortField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jshort,), penv, clazz, fieldID, value)

set_static_int_field(clazz::jclass, fieldID::jfieldID, value::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticIntField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jint,), penv, clazz, fieldID, value)

set_static_long_field(clazz::jclass, fieldID::jfieldID, value::jlong, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticLongField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jlong,), penv, clazz, fieldID, value)

set_static_float_field(clazz::jclass, fieldID::jfieldID, value::jfloat, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticFloatField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jfloat,), penv, clazz, fieldID, value)

set_static_double_field(clazz::jclass, fieldID::jfieldID, value::jdouble, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetStaticDoubleField, Nothing, (Ptr{JNIEnv}, jclass, jfieldID, jdouble,), penv, clazz, fieldID, value)

new_string(unicode::Array{jchar,1}, len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewString, jstring, (Ptr{JNIEnv}, Ptr{jchar}, jsize,), penv, unicode, len)

get_string_length(str::jstring, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringLength, jsize, (Ptr{JNIEnv}, jstring,), penv, str)

get_string_chars(str::jstring, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringChars, Ptr{jchar}, (Ptr{JNIEnv}, jstring, Ptr{jboolean},), penv, str, isCopy)

release_string_chars(str::jstring, chars::Array{jchar,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseStringChars, Nothing, (Ptr{JNIEnv}, jstring, Ptr{jchar},), penv, str, chars)

new_string_utf(utf::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewStringUTF, jstring, (Ptr{JNIEnv}, Cstring,), penv, utf)

get_string_utflength(str::jstring, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringUTFLength, jsize, (Ptr{JNIEnv}, jstring,), penv, str)

get_string_utfchars(str::jstring, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringUTFChars, Cstring, (Ptr{JNIEnv}, jstring, Ptr{jboolean},), penv, str, isCopy)

release_string_utfchars(str::jstring, chars::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseStringUTFChars, Nothing, (Ptr{JNIEnv}, jstring, Cstring,), penv, str, chars)

get_array_length(array::jarray, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetArrayLength, jsize, (Ptr{JNIEnv}, jarray,), penv, array)

new_object_array(len::Integer, clazz::jclass, init::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewObjectArray, jobjectArray, (Ptr{JNIEnv}, jsize, jclass, jobject,), penv, len, clazz, init)

get_object_array_element(array::jobjectArray, index::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetObjectArrayElement, jobject, (Ptr{JNIEnv}, jobjectArray, jsize,), penv, array, index)

set_object_array_element(array::jobjectArray, index::Integer, val::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetObjectArrayElement, Nothing, (Ptr{JNIEnv}, jobjectArray, jsize, jobject,), penv, array, index, val)

new_boolean_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewBooleanArray, jbooleanArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_byte_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewByteArray, jbyteArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_char_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewCharArray, jcharArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_short_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewShortArray, jshortArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_int_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewIntArray, jintArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_long_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewLongArray, jlongArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_float_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewFloatArray, jfloatArray, (Ptr{JNIEnv}, jsize,), penv, len)

new_double_array(len::Integer, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewDoubleArray, jdoubleArray, (Ptr{JNIEnv}, jsize,), penv, len)

get_boolean_array_elements(array::jbooleanArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetBooleanArrayElements, Ptr{jboolean}, (Ptr{JNIEnv}, jbooleanArray, Ptr{jboolean},), penv, array, isCopy)

get_byte_array_elements(array::jbyteArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetByteArrayElements, Ptr{jbyte}, (Ptr{JNIEnv}, jbyteArray, Ptr{jboolean},), penv, array, isCopy)

get_char_array_elements(array::jcharArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetCharArrayElements, Ptr{jchar}, (Ptr{JNIEnv}, jcharArray, Ptr{jboolean},), penv, array, isCopy)

get_short_array_elements(array::jshortArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetShortArrayElements, Ptr{jshort}, (Ptr{JNIEnv}, jshortArray, Ptr{jboolean},), penv, array, isCopy)

get_int_array_elements(array::jintArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetIntArrayElements, Ptr{jint}, (Ptr{JNIEnv}, jintArray, Ptr{jboolean},), penv, array, isCopy)

get_long_array_elements(array::jlongArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetLongArrayElements, Ptr{jlong}, (Ptr{JNIEnv}, jlongArray, Ptr{jboolean},), penv, array, isCopy)

get_float_array_elements(array::jfloatArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetFloatArrayElements, Ptr{jfloat}, (Ptr{JNIEnv}, jfloatArray, Ptr{jboolean},), penv, array, isCopy)

get_double_array_elements(array::jdoubleArray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetDoubleArrayElements, Ptr{jdouble}, (Ptr{JNIEnv}, jdoubleArray, Ptr{jboolean},), penv, array, isCopy)

release_boolean_array_elements(array::jbooleanArray, elems::Ptr{jboolean}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseBooleanArrayElements, Nothing, (Ptr{JNIEnv}, jbooleanArray, Ptr{jboolean}, jint,), penv, array, elems, mode)

release_byte_array_elements(array::jbyteArray, elems::Ptr{jbyte}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseByteArrayElements, Nothing, (Ptr{JNIEnv}, jbyteArray, Ptr{jbyte}, jint,), penv, array, elems, mode)

release_char_array_elements(array::jcharArray, elems::Ptr{jchar}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseCharArrayElements, Nothing, (Ptr{JNIEnv}, jcharArray, Ptr{jchar}, jint,), penv, array, elems, mode)

release_short_array_elements(array::jshortArray, elems::Ptr{jshort}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseShortArrayElements, Nothing, (Ptr{JNIEnv}, jshortArray, Ptr{jshort}, jint,), penv, array, elems, mode)

release_int_array_elements(array::jintArray, elems::Ptr{jint}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseIntArrayElements, Nothing, (Ptr{JNIEnv}, jintArray, Ptr{jint}, jint,), penv, array, elems, mode)

release_long_array_elements(array::jlongArray, elems::Ptr{jlong}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseLongArrayElements, Nothing, (Ptr{JNIEnv}, jlongArray, Ptr{jlong}, jint,), penv, array, elems, mode)

release_float_array_elements(array::jfloatArray, elems::Ptr{jfloat}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseFloatArrayElements, Nothing, (Ptr{JNIEnv}, jfloatArray, Ptr{jfloat}, jint,), penv, array, elems, mode)

release_double_array_elements(array::jdoubleArray, elems::Ptr{jdouble}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseDoubleArrayElements, Nothing, (Ptr{JNIEnv}, jdoubleArray, Ptr{jdouble}, jint,), penv, array, elems, mode)

get_boolean_array_region(array::jbooleanArray, start::Integer, l::Integer, buf::Array{jboolean,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetBooleanArrayRegion, Nothing, (Ptr{JNIEnv}, jbooleanArray, jsize, jsize, Ptr{jboolean},), penv, array, start, l, buf)

get_byte_array_region(array::jbyteArray, start::Integer, len::Integer, buf::Array{jbyte,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetByteArrayRegion, Nothing, (Ptr{JNIEnv}, jbyteArray, jsize, jsize, Ptr{jbyte},), penv, array, start, len, buf)

get_char_array_region(array::jcharArray, start::Integer, len::Integer, buf::Array{jchar,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetCharArrayRegion, Nothing, (Ptr{JNIEnv}, jcharArray, jsize, jsize, Ptr{jchar},), penv, array, start, len, buf)

get_short_array_region(array::jshortArray, start::Integer, len::Integer, buf::Array{jshort,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetShortArrayRegion, Nothing, (Ptr{JNIEnv}, jshortArray, jsize, jsize, Ptr{jshort},), penv, array, start, len, buf)

get_int_array_region(array::jintArray, start::Integer, len::Integer, buf::Array{jint,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetIntArrayRegion, Nothing, (Ptr{JNIEnv}, jintArray, jsize, jsize, Ptr{jint},), penv, array, start, len, buf)

get_long_array_region(array::jlongArray, start::Integer, len::Integer, buf::Array{jlong,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetLongArrayRegion, Nothing, (Ptr{JNIEnv}, jlongArray, jsize, jsize, Ptr{jlong},), penv, array, start, len, buf)

get_float_array_region(array::jfloatArray, start::Integer, len::Integer, buf::Array{jfloat,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetFloatArrayRegion, Nothing, (Ptr{JNIEnv}, jfloatArray, jsize, jsize, Ptr{jfloat},), penv, array, start, len, buf)

get_double_array_region(array::jdoubleArray, start::Integer, len::Integer, buf::Array{jdouble,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetDoubleArrayRegion, Nothing, (Ptr{JNIEnv}, jdoubleArray, jsize, jsize, Ptr{jdouble},), penv, array, start, len, buf)

set_boolean_array_region(array::jbooleanArray, start::Integer, l::Integer, buf::Array{jboolean,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetBooleanArrayRegion, Nothing, (Ptr{JNIEnv}, jbooleanArray, jsize, jsize, Ptr{jboolean},), penv, array, start, l, buf)

set_byte_array_region(array::jbyteArray, start::Integer, len::Integer, buf::Array{jbyte,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetByteArrayRegion, Nothing, (Ptr{JNIEnv}, jbyteArray, jsize, jsize, Ptr{jbyte},), penv, array, start, len, buf)

set_char_array_region(array::jcharArray, start::Integer, len::Integer, buf::Array{jchar,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetCharArrayRegion, Nothing, (Ptr{JNIEnv}, jcharArray, jsize, jsize, Ptr{jchar},), penv, array, start, len, buf)

set_short_array_region(array::jshortArray, start::Integer, len::Integer, buf::Array{jshort,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetShortArrayRegion, Nothing, (Ptr{JNIEnv}, jshortArray, jsize, jsize, Ptr{jshort},), penv, array, start, len, buf)

set_int_array_region(array::jintArray, start::Integer, len::Integer, buf::Array{jint,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetIntArrayRegion, Nothing, (Ptr{JNIEnv}, jintArray, jsize, jsize, Ptr{jint},), penv, array, start, len, buf)

set_long_array_region(array::jlongArray, start::Integer, len::Integer, buf::Array{jlong,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetLongArrayRegion, Nothing, (Ptr{JNIEnv}, jlongArray, jsize, jsize, Ptr{jlong},), penv, array, start, len, buf)

set_float_array_region(array::jfloatArray, start::Integer, len::Integer, buf::Array{jfloat,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetFloatArrayRegion, Nothing, (Ptr{JNIEnv}, jfloatArray, jsize, jsize, Ptr{jfloat},), penv, array, start, len, buf)

set_double_array_region(array::jdoubleArray, start::Integer, len::Integer, buf::Array{jdouble,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].SetDoubleArrayRegion, Nothing, (Ptr{JNIEnv}, jdoubleArray, jsize, jsize, Ptr{jdouble},), penv, array, start, len, buf)

register_natives(clazz::jclass, methods::Array{JNINativeMethod,1}, nMethods::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].RegisterNatives, jint, (Ptr{JNIEnv}, jclass, Ptr{JNINativeMethod}, jint,), penv, clazz, methods, nMethods)

unregister_natives(clazz::jclass, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].UnregisterNatives, jint, (Ptr{JNIEnv}, jclass,), penv, clazz)

monitor_enter(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].MonitorEnter, jint, (Ptr{JNIEnv}, jobject,), penv, obj)

monitor_exit(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].MonitorExit, jint, (Ptr{JNIEnv}, jobject,), penv, obj)

get_java_vm(vm::Array{JavaVM,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetJavaVM, jint, (Ptr{JNIEnv}, Array{JavaVM,1},), penv, vm)

get_string_region(str::jstring, start::Integer, len::Integer, buf::Array{jchar,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringRegion, Nothing, (Ptr{JNIEnv}, jstring, jsize, jsize, Ptr{jchar},), penv, str, start, len, buf)

get_string_utfregion(str::jstring, start::Integer, len::Integer, buf::AbstractString, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringUTFRegion, Nothing, (Ptr{JNIEnv}, jstring, jsize, jsize, Cstring,), penv, str, start, len, buf)

get_primitive_array_critical(array::jarray, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetPrimitiveArrayCritical, Ptr{Nothing}, (Ptr{JNIEnv}, jarray, Ptr{jboolean},), penv, array, isCopy)

release_primitive_array_critical(array::jarray, carray::Ptr{Nothing}, mode::jint, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleasePrimitiveArrayCritical, Nothing, (Ptr{JNIEnv}, jarray, Ptr{Nothing}, jint,), penv, array, carray, mode)

get_string_critical(string::jstring, isCopy::Ptr{jboolean}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetStringCritical, Ptr{jchar}, (Ptr{JNIEnv}, jstring, Ptr{jboolean},), penv, string, isCopy)

release_string_critical(string::jstring, cstring::Array{jchar,1}, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ReleaseStringCritical, Nothing, (Ptr{JNIEnv}, jstring, Ptr{jchar},), penv, string, cstring)

new_weak_global_ref(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewWeakGlobalRef, jweak, (Ptr{JNIEnv}, jobject,), penv, obj)

delete_weak_global_ref(ref::jweak, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].DeleteWeakGlobalRef, Nothing, (Ptr{JNIEnv}, jweak,), penv, ref)

exception_check(penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].ExceptionCheck, jboolean, (Ptr{JNIEnv},), penv)

new_direct_byte_buffer(address::Ptr{Nothing}, capacity::jlong, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].NewDirectByteBuffer, jobject, (Ptr{JNIEnv}, Ptr{Nothing}, jlong,), penv, address, capacity)

get_direct_buffer_address(buf::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetDirectBufferAddress, Ptr{Nothing}, (Ptr{JNIEnv}, jobject,), penv, buf)

get_direct_buffer_capacity(buf::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetDirectBufferCapacity, jlong, (Ptr{JNIEnv}, jobject,), penv, buf)

get_object_ref_type(obj::jobject, penv=jnienvptrs[]) =
  ccall(jninativeinterfaceref[].GetObjectRefType, jobjectRefType, (Ptr{JNIEnv}, jobject,), penv, obj)


# === Above Generated by make_jni2.jl ===
