note description: "Common ancestor for object inspection." date: "$Date: 2020-05-19 14:29:33 +0000 (Tue, 19 May 2020) $" revision: "$Revision: 104259 $" deferred class interface REFLECTED_OBJECT feature -- Access object: ANY -- Associated object for Current. -- It might be a copy if Current is expanded. class_name: STRING_8 -- Name of the class associated with object type_name: STRING_8 -- Name of object's generating type (type of which object -- is a direct instance). dynamic_type: INTEGER_32 -- Dynamic type of object generic_count: INTEGER_32 -- Number of generic parameter in base type of object. generic_dynamic_type (i: INTEGER_32): INTEGER_32 -- Dynamic type of generic parameter of object at -- position i. require object_generic: generic_count > 0 i_valid: i > 0 and i <= generic_count ensure dynamic_type_nonnegative: Result >= 0 field (i: INTEGER_32): detachable ANY -- Object attached to the i-th field of object -- (directly or through a reference) -- Use specific version of xxx_field to get best performance. require index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special reference_field (i: INTEGER_32): detachable ANY -- Object attached to the i-th field of object -- (directly or through a reference) require index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special reference_field: field_type (i) = Reference_type or field_type (i) = Expanded_type feature -- Status report is_instance_of (type_id: INTEGER_32): BOOLEAN -- Is object an instance of type type_id? require object_not_void: object /= Void type_id_nonnegative: type_id >= 0 is_special: BOOLEAN -- Is object special? is_special_of_expanded: BOOLEAN -- Is Current a SPECIAL [XX] where XX is a user defined expanded type? require is_special: is_special is_special_of_reference: BOOLEAN -- Is Current a SPECIAL [XX] where XX is a reference type? require is_special: is_special is_expanded: BOOLEAN -- Is Current an instance of an expanded type? is_tuple: BOOLEAN -- Is object a TUPLE? is_field_transient (i: INTEGER_32): BOOLEAN -- Is i-th field of object a transient attribute? -- I.e. an attribute that does not need to be stored? require index_large_enough: i >= 1 index_small_enough: i <= field_count is_field_statically_expanded (i: INTEGER_32): BOOLEAN -- Is i-th field of object a user-defined expanded attribute? require index_large_enough: i >= 1 index_small_enough: i <= field_count is_copy_semantics_field (i: INTEGER_32): BOOLEAN -- Is i-th field of object a reference with copy-semantics properties? require index_large_enough: i >= 1 index_small_enough: i <= field_count is_reference_field: field_type (i) = Reference_type is_special_copy_semantics_item (i: INTEGER_32): BOOLEAN -- Is i-th field of object a reference with copy-semantics properties? require is_special: is_special is_special_of_reference: is_special_of_reference valid_index: attached {ABSTRACT_SPECIAL} object as l_spec and then l_spec.valid_index (i) is_field_statically_attached (i: INTEGER_32): BOOLEAN -- Is i-th field of object defined as attached? require index_large_enough: i >= 1 index_small_enough: i <= field_count field_conforms_to (a_source_type, a_field_type: INTEGER_32): BOOLEAN -- Does a_source_type conform to a_field_type? require a_source_type_non_negative: a_source_type >= 0 a_field_type_non_negative: a_field_type >= 0 field_name (i: INTEGER_32): STRING_8 -- Name of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special ensure result_exists: Result /= Void field_offset (i: INTEGER_32): INTEGER_32 -- Offset of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special field_type (i: INTEGER_32): INTEGER_32 -- Abstract type of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count ensure field_type_nonnegative: Result >= 0 field_static_type (i: INTEGER_32): INTEGER_32 -- Static type of declared i-th field of dynamic type dynamic_type require index_large_enough: i >= 1 index_small_enough: i <= field_count ensure field_type_nonnegative: Result >= 0 copy_semantics_field (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT -- Object attached to the i-th field of object -- (directly or through a reference) require index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special reference_field: field_type (i) = Reference_type and is_copy_semantics_field (i) special_copy_semantics_item (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT -- Object attached to the ith item of special. require is_special: is_special is_special_reference: is_special_of_reference valid_index: attached {ABSTRACT_SPECIAL} object as l_spec and then l_spec.valid_index (i) expanded_field (i: INTEGER_32): REFLECTED_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. require index_large_enough: i >= 1 index_small_enough: i <= field_count expanded_field: field_type (i) = Expanded_type not_special: not is_special character_8_field (i: INTEGER_32): CHARACTER_8 -- CHARACTER_8 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count character_8_field: field_type (i) = Character_8_type character_32_field (i: INTEGER_32): CHARACTER_32 -- CHARACTER_32 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count character_32_field: field_type (i) = Character_32_type boolean_field (i: INTEGER_32): BOOLEAN -- Boolean value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count boolean_field: field_type (i) = Boolean_type natural_8_field (i: INTEGER_32): NATURAL_8 -- NATURAL_8 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_8_field: field_type (i) = Natural_8_type natural_16_field (i: INTEGER_32): NATURAL_16 -- NATURAL_16 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_16_field: field_type (i) = Natural_16_type natural_32_field (i: INTEGER_32): NATURAL_32 -- NATURAL_32 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_32_field: field_type (i) = Natural_32_type natural_64_field (i: INTEGER_32): NATURAL_64 -- NATURAL_64 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_64_field: field_type (i) = Natural_64_type integer_8_field (i: INTEGER_32): INTEGER_8 -- INTEGER_8 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_8_field: field_type (i) = Integer_8_type integer_16_field (i: INTEGER_32): INTEGER_16 -- INTEGER_16 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_16_field: field_type (i) = Integer_16_type integer_32_field (i: INTEGER_32): INTEGER_32 -- INTEGER_32 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_32_field: field_type (i) = Integer_32_type integer_64_field (i: INTEGER_32): INTEGER_64 -- INTEGER_64 value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_64_field: field_type (i) = Integer_64_type real_32_field (i: INTEGER_32): REAL_32 -- Real value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type pointer_field (i: INTEGER_32): POINTER -- Pointer value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count pointer_field: field_type (i) = Pointer_type real_64_field (i: INTEGER_32): REAL_64 -- Double precision value of i-th field of object require index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type feature -- Element change set_reference_field (i: INTEGER_32; value: detachable ANY) require index_large_enough: i >= 1 index_small_enough: i <= field_count reference_field: field_type (i) = Reference_type valid_value: is_field_statically_attached (i) implies value /= Void value_conforms_to_field_static_type: value /= Void implies field_conforms_to (value.generating_type.type_id, field_static_type (i)) set_real_64_field (i: INTEGER_32; value: REAL_64) -- Was declared in REFLECTED_OBJECT as synonym of set_double_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type set_double_field (i: INTEGER_32; value: REAL_64) -- Was declared in REFLECTED_OBJECT as synonym of set_real_64_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type set_character_8_field (i: INTEGER_32; value: CHARACTER_8) -- Set character value of i-th field of object to value -- Was declared in REFLECTED_OBJECT as synonym of set_character_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count character_field: field_type (i) = Character_8_type set_character_field (i: INTEGER_32; value: CHARACTER_8) -- Set character value of i-th field of object to value -- Was declared in REFLECTED_OBJECT as synonym of set_character_8_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count character_field: field_type (i) = Character_8_type set_character_32_field (i: INTEGER_32; value: CHARACTER_32) -- Set character 32 value of i-th field of object to value require index_large_enough: i >= 1 index_small_enough: i <= field_count character_field: field_type (i) = Character_32_type set_boolean_field (i: INTEGER_32; value: BOOLEAN) require index_large_enough: i >= 1 index_small_enough: i <= field_count boolean_field: field_type (i) = Boolean_type set_natural_8_field (i: INTEGER_32; value: NATURAL_8) require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_8_field: field_type (i) = Natural_8_type set_natural_16_field (i: INTEGER_32; value: NATURAL_16) require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_16_field: field_type (i) = Natural_16_type set_natural_32_field (i: INTEGER_32; value: NATURAL_32) require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_32_field: field_type (i) = Natural_32_type set_natural_64_field (i: INTEGER_32; value: NATURAL_64) require index_large_enough: i >= 1 index_small_enough: i <= field_count natural_64_field: field_type (i) = Natural_64_type set_integer_8_field (i: INTEGER_32; value: INTEGER_8) require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_8_field: field_type (i) = Integer_8_type set_integer_16_field (i: INTEGER_32; value: INTEGER_16) require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_16_field: field_type (i) = Integer_16_type set_integer_field (i: INTEGER_32; value: INTEGER_32) -- Was declared in REFLECTED_OBJECT as synonym of set_integer_32_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_32_field: field_type (i) = Integer_32_type set_integer_32_field (i: INTEGER_32; value: INTEGER_32) -- Was declared in REFLECTED_OBJECT as synonym of set_integer_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_32_field: field_type (i) = Integer_32_type set_integer_64_field (i: INTEGER_32; value: INTEGER_64) require index_large_enough: i >= 1 index_small_enough: i <= field_count integer_64_field: field_type (i) = Integer_64_type set_real_32_field (i: INTEGER_32; value: REAL_32) -- Was declared in REFLECTED_OBJECT as synonym of set_real_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type set_real_field (i: INTEGER_32; value: REAL_32) -- Was declared in REFLECTED_OBJECT as synonym of set_real_32_field. require index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type set_pointer_field (i: INTEGER_32; value: POINTER) require index_large_enough: i >= 1 index_small_enough: i <= field_count pointer_field: field_type (i) = Pointer_type feature -- Measurement field_count: INTEGER_32 -- Number of logical fields in object persistent_field_count: INTEGER_32 -- Number of logical fields in object that are not transient. ensure count_positive: Result >= 0 physical_size: INTEGER_32 -- Space occupied by object in bytes deep_physical_size: INTEGER_32 -- Space occupied by object and its children in bytes physical_size_64: NATURAL_64 -- Space occupied by object in bytes deep_physical_size_64: NATURAL_64 -- Space occupied by object and its children in bytes 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_OBJECT
Generated by ISE EiffelStudio