note
	description: "Objects that provide instances of {SED_ERROR}."
	legal: "See notice at end of class."
	status: "See notice at end of class."
	author: "Julian Rogers"
	last_editor: "$Author: alexk $"
	date: "$Date: 2020-05-19 14:32:38 +0000 (Tue, 19 May 2020) $"
	revision: "$Revision: 104260 $"

class interface
	SED_ERROR_FACTORY

create 
	default_create

feature -- Access

	new_internal_error (a_msg: STRING_8): SED_ERROR
			-- Generic error message when something fails internally
		require
			a_msg_not_void: a_msg /= Void
		ensure
			result_not_void: Result /= Void

	new_exception_error (a_exception: EXCEPTION): SED_ERROR
			-- Generic error message when something fails internally
		require
			a_exception_not_void: a_exception /= Void
		ensure
			result_not_void: Result /= Void

	new_unknown_storable_type: SED_ERROR
			-- Storable format could be read but is unknown.

	new_obsolete_storable_type: SED_ERROR
			-- Obsolete storable format is used.

	new_invalid_object_error (a_obj: ANY): SED_ERROR
			-- Object a_obj was retrieved but is not valid.
		ensure
			result_not_void: Result /= Void

	new_object_mismatch_error (a_obj: ANY): SED_ERROR
			-- Object a_obj was retrieved but its content is still mismatched.
		ensure
			result_not_void: Result /= Void

	new_format_mismatch (a_old_version, a_new_version: NATURAL_32): SED_ERROR
			-- Return an error when the format is different from what we expected upon retrieval
		ensure
			result_not_void: Result /= Void

	new_format_mismatch_66: SED_ERROR
			-- Return an error when the format is not using is_for_fast_retrieval setting.
		ensure
			result_not_void: Result /= Void

	new_missing_type_error (a_stored_type, a_adapted_type: READABLE_STRING_8): SED_ERROR
			-- Return a error representing a missing type a_stored_type possibly adapted to a_adapted_type.
		require
			a_stored_type_not_void: a_stored_type /= Void
			a_adapted_type_not_void: a_adapted_type /= Void
		ensure
			result_not_void: Result /= Void

	new_missing_attribute_error (a_type_id: INTEGER_32; a_attribute_name: READABLE_STRING_8): SED_ERROR
			-- Return a error representing a missing attribute named a_attribute_name in type a_type.
		require
			a_type_id_non_negative: a_type_id >= 0
			a_attribute_name_not_void: a_attribute_name /= Void
		ensure
			result_not_void: Result /= Void

	new_unknown_attribute_type_error (a_type_id: INTEGER_32; a_attribute_name: READABLE_STRING_8): SED_ERROR
			-- Return a error representing an attribute whose type is unknown.
		require
			a_type_id_non_negative: a_type_id >= 0
			a_attribute_name_not_void: a_attribute_name /= Void
		ensure
			result_not_void: Result /= Void

	new_storable_version_mismatch_error (a_type_id: INTEGER_32; a_old_version_str: detachable STRING_8): SED_ERROR
			-- Return an error representing a mismatch in the storable_version attribute in type a_type.
		require
			a_type_id_non_negative: a_type_id >= 0
		ensure
			result_not_void: Result /= Void

	new_attribute_count_mismatch (a_type_id: INTEGER_32; a_received_attribute_count: INTEGER_32): SED_ERROR
			-- Return an error representing an attribute count mismatch for type a_type with a received attribute count of a_received_attribute_count.
		require
			a_type_id_non_negative: a_type_id >= 0
		ensure
			result_not_void: Result /= Void

	new_attribute_mismatch (a_type_id: INTEGER_32; a_attribute_name: STRING_8; a_attribute_type_id, a_received_attribute_type_id: INTEGER_32): SED_ERROR
			-- Return an error representing an attribute mismatch for attribute a_attribute_name of type a_type with
		require
			a_type_id_non_negative: a_type_id >= 0
			a_attribute_name_not_void: a_attribute_name /= Void
			a_attribute_type_id_non_negative: a_attribute_type_id >= 0
			a_received_attribute_type_id_non_negative: a_received_attribute_type_id >= 0
		ensure
			result_not_void: Result /= Void
	
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_ERROR_FACTORY

Generated by ISE EiffelStudio