Automatic generation produced by ISE Eiffel
note description: "[ Accessor to an object. Useful to manipulate fields of an object, or an expanded field of an object without causing any copying. If applied to an expanded type, a copy will be manipulated. ]" implementation_details: "[ The GC might be moving objects, some of the routines are actually builtin. ]" date: "$Date: 2021-02-22 05:30:58 -0900 (Mon, 22 Feb 2021) $" revision: "$Revision: 105200 $" class interface REFLECTED_REFERENCE_OBJECT create make (a_object: ANY) -- Setup a proxy to a_object. require not_expanded_object: True ensure enclosing_object_set: enclosing_object = a_object no_physical_offset: physical_offset = 0 create {REFLECTED_REFERENCE_OBJECT, RT_DBG_INTERNAL, RT_DBG_CALL_RECORD, RT_DBG_EXECUTION_RECORDER} make_for_expanded_field (a_enclosing_object: REFLECTED_REFERENCE_OBJECT; i: INTEGER_32) -- Setup a proxy to expanded field located at the i-th field of a_enclosing_object. require i_th_field_is_expanded: a_enclosing_object.is_field_statically_expanded (i) ensure enclosing_object_set: enclosing_object = a_enclosing_object.enclosing_object make_for_expanded_field_at (a_enclosing_object: ANY; a_physical_offset: INTEGER_32) -- Setup a proxy to expanded field located at the a_physical_offset of a_enclosing_object. require not_dotnet: not {PLATFORM}.is_dotnet ensure enclosing_object_set: enclosing_object = a_enclosing_object feature -- Access Bit_type: INTEGER_32 = 8 -- This type is obsolete and is not used anymore. -- (from REFLECTOR_CONSTANTS) Boolean_type: INTEGER_32 = 3 -- Abstract type ID for predefined type {BOOLEAN}. -- (from REFLECTOR_CONSTANTS) Character_32_type: INTEGER_32 = 12 -- Abstract type ID for predefined type {CHARACTER_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `wide_character_type`. -- (from REFLECTOR_CONSTANTS) Character_8_type: INTEGER_32 = 2 -- Abstract type ID for predefined type {CHARACTER_8}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `character_type`. -- (from REFLECTOR_CONSTANTS) Character_type: INTEGER_32 = 2 -- Abstract type ID for predefined type {CHARACTER_8}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `character_8_type`. -- (from REFLECTOR_CONSTANTS) class_name: STRING_8 -- Name of the class associated with `object` -- (from REFLECTED_OBJECT) 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 -- from REFLECTED_OBJECT 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) Double_type: INTEGER_32 = 6 -- Abstract type ID for predefined type {REAL_64}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `real_64_type`. -- (from REFLECTOR_CONSTANTS) dynamic_type: INTEGER_32 -- Dynamic type of `object` -- (from REFLECTED_OBJECT) enclosing_object: separate ANY -- Enclosing object containing `object` or a reference to `object. expanded_field (i: INTEGER_32): REFLECTED_REFERENCE_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 -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count expanded_field: field_type (i) = Expanded_type not_special: not is_special Expanded_type: INTEGER_32 = 7 -- Abstract type ID for a non-predefined expanded type. -- (from REFLECTOR_CONSTANTS) 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. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special generating_type: TYPE [detachable REFLECTED_REFERENCE_OBJECT] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty generic_count: INTEGER_32 -- Number of generic parameter in base type of `object`. -- (from REFLECTED_OBJECT) generic_dynamic_type (i: INTEGER_32): INTEGER_32 -- Dynamic type of generic parameter of `object` at -- position i. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT object_generic: generic_count > 0 i_valid: i > 0 and i <= generic_count ensure -- from REFLECTED_OBJECT dynamic_type_nonnegative: Result >= 0 Integer_16_type: INTEGER_32 = 10 -- Abstract type ID for predefined type {INTEGER_16}. -- (from REFLECTOR_CONSTANTS) Integer_32_type: INTEGER_32 = 4 -- Abstract type ID for predefined type {INTEGER_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `integer_type`. -- (from REFLECTOR_CONSTANTS) Integer_64_type: INTEGER_32 = 11 -- Abstract type ID for predefined type {INTEGER_64}. -- (from REFLECTOR_CONSTANTS) Integer_8_type: INTEGER_32 = 9 -- Abstract type ID for predefined type {INTEGER_8}. -- (from REFLECTOR_CONSTANTS) Integer_type: INTEGER_32 = 4 -- Abstract type ID for predefined type {INTEGER_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `integer_32_type`. -- (from REFLECTOR_CONSTANTS) Max_predefined_type: INTEGER_32 = 16 -- (from REFLECTOR_CONSTANTS) Min_predefined_type: INTEGER_32 = -2 -- (from REFLECTOR_CONSTANTS) Natural_16_type: INTEGER_32 = 14 -- Abstract type ID for predefined type {NATURAL_16}. -- (from REFLECTOR_CONSTANTS) Natural_32_type: INTEGER_32 = 15 -- Abstract type ID for predefined type {NATURAL_32}. -- (from REFLECTOR_CONSTANTS) Natural_64_type: INTEGER_32 = 16 -- Abstract type ID for predefined type {NATURAL_64}. -- (from REFLECTOR_CONSTANTS) Natural_8_type: INTEGER_32 = 13 -- Abstract type ID for predefined type {NATURAL_8}. -- (from REFLECTOR_CONSTANTS) None_type: INTEGER_32 = -2 -- Type ID representation for NONE. -- (from REFLECTOR_CONSTANTS) object: ANY -- Associated object for Current. -- It might be a copy if Current is expanded. object_address: POINTER -- Unprotected reference to `object`. note compiler: no_gc physical_offset: INTEGER_32 -- Actual offset in bytes of `object` in `enclosing_object`. Pointer_type: INTEGER_32 = 0 -- Abstract type ID for predefined type {POINTER}. -- (from REFLECTOR_CONSTANTS) Real_32_type: INTEGER_32 = 5 -- Abstract type ID for predefined type {REAL_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `real_type`. -- (from REFLECTOR_CONSTANTS) Real_64_type: INTEGER_32 = 6 -- Abstract type ID for predefined type {REAL_64}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `double_type`. -- (from REFLECTOR_CONSTANTS) Real_type: INTEGER_32 = 5 -- Abstract type ID for predefined type {REAL_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `real_32_type`. -- (from REFLECTOR_CONSTANTS) reference_field (i: INTEGER_32): detachable ANY -- Object attached to the i-th field of `object` -- (directly or through a reference) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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 Reference_type: INTEGER_32 = 1 -- Abstract type ID for a reference type. -- (from REFLECTOR_CONSTANTS) type_name: STRING_8 -- Name of `object`'s generating type (type of which `object` -- is a direct instance). -- (from REFLECTED_OBJECT) Wide_character_type: INTEGER_32 = 12 -- Abstract type ID for predefined type {CHARACTER_32}. -- Was declared in {REFLECTOR_CONSTANTS} as synonym of `character_32_type`. -- (from REFLECTOR_CONSTANTS) feature -- Measurement deep_physical_size: INTEGER_32 -- Space occupied by `object` and its children in bytes -- (from REFLECTED_OBJECT) deep_physical_size_64: NATURAL_64 -- Space occupied by `object` and its children in bytes -- (from REFLECTED_OBJECT) field_count: INTEGER_32 -- Number of logical fields in `object` -- (from REFLECTED_OBJECT) persistent_field_count: INTEGER_32 -- Number of logical fields in `object` that are not transient. -- (from REFLECTED_OBJECT) ensure -- from REFLECTED_OBJECT count_positive: Result >= 0 physical_size: INTEGER_32 -- Space occupied by `object` in bytes -- (from REFLECTED_OBJECT) physical_size_64: NATURAL_64 -- Space occupied by `object` in bytes -- (from REFLECTED_OBJECT) feature -- Comparison frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: REFLECTED_REFERENCE_OBJECT): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) is_equal (other: REFLECTED_REFERENCE_OBJECT): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: REFLECTED_REFERENCE_OBJECT): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report boolean_field (i: INTEGER_32): BOOLEAN -- Boolean value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count boolean_field: field_type (i) = Boolean_type character_32_field (i: INTEGER_32): CHARACTER_32 -- CHARACTER_32 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count character_32_field: field_type (i) = Character_32_type character_8_field (i: INTEGER_32): CHARACTER_8 -- CHARACTER_8 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count character_8_field: field_type (i) = Character_8_type conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void field_conforms_to (a_source_type, a_field_type: INTEGER_32): BOOLEAN -- Does a_source_type conform to a_field_type? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special ensure -- from REFLECTED_OBJECT result_exists: Result /= Void field_offset (i: INTEGER_32): INTEGER_32 -- Offset of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count not_special: not is_special field_static_type (i: INTEGER_32): INTEGER_32 -- Static type of declared i-th field of dynamic type `dynamic_type` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count ensure -- from REFLECTED_OBJECT field_type_nonnegative: Result >= 0 field_type (i: INTEGER_32): INTEGER_32 -- Abstract type of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count ensure -- from REFLECTED_OBJECT field_type_nonnegative: Result >= 0 integer_16_field (i: INTEGER_32): INTEGER_16 -- INTEGER_16 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_64_field: field_type (i) = Integer_64_type integer_8_field (i: INTEGER_32): INTEGER_8 -- INTEGER_8 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_8_field: field_type (i) = Integer_8_type is_copy_semantics_field (i: INTEGER_32): BOOLEAN -- Is i-th field of `object` a reference with copy-semantics properties? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count is_reference_field: field_type (i) = Reference_type is_expanded: BOOLEAN -- Is Current an instance of an expanded type? -- (from REFLECTED_OBJECT) is_field_statically_attached (i: INTEGER_32): BOOLEAN -- Is i-th field of `object` defined as attached? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count 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? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count is_instance_of (type_id: INTEGER_32): BOOLEAN -- Is `object` an instance of type type_id? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT object_not_void: object /= Void type_id_nonnegative: type_id >= 0 is_special: BOOLEAN -- Is `object` special? -- (from REFLECTED_OBJECT) is_special_copy_semantics_item (i: INTEGER_32): BOOLEAN -- Is i-th field of `object` a reference with copy-semantics properties? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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_special_of_expanded: BOOLEAN -- Is Current a SPECIAL [XX] where XX is a user defined expanded type? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT is_special: is_special is_special_of_reference: BOOLEAN -- Is Current a SPECIAL [XX] where XX is a reference type? -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT is_special: is_special is_tuple: BOOLEAN -- Is `object` a TUPLE? -- (from REFLECTED_OBJECT) natural_16_field (i: INTEGER_32): NATURAL_16 -- NATURAL_16 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count natural_64_field: field_type (i) = Natural_64_type natural_8_field (i: INTEGER_32): NATURAL_8 -- NATURAL_8 value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count natural_8_field: field_type (i) = Natural_8_type pointer_field (i: INTEGER_32): POINTER -- Pointer value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count pointer_field: field_type (i) = Pointer_type real_32_field (i: INTEGER_32): REAL_32 -- Real value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type real_64_field (i: INTEGER_32): REAL_64 -- Double precision value of i-th field of `object` -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) special_copy_semantics_item (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT -- Object attached to the ith item of special. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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) feature -- Element change set_boolean_field (i: INTEGER_32; value: BOOLEAN) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count boolean_field: field_type (i) = Boolean_type set_character_32_field (i: INTEGER_32; value: CHARACTER_32) -- Set character 32 value of i-th field of `object` to value -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count character_field: field_type (i) = Character_32_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`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count character_field: field_type (i) = Character_8_type set_double_field (i: INTEGER_32; value: REAL_64) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_real_64_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type set_integer_16_field (i: INTEGER_32; value: INTEGER_16) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_16_field: field_type (i) = Integer_16_type set_integer_32_field (i: INTEGER_32; value: INTEGER_32) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_integer_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_64_field: field_type (i) = Integer_64_type set_integer_8_field (i: INTEGER_32; value: INTEGER_8) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_8_field: field_type (i) = Integer_8_type set_integer_field (i: INTEGER_32; value: INTEGER_32) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_integer_32_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count integer_32_field: field_type (i) = Integer_32_type set_natural_16_field (i: INTEGER_32; value: NATURAL_16) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count natural_64_field: field_type (i) = Natural_64_type set_natural_8_field (i: INTEGER_32; value: NATURAL_8) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count natural_8_field: field_type (i) = Natural_8_type set_pointer_field (i: INTEGER_32; value: POINTER) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count pointer_field: field_type (i) = Pointer_type set_real_32_field (i: INTEGER_32; value: REAL_32) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_real_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type set_real_64_field (i: INTEGER_32; value: REAL_64) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_double_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_64_field: field_type (i) = Real_64_type set_real_field (i: INTEGER_32; value: REAL_32) -- Was declared in {REFLECTED_OBJECT} as synonym of `set_real_32_field`. -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT index_large_enough: i >= 1 index_small_enough: i <= field_count real_32_field: field_type (i) = Real_32_type set_reference_field (i: INTEGER_32; value: detachable ANY) -- (from REFLECTED_OBJECT) require -- from REFLECTED_OBJECT 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)) feature -- Duplication copy (other: REFLECTED_REFERENCE_OBJECT) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen deep_copy (other: REFLECTED_REFERENCE_OBJECT) -- Effect equivalent to that of: -- `copy` (other . `deep_twin`) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: REFLECTED_REFERENCE_OBJECT -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: REFLECTED_REFERENCE_OBJECT) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: REFLECTED_REFERENCE_OBJECT -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: REFLECTED_REFERENCE_OBJECT -- New object equal to Current -- `twin` calls `copy`; to change copying/twinning semantics, redefine `copy`. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations frozen default: detachable REFLECTED_REFERENCE_OBJECT -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.`default` for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY out_not_void: Result /= Void print (o: detachable ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void feature -- Settings set_object (a_obj: separate ANY) -- Update Current to represent a new reflected object. require physical_offset_not_set: physical_offset = 0 ensure enclosing_object_set: enclosing_object = a_obj no_physical_offset: physical_offset = 0 invariant -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) note copyright: "Copyright (c) 1984-2021, 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_REFERENCE_OBJECT -- Generated by Eiffel Studio --
For more details: eiffel.org