indexing
description: "Holds information abouy JNI environment. Potentially many JNI environments can exists at once, but more than one was never tested"
legal: "See notice at end of class."
status: "See notice at end of class."
date: "$Date: 2006-01-22 18:25:44 -0800 (Sun, 22 Jan 2006) $"
revision: "$Revision: 56675 $"
class interface
JNI_ENVIRONMENT
create {JAVA_VM}
make (vm: JAVA_VM)
require
vm_not_void: vm /= Void
feature
generating_type: STRING_8
ANY
generator: STRING_8
ANY
feature
frozen deep_equal (some: ANY; other: like arg #1): BOOLEAN
`some'`other'
ANY
ensure ANY
shallow_implies_deep: standard_equal (some, other) implies Result
both_or_none_void: (some = Void) implies (Result = (other = Void))
same_type: (Result and (some /= Void)) implies some.same_type (other)
symmetric: Result implies deep_equal (other, some)
frozen equal (some: ANY; other: like arg #1): BOOLEAN
`some'`other'
ANY
ensure ANY
definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.is_equal (other))
is_equal (other: like Current): BOOLEAN
`other'
ANY
require ANY
other_not_void: other /= Void
ensure ANY
symmetric: Result implies other.is_equal (Current)
consistent: standard_is_equal (other) implies Result
frozen standard_equal (some: ANY; other: like arg #1): BOOLEAN
`some'`other'
ANY
ensure ANY
definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.standard_is_equal (other))
frozen standard_is_equal (other: like Current): BOOLEAN
`other'
ANY
require ANY
other_not_void: other /= Void
ensure ANY
same_type: Result implies same_type (other)
symmetric: Result implies other.standard_is_equal (Current)
feature
conforms_to (other: ANY): BOOLEAN
`other'
ANY
require ANY
other_not_void: other /= Void
same_type (other: ANY): BOOLEAN
`other'
ANY
require ANY
other_not_void: other /= Void
ensure ANY
definition: Result = (conforms_to (other) and other.conforms_to (Current))
feature
copy (other: like Current)
`other'
ANY
require ANY
other_not_void: other /= Void
type_identity: same_type (other)
ensure ANY
is_equal: is_equal (other)
frozen deep_copy (other: like Current)
copy`other'deep_twin
ANY
require ANY
other_not_void: other /= Void
ensure ANY
deep_equal: deep_equal (Current, other)
frozen deep_twin: like Current
ANY
ensure ANY
deep_equal: deep_equal (Current, Result)
frozen standard_copy (other: like Current)
`other'
ANY
require ANY
other_not_void: other /= Void
type_identity: same_type (other)
ensure ANY
is_standard_equal: standard_is_equal (other)
frozen standard_twin: like Current
`other'
ANY
ensure ANY
standard_twin_not_void: Result /= Void
equal: standard_equal (Result, Current)
frozen twin: like Current
`Current'
twincopycopy
ANY
ensure ANY
twin_not_void: Result /= Void
is_equal: Result.is_equal (Current)
feature
frozen default: like Current
ANY
frozen default_pointer: POINTER
`POINTER'
`p'default
`p'`POINTER'
ANY
default_rescue
ANY
frozen do_nothing
ANY
feature
get_array_length (jarray: POINTER): INTEGER_32
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_boolean_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_byte_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_char_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_double_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_float_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_int_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_long_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
get_object_array_element (jarray: POINTER; indx: INTEGER_32): POINTER
`indx'`jarray'
require
jarray_not_null: jarray /= default_pointer
get_short_array_elements (jarray: POINTER; is_copy: POINTER): POINTER
`jarray'
require
jarray_not_null: jarray /= default_pointer
release_boolean_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_byte_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_char_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_double_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_float_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_int_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_long_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
release_short_array_elements (jarray: POINTER; elts: POINTER; mode: INTEGER_32)
`jarray'`elts'
require
jarray_not_null: jarray /= default_pointer
elts_not_null: elts /= default_pointer
set_object_array_element (jarray: POINTER; indx: INTEGER_32; v: POINTER)
`v'`indx'`jarray'
require
jarray_not_null: jarray /= default_pointer
feature
call_boolean_method (oid: POINTER; mid: POINTER; args: POINTER): BOOLEAN
`mid'`args'`oid'
call_byte_method (oid: POINTER; mid: POINTER; args: POINTER): INTEGER_8
`mid'`args'`oid'
call_char_method (oid: POINTER; mid: POINTER; args: POINTER): CHARACTER_8
`mid'`args'`oid'
call_double_method (oid: POINTER; mid: POINTER; args: POINTER): REAL_64
`mid'`args'`oid'
call_float_method (oid: POINTER; mid: POINTER; args: POINTER): REAL_32
`mid'`args'`oid'
call_int_method (oid: POINTER; mid: POINTER; args: POINTER): INTEGER_32
`mid'`args'`oid'
call_long_method (oid: POINTER; mid: POINTER; args: POINTER): INTEGER_64
`mid'`args'`oid'
call_object_method (oid: POINTER; mid: POINTER; argsp: POINTER): POINTER
`mid'`args'`oid'
call_short_method (oid: POINTER; mid: POINTER; args: POINTER): INTEGER_16
`mid'`args'`oid'
call_string_method (oid: POINTER; mid: POINTER; args: POINTER): STRING_8
`mid'`args'`oid'
call_void_method (oid: POINTER; mid: POINTER; args: POINTER)
`mid'`args'`oid'
feature
get_string (a_str: POINTER): STRING_8
`a_str'
require
a_str_not_null: a_str /= default_pointer
feature
destroy_vm
feature
check_for_exceptions
throw_custom_exception (jclass: JAVA_CLASS; msg: STRING_8)
throw_java_exception (jthrowable: JAVA_OBJECT)
feature
get_boolean_field (oid: POINTER; fid: POINTER): BOOLEAN
`fid'`oid'
get_byte_field (oid: POINTER; fid: POINTER): INTEGER_8
`fid'`oid'
get_char_field (oid: POINTER; fid: POINTER): CHARACTER_8
`fid'`oid'
get_double_field (oid: POINTER; fid: POINTER): REAL_64
`fid'`oid'
get_float_field (oid: POINTER; fid: POINTER): REAL_32
`fid'`oid'
get_integer_field (oid: POINTER; fid: POINTER): INTEGER_32
`fid'`oid'
get_long_field (oid: POINTER; fid: POINTER): INTEGER_64
`fid'`oid'
get_object_field (oid: POINTER; fid: POINTER): POINTER
`fid'`oid'
get_short_field (oid: POINTER; fid: POINTER): INTEGER_16
`fid'`oid'
get_string_field (oid: POINTER; fid: POINTER): STRING_8
require
oid_not_null: oid /= default_pointer
fid_not_null: fid /= default_pointer
feature
set_boolean_field (oid: POINTER; fid: POINTER; v: BOOLEAN)
`fid'`v'`oid'
set_byte_field (oid: POINTER; fid: POINTER; v: INTEGER_8)
`fid'`v'`oid'
set_char_field (oid: POINTER; fid: POINTER; v: CHARACTER_8)
`fid'`v'`oid'
set_double_field (oid: POINTER; fid: POINTER; v: REAL_64)
`fid'`v'`oid'
set_float_field (oid: POINTER; fid: POINTER; v: REAL_32)
`fid'`v'`oid'
set_integer_field (oid: POINTER; fid: POINTER; v: INTEGER_32)
`fid'`v'`oid'
set_long_field (oid: POINTER; fid: POINTER; v: INTEGER_64)
`fid'`v'`oid'
set_object_field (oid: POINTER; fid: POINTER; v: POINTER)
`fid'`v'`oid'
set_short_field (oid: POINTER; fid: POINTER; v: INTEGER_16)
`fid'`v'`oid'
set_string_field (oid: POINTER; fid: POINTER; v: STRING_8)
require
oid_not_null: oid /= default_pointer
fid_not_null: fid /= default_pointer
v_not_void: v /= Void
ensure
string_field_set: v.is_equal (get_string_field (oid, fid))
feature
c_throw_custom_exception (lenv: POINTER; jclass_id: POINTER; msg: POINTER)
c_throw_java_exception (lenv: POINTER; jthrowable: POINTER)
feature
new_boolean_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_byte_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_char_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_double_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_float_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_int_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_long_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_object (cls: POINTER; constructor: POINTER; args: POINTER): POINTER
`cls'`constructor'
`args'
new_object_array (a_size: INTEGER_32; element_class: POINTER; init_elt: POINTER): POINTER
`element_class'
require
a_size_positive: a_size >= 0
element_class_not_null: element_class /= default_pointer
new_short_array (a_size: INTEGER_32): POINTER
require
a_size_positive: a_size >= 0
new_string (v: STRING_8): POINTER
`v'
feature
io: STD_FILES
ANY
out: STRING_8
ANYtagged_out
ANY
print (some: ANY)
`some'
ANY
frozen tagged_out: STRING_8
ANYout
ANY
feature
operating_environment: OPERATING_ENVIRONMENT
ANY
feature
find_class (name: STRING_8): JAVA_CLASS
`/'
require
name_valid: name /= Void
find_class_by_pointer (classp: POINTER): JAVA_CLASS
require
classp_not_null: classp /= default_pointer
find_class_pointer (name: STRING_8): POINTER
`/'
get_class (an_obj: POINTER): POINTER
`an_obj'
require
an_obj_not_null: an_obj /= default_pointer
get_field_id (cls: POINTER; fname, sig: POINTER): POINTER
`mname'`cls'`sig'
get_method_id (cls: POINTER; mname: POINTER; sig: POINTER): POINTER
`mname'`cls'`sig'
get_static_field_id (cls: POINTER; fname, sig: POINTER): POINTER
`mname'`cls'`sig'
get_static_method_id (cls: POINTER; mname: POINTER; sig: POINTER): POINTER
`mname'`cls'`sig'
feature
get_static_boolean_field (cls: POINTER; fid: POINTER): BOOLEAN
`fid'`cls'
get_static_byte_field (cls: POINTER; fid: POINTER): INTEGER_8
`fid'`cls'
get_static_char_field (cls: POINTER; fid: POINTER): CHARACTER_8
`fid'`cls'
get_static_double_field (cls: POINTER; fid: POINTER): REAL_64
`fid'`cls'
get_static_float_field (cls: POINTER; fid: POINTER): REAL_32
`fid'`cls'
get_static_integer_field (cls: POINTER; fid: POINTER): INTEGER_32
`fid'`cls'
get_static_long_field (cls: POINTER; fid: POINTER): INTEGER_64
`fid'`cls'
get_static_object_field (cls: POINTER; fid: POINTER): POINTER
`fid'`cls'
get_static_short_field (cls: POINTER; fid: POINTER): INTEGER_16
`fid'`cls'
get_static_string_field (cls: POINTER; fid: POINTER): STRING_8
require
cls_not_null: cls /= default_pointer
fid_not_null: fid /= default_pointer
feature
call_static_boolean_method (cls: POINTER; mid: POINTER; argp: POINTER): BOOLEAN
`mid'`cls'`argp'
call_static_byte_method (cls: POINTER; mid: POINTER; argp: POINTER): INTEGER_8
`mid'`cls'`argp'
call_static_char_method (cls: POINTER; mid: POINTER; argp: POINTER): CHARACTER_8
`mid'`cls'`argp'
call_static_double_method (cls: POINTER; mid: POINTER; argp: POINTER): REAL_64
`mid'`cls'`argp'
call_static_float_method (cls: POINTER; mid: POINTER; argp: POINTER): REAL_32
`mid'`cls'`argp'
call_static_int_method (cls: POINTER; mid: POINTER; argp: POINTER): INTEGER_32
`mid'`cls'`argp'
call_static_long_method (cls: POINTER; mid: POINTER; argp: POINTER): INTEGER_64
`mid'`cls'`argp'
call_static_object_method (cls: POINTER; mid: POINTER; argp: POINTER): POINTER
`mid'`cls'`argp'
call_static_short_method (cls: POINTER; mid: POINTER; argp: POINTER): INTEGER_16
`mid'`cls'`argp'
call_static_string_method (cls: POINTER; mid: POINTER; argsp: POINTER): STRING_8
require
cls_not_null: cls /= default_pointer
mid_not_null: mid /= default_pointer
argsp_not_null: argsp /= default_pointer
call_static_void_method (cls: POINTER; mid: POINTER; argp: POINTER)
`mid'`cls'`argp'
feature
set_static_boolean_field (cls: POINTER; fid: POINTER; v: BOOLEAN)
`fid'`v'`cls'
set_static_byte_field (cls: POINTER; fid: POINTER; v: INTEGER_8)
`fid'`v'`cls'
set_static_char_field (cls: POINTER; fid: POINTER; v: CHARACTER_8)
`fid'`v'`cls'
set_static_double_field (cls: POINTER; fid: POINTER; v: REAL_64)
`fid'`v'`cls'
set_static_float_field (cls: POINTER; fid: POINTER; v: REAL_32)
`fid'`v'`cls'
set_static_integer_field (cls: POINTER; fid: POINTER; v: INTEGER_32)
`fid'`v'`cls'
set_static_long_field (cls: POINTER; fid: POINTER; v: INTEGER_64)
`fid'`v'`cls'
set_static_object_field (cls: POINTER; fid: POINTER; v: POINTER)
`fid'`v'`cls'
set_static_short_field (cls: POINTER; fid: POINTER; v: INTEGER_16)
`fid'`v'`cls'
set_static_string_field (cls: POINTER; fid: POINTER; value: STRING_8)
require
cls_not_null: cls /= default_pointer
fid_not_null: fid /= default_pointer
value_not_void: value /= Void
ensure
static_string_field_set: value.is_equal (get_static_string_field (cls, fid))
feature
attach_current_thread
jvm
detach_current_thread
jvm
invariant
jvm_not_void: jvm /= Void
java_class_table_not_void: java_class_table /= Void
java_object_table_not_void: java_object_table /= Void
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
indexing
copyright: "Copyright (c) 1984-2006, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software
356 Storke Road, Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Website http://www.eiffel.com
Customer support http://support.eiffel.com
]"
end JNI_ENVIRONMENT