    class
    	JAVA_OBJECT

    General
    	cluster: eiffel2java
    	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"
    	create: create_instance, make_from_pointer

    Ancestors
    	JAVA_ENTITY*
    	SHARED_JNI_ENVIRONMENT

    Queries
    	boolean_attribute (fid: POINTER): BOOLEAN
    	boolean_method (mid: POINTER; args: JAVA_ARGS): BOOLEAN
    	byte_attribute (fid: POINTER): INTEGER_8
    	byte_method (mid: POINTER; args: JAVA_ARGS): INTEGER_8
    	char_attribute (fid: POINTER): CHARACTER_8
    	char_method (mid: POINTER; args: JAVA_ARGS): CHARACTER_8
    	double_attribute (fid: POINTER): REAL_64
    	double_method (mid: POINTER; args: JAVA_ARGS): REAL_64
    	exists: BOOLEAN
    	field_id (lname, sig: STRING_8): POINTER
    	float_attribute (fid: POINTER): REAL_32
    	float_method (mid: POINTER; args: JAVA_ARGS): REAL_32
    	integer_attribute (fid: POINTER): INTEGER_32
    	integer_method (mid: POINTER; args: JAVA_ARGS): INTEGER_32
    	is_equal (other: [like Current] JAVA_OBJECT): BOOLEAN
    	java_object_id: POINTER
    	jclass: JAVA_CLASS
    	Jni: JNI_ENVIRONMENT
    	long_attribute (fid: POINTER): INTEGER_64
    	long_method (mid: POINTER; args: JAVA_ARGS): INTEGER_64
    	method_id (feature_name, signature: STRING_8): POINTER
    	object_attribute (fid: POINTER): JAVA_OBJECT
    	object_method (lmethod_id: POINTER; args: JAVA_ARGS): JAVA_OBJECT
    	short_attribute (fid: POINTER): INTEGER_16
    	short_method (mid: POINTER; args: JAVA_ARGS): INTEGER_16
    	string_attribute (fid: POINTER): STRING_8
    	string_method (mid: POINTER; args: JAVA_ARGS): STRING_8

    Commands
    	create_instance (my_cls: JAVA_CLASS; sig: STRING_8; args: JAVA_ARGS)
    	make_from_pointer (jobject: POINTER)
    	set_boolean_attribute (fid: POINTER; value: BOOLEAN)
    	set_byte_attribute (fid: POINTER; value: INTEGER_8)
    	set_char_attribute (fid: POINTER; value: CHARACTER_8)
    	set_double_attribute (fid: POINTER; value: REAL_64)
    	set_float_attribute (fid: POINTER; value: REAL_32)
    	set_integer_attribute (fid: POINTER; value: INTEGER_32)
    	set_long_attribute (fid: POINTER; value: INTEGER_64)
    	set_object_attribute (fid: POINTER; value: JAVA_OBJECT)
    	set_short_attribute (fid: POINTER; value: INTEGER_16)
    	set_string_attribute (fid: POINTER; value: STRING_8)
    	void_method (mid: POINTER; args: JAVA_ARGS)

    Constraints
    	valid proxy