indexing
	description: "This class provides a mapping between Java and Eiffel objects"

class interface
	JAVA_OBJECT_TABLE

create 

	make
			-- create a table for Eiffel proxies of Java object

feature 

	item (jobject: POINTER): JAVA_OBJECT
			-- find a Eiffel proxy for an Java object
		require
			jobject_not_void: jobject /= default_pointer

	put (object: JAVA_OBJECT)
			-- Add a new object to the table
		require
			jobject_not_void: (object /= void) and then (object.java_object_id /= default_pointer)
		ensure
			inserted: table.has (object.java_object_id.hash_code)
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class JAVA_OBJECT_TABLE