indexing
description: "This class gives Eiffel access to Java objects. You can use it directly or inherit from to and create a more convienient Eiffel class that makes the Java object look like an Eiffel object"
class interface
JAVA_OBJECT
create
create_instance (my_cls: JAVA_CLASS; sig: STRING; args: JAVA_ARGS)
require
class_valid: my_cls /= void
sig_and_args_consistent: (sig = void) implies (args = void)
ensure
created: java_object_id /= default_pointer
make_from_pointer (jobject: POINTER)
require
valid_java_id: jobject /= default_pointer
feature
jni: JNI_ENVIRONMENT
SHARED_JNI_ENVIRONMENT
ensure SHARED_JNI_ENVIRONMENT
Result /= void
feature
c_check_for_exceptions (lenv: POINTER)
JAVA_EXTERNALS
c_throw_custom_exception (lenv: POINTER; jclass_id: POINTER; msg: POINTER)
JAVA_EXTERNALS
c_throw_java_exception (lenv: POINTER; jthrowable: POINTER)
JAVA_EXTERNALS
feature
boolean_attribute (fid: POINTER): BOOLEAN
byte_attribute (fid: POINTER): CHARACTER
CHARACTER
char_attribute (fid: POINTER): CHARACTER
double_attribute (fid: POINTER): DOUBLE
float_attribute (fid: POINTER): REAL
REAL
integer_attribute (fid: POINTER): INTEGER
object_attribute (fid: POINTER): JAVA_OBJECT
short_attribute (fid: POINTER): INTEGER
INTEGER
string_attribute (fid: POINTER): STRING
feature
field_id (lname: STRING; sig: STRING): POINTER
require
(lname /= void) and (sig /= void)
feature
boolean_method (mid: POINTER; args: JAVA_ARGS): BOOLEAN
require
valid_method: mid /= default_pointer
byte_method (mid: POINTER; args: JAVA_ARGS): CHARACTER
CHARACTER
require
valid_method: mid /= default_pointer
char_method (mid: POINTER; args: JAVA_ARGS): CHARACTER
require
valid_method: mid /= default_pointer
double_method (mid: POINTER; args: JAVA_ARGS): DOUBLE
DOUBLE
require
valid_method: mid /= default_pointer
float_method (mid: POINTER; args: JAVA_ARGS): REAL
REAL
require
valid_method: mid /= default_pointer
integer_method (mid: POINTER; args: JAVA_ARGS): INTEGER
INTEGER
require
valid_method: mid /= default_pointer
long_method (mid: POINTER; args: JAVA_ARGS)
object_method (lmethod_id: POINTER; args: JAVA_ARGS): JAVA_OBJECT
require
valid_method_id: lmethod_id /= default_pointer
short_method (mid: POINTER; args: JAVA_ARGS): INTEGER
INTEGER
require
valid_method: mid /= default_pointer
string_method (mid: POINTER; args: JAVA_ARGS): STRING
STRING
require
valid_method: mid /= default_pointer
void_method (mid: POINTER; args: JAVA_ARGS)
require
valid_method: mid /= default_pointer
feature
create_instance (my_cls: JAVA_CLASS; sig: STRING; args: JAVA_ARGS)
require
class_valid: my_cls /= void
sig_and_args_consistent: (sig = void) implies (args = void)
ensure
created: java_object_id /= default_pointer
make_from_pointer (jobject: POINTER)
require
valid_java_id: jobject /= default_pointer
feature
method_id (method_name: STRING; signature: STRING): POINTER
require
(method_name /= void) and (signature /= void)
ensure
method_exists: Result /= default_pointer
feature
set_boolean_attribute (fid: POINTER; value: BOOLEAN)
set_byte_attribute (fid: POINTER; value: CHARACTER)
set_char_attribute (fid: POINTER; value: CHARACTER)
set_double_attribute (fid: POINTER; value: DOUBLE)
set_float_attribute (fid: POINTER; value: REAL)
set_integer_attribute (fid: POINTER; value: INTEGER)
set_object_attribute (fid: POINTER; value: JAVA_OBJECT)
set_short_attribute (fid: POINTER; value: INTEGER)
set_string_attribute (fid: POINTER; value: STRING)
invariant
valid_proxy: java_object_id /= default_pointer
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
end -- JAVA_OBJECT