note description: "Store all information about a mismatch in a type." legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2020-05-19 14:29:33 +0000 (Tue, 19 May 2020) $" revision: "$Revision: 104259 $" class interface SED_TYPE_MISMATCH create make feature -- Element change add_new_attribute_mismatch (a_added_attribute_count: INTEGER_32) -- Mismatch when new attributes have been added require a_added_attribute_count_positive: a_added_attribute_count > 0 add_attribute_count_mismatch (a_old_count, a_new_count: INTEGER_32) -- Mismatch where there is a_old_count attributes in the original system -- and a_new_count attributes in the retrieving system. require old_count_non_negative: a_old_count >= 0 new_count_non_negative: a_new_count >= 0 ensure old_count_set: old_count = a_old_count new_count_set: new_count = a_new_count add_version_mismatch (a_old_version, a_new_version: detachable IMMUTABLE_STRING_8) -- Mismatch where the original system as a version a_old_version which differs -- from the version a_new_version in the retrieving system. require different_version: a_old_version /~ a_new_version ensure old_version_set: old_version = a_old_version new_version_set: new_version = a_new_version version_mismatched: has_version_mismatch add_attribute_mismatch (a_old_attr_type, a_new_attr_type: INTEGER_32; a_old_name, a_new_name: STRING_8; a_old_pos, a_new_pos: INTEGER_32) -- Mismatch for a_old_name where the new name is a_new_name, the new type -- a_new_attr_type is different from a_old_attr_type stored at position -- a_old_pos in the stored system for a a_new_pos in the retrieving system. require a_old_attr_type_non_negative: a_old_attr_type >= 0 a_new_attr_type_non_negative: a_new_attr_type >= 0 a_old_name_attached: a_old_name /= Void a_new_name_attached: a_new_name /= Void a_old_pos_positive: a_old_pos > 0 a_new_pos_positive: a_new_pos > 0 add_void_safe_mismatch (a_old_attr_type, a_new_attr_type: INTEGER_32; a_old_name, a_new_name: STRING_8; a_old_pos, a_new_pos: INTEGER_32) -- Mismatch for a_old_name where the new name is a_new_name, the new type -- a_new_attr_type is attached and a_old_attr_type is detachable stored at position -- a_old_pos in the stored system for a a_new_pos in the retrieving system. require a_old_attr_type_non_negative: a_old_attr_type >= 0 a_new_attr_type_non_negative: a_new_attr_type >= 0 a_old_name_attached: a_old_name /= Void a_new_name_attached: a_new_name /= Void a_old_pos_positive: a_old_pos > 0 a_new_pos_positive: a_new_pos > 0 add_removed_attribute (a_old_attr_type: INTEGER_32; a_old_name, a_new_name: STRING_8; a_old_pos: INTEGER_32) -- Attribute a_name of type a_old_attr_type at position a_old_pos in -- the stored system is now missing from Current. require a_old_attr_type_non_negative: a_old_attr_type >= 0 a_old_name_attached: a_old_name /= Void a_new_name_attached: a_new_name /= Void a_old_pos_positive: a_old_pos > 0 feature -- Status report has_version_mismatch: BOOLEAN -- Do we have a mismatch in versioning? has_new_attribute: BOOLEAN -- Do we have new attributes that did not exist in the stored system? has_new_attached_attribute: BOOLEAN -- Do we have new attached attributes that did not exist in the stored system? feature -- Access type_id: INTEGER_32 -- Type ID for type having the mismatch old_count: INTEGER_32 -- Number of attributes in original system and retrieving system. new_count: INTEGER_32 -- Number of attributes in original system and retrieving system. old_version: detachable IMMUTABLE_STRING_8 -- Version in stored system and retrieving system. new_version: detachable IMMUTABLE_STRING_8 -- Version in stored system and retrieving system. mismatches_by_name: HASH_TABLE [like attribute_info, STRING_8] -- Store information about mismatch based on the attribute name. mismatches_by_stored_position: HASH_TABLE [like attribute_info, INTEGER_32] -- Store information about mismatch based on the store position. attribute_info: TUPLE [old_name: STRING_8; new_name: STRING_8; old_attribute_type: INTEGER_32; new_attribute_type: INTEGER_32; old_position: INTEGER_32; new_position: INTEGER_32; is_changed: BOOLEAN; is_removed: BOOLEAN; is_attachment_check_required: BOOLEAN] -- For typing purposes. require callable: False invariant type_id_non_negative: type_id >= 0 counts_non_negative: old_count >= 0 and new_count >= 0 note library: "EiffelBase: Library of reusable components for Eiffel." 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 SED_TYPE_MISMATCH
Generated by ISE EiffelStudio