note
	description: "[
		Accessor to an object with copy semantics. Useful to manipulate fields of an object, or
		an expanded field of an object without causing any copying.
	]"
	implementation_details: "[
		The GC might be moving objects, some of the routines are actually builtin.
	]"
	date: "$Date: 2020-04-10 15:08:01 +0000 (Fri, 10 Apr 2020) $"
	revision: "$Revision: 104042 $"

class interface
	REFLECTED_COPY_SEMANTICS_OBJECT

create {REFLECTED_OBJECT}
	make,
	make_special


create {REFLECTED_COPY_SEMANTICS_OBJECT}
	make_recursive

feature -- Access

	object: ANY
			-- Associated object for Current.
			-- It might be a copy if Current is expanded.

	physical_offset: INTEGER_32
			-- Actual offset of object in referring_object + referring_physical_offset.

	copy_semantics_field (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT
			-- Object attached to the i-th field of object
			-- (directly or through a reference)

	expanded_field (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT
			-- Object representation of the i-th field of object
			-- which is expanded. We provide a wrapper that enables
			-- direct editing of the field without duplicating
			-- the expanded object.
	
note
	copyright: "Copyright (c) 1984-2020, Eiffel Software and others"
	license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
	source: "[
		Eiffel Software
		5949 Hollister Ave., Goleta, CA 93117 USA
		Telephone 805-685-1006, Fax 805-685-6869
		Website http://www.eiffel.com
		Customer support http://support.eiffel.com
	]"

end -- class REFLECTED_COPY_SEMANTICS_OBJECT

Generated by ISE EiffelStudio