class
	JNI_ENVIRONMENT

General
	cluster: eiffel2java
	description: "Holds information abouy JNI environment. Potentially many JNI environments can exists at once, but more than one was never tested"
	create: make

Ancestors
	ANY

Queries
	call_boolean_method (oid, mid, args: POINTER): BOOLEAN
	call_byte_method (oid, mid, args: POINTER): INTEGER_8
	call_char_method (oid, mid, args: POINTER): CHARACTER_8
	call_double_method (oid, mid, args: POINTER): REAL_64
	call_float_method (oid, mid, args: POINTER): REAL_32
	call_int_method (oid, mid, args: POINTER): INTEGER_32
	call_long_method (oid, mid, args: POINTER): INTEGER_64
	call_object_method (oid, mid, argsp: POINTER): POINTER
	call_short_method (oid, mid, args: POINTER): INTEGER_16
	call_static_boolean_method (cls, mid, argp: POINTER): BOOLEAN
	call_static_byte_method (cls, mid, argp: POINTER): INTEGER_8
	call_static_char_method (cls, mid, argp: POINTER): CHARACTER_8
	call_static_double_method (cls, mid, argp: POINTER): REAL_64
	call_static_float_method (cls, mid, argp: POINTER): REAL_32
	call_static_int_method (cls, mid, argp: POINTER): INTEGER_32
	call_static_long_method (cls, mid, argp: POINTER): INTEGER_64
	call_static_object_method (cls, mid, argp: POINTER): POINTER
	call_static_short_method (cls, mid, argp: POINTER): INTEGER_16
	call_static_string_method (cls, mid, argsp: POINTER): STRING_8
	call_string_method (oid, mid, args: POINTER): STRING_8
	find_class (name: STRING_8): JAVA_CLASS
	find_class_by_pointer (classp: POINTER): JAVA_CLASS
	find_class_pointer (name: STRING_8): POINTER
	get_array_length (jarray: POINTER): INTEGER_32
	get_boolean_array_elements (jarray, is_copy: POINTER): POINTER
	get_boolean_field (oid, fid: POINTER): BOOLEAN
	get_byte_array_elements (jarray, is_copy: POINTER): POINTER
	get_byte_field (oid, fid: POINTER): INTEGER_8
	get_char_array_elements (jarray, is_copy: POINTER): POINTER
	get_char_field (oid, fid: POINTER): CHARACTER_8
	get_class (an_obj: POINTER): POINTER
	get_double_array_elements (jarray, is_copy: POINTER): POINTER
	get_double_field (oid, fid: POINTER): REAL_64
	get_field_id (cls, fname, sig: POINTER): POINTER
	get_float_array_elements (jarray, is_copy: POINTER): POINTER
	get_float_field (oid, fid: POINTER): REAL_32
	get_int_array_elements (jarray, is_copy: POINTER): POINTER
	get_integer_field (oid, fid: POINTER): INTEGER_32
	get_long_array_elements (jarray, is_copy: POINTER): POINTER
	get_long_field (oid, fid: POINTER): INTEGER_64
	get_method_id (cls, mname, sig: POINTER): POINTER
	get_object_array_element (jarray: POINTER; indx: INTEGER_32): POINTER
	get_object_field (oid, fid: POINTER): POINTER
	get_short_array_elements (jarray, is_copy: POINTER): POINTER
	get_short_field (oid, fid: POINTER): INTEGER_16
	get_static_boolean_field (cls, fid: POINTER): BOOLEAN
	get_static_byte_field (cls, fid: POINTER): INTEGER_8
	get_static_char_field (cls, fid: POINTER): CHARACTER_8
	get_static_double_field (cls, fid: POINTER): REAL_64
	get_static_field_id (cls, fname, sig: POINTER): POINTER
	get_static_float_field (cls, fid: POINTER): REAL_32
	get_static_integer_field (cls, fid: POINTER): INTEGER_32
	get_static_long_field (cls, fid: POINTER): INTEGER_64
	get_static_method_id (cls, mname, sig: POINTER): POINTER
	get_static_object_field (cls, fid: POINTER): POINTER
	get_static_short_field (cls, fid: POINTER): INTEGER_16
	get_static_string_field (cls, fid: POINTER): STRING_8
	get_string (a_str: POINTER): STRING_8
	get_string_field (oid, fid: POINTER): STRING_8
	new_boolean_array (a_size: INTEGER_32): POINTER
	new_byte_array (a_size: INTEGER_32): POINTER
	new_char_array (a_size: INTEGER_32): POINTER
	new_double_array (a_size: INTEGER_32): POINTER
	new_float_array (a_size: INTEGER_32): POINTER
	new_int_array (a_size: INTEGER_32): POINTER
	new_long_array (a_size: INTEGER_32): POINTER
	new_object (cls, constructor, args: POINTER): POINTER
	new_object_array (a_size: INTEGER_32; element_class, init_elt: POINTER): POINTER
	new_short_array (a_size: INTEGER_32): POINTER
	new_string (v: STRING_8): POINTER

Commands
	attach_current_thread
	c_throw_custom_exception (lenv, jclass_id, msg: POINTER)
	c_throw_java_exception (lenv, jthrowable: POINTER)
	call_static_void_method (cls, mid, argp: POINTER)
	call_void_method (oid, mid, args: POINTER)
	check_for_exceptions
	destroy_vm
	detach_current_thread
	release_boolean_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_byte_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_char_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_double_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_float_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_int_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_long_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	release_short_array_elements (jarray, elts: POINTER; mode: INTEGER_32)
	set_boolean_field (oid, fid: POINTER; v: BOOLEAN)
	set_byte_field (oid, fid: POINTER; v: INTEGER_8)
	set_char_field (oid, fid: POINTER; v: CHARACTER_8)
	set_double_field (oid, fid: POINTER; v: REAL_64)
	set_float_field (oid, fid: POINTER; v: REAL_32)
	set_integer_field (oid, fid: POINTER; v: INTEGER_32)
	set_long_field (oid, fid: POINTER; v: INTEGER_64)
	set_object_array_element (jarray: POINTER; indx: INTEGER_32; v: POINTER)
	set_object_field (oid, fid, v: POINTER)
	set_short_field (oid, fid: POINTER; v: INTEGER_16)
	set_static_boolean_field (cls, fid: POINTER; v: BOOLEAN)
	set_static_byte_field (cls, fid: POINTER; v: INTEGER_8)
	set_static_char_field (cls, fid: POINTER; v: CHARACTER_8)
	set_static_double_field (cls, fid: POINTER; v: REAL_64)
	set_static_float_field (cls, fid: POINTER; v: REAL_32)
	set_static_integer_field (cls, fid: POINTER; v: INTEGER_32)
	set_static_long_field (cls, fid: POINTER; v: INTEGER_64)
	set_static_object_field (cls, fid, v: POINTER)
	set_static_short_field (cls, fid: POINTER; v: INTEGER_16)
	set_static_string_field (cls, fid: POINTER; value: STRING_8)
	set_string_field (oid, fid: POINTER; v: STRING_8)
	throw_custom_exception (jclass: JAVA_CLASS; msg: STRING_8)
	throw_java_exception (jthrowable: JAVA_OBJECT)

Constraints
	jvm not void
	java class table not void
	java object table not void