indexing description: "Factory to create message objects." author: "Patrick Ruckstuhl " date: "$Date$" revision: "$Revision$" class O_MESSAGE_FACTORY inherit O_CONSTANTS O_GENERAL_CONSTANTS O_BUILD_CONSTANTS O_USER_CONSTANTS O_PROJECT_CONSTANTS O_MAIL_CONSTANTS O_WORKITEM_CONSTANTS O_COMMIT_CONSTANTS O_WIKI_CONSTANTS O_COMMENT_CONSTANTS O_RELEASE_CONSTANTS O_BLOG_CONSTANTS O_ISSUE_CONSTANTS O_SYSTEM_CONSTANTS O_COMMUNITY_CONSTANTS create make feature {NONE} -- Initialization make is -- Initialize. do create handler_registry.make (5) register_builtin_handlers end feature -- Status is_error: BOOLEAN -- Was there an error? feature -- Update register_handler (a_namespace, a_type: STRING; a_handler: like handler_type) is -- Register a handler. require a_namespace_ok: a_namespace /= Void and then not a_namespace.is_empty a_type_ok: a_type /= Void and then not a_type.is_empty a_handler_ok: a_handler /= Void local l_hnd: HASH_TABLE [like handler_type, STRING] do l_hnd := handler_registry.item (a_namespace) if l_hnd = Void then create l_hnd.make (5) handler_registry.force (l_hnd, a_namespace) end l_hnd.force (a_handler, a_type) end feature -- Basic operation new_message_from_p2p_message (a_msg: P2P_MESSAGE): O_MESSAGE is -- Create a new origo message from a P2P_MESSAGE. require valid_p2p_message: is_valid_p2p_message (a_msg) local l_hnd: HASH_TABLE [like handler_type, STRING] l_gen_msg: O_GENERIC_MESSAGE do -- create a generic message create l_gen_msg.make_from_p2p_message (a_msg) Result := l_gen_msg if not is_error then -- now check if we have a handler to get a specific message out of the generic message. l_hnd := handler_registry.item (l_gen_msg.namespace) if l_hnd /= Void then if l_hnd.has_key (l_gen_msg.type) then Result := l_hnd.found_item.item ([l_gen_msg]) end end end ensure Error_or_not_void: not is_error implies Result /= Void end feature -- Creator handlers new_build_simple (a_msg: O_GENERIC_MESSAGE): O_BUILD_SIMPLE_MESSAGE is -- Create a new build simple message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_build_reply (a_msg: O_GENERIC_MESSAGE): O_BUILD_RESULT_MESSAGE is -- Create a new build result message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_create (a_msg: O_GENERIC_MESSAGE): O_USER_CREATE_MESSAGE is -- Create new user create message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_login (a_msg: O_GENERIC_MESSAGE): O_USER_LOGIN_MESSAGE is -- Create new user login message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_login_authenticated (a_msg: O_GENERIC_MESSAGE): O_USER_LOGIN_AUTHENTICATED_MESSAGE is -- Create new login authenticated message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_login_key (a_msg: O_GENERIC_MESSAGE): O_USER_LOGIN_KEY_MESSAGE is -- Create new user login key message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_session (a_msg: O_GENERIC_MESSAGE): O_USER_SESSION_MESSAGE is -- Create new user session message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_authorized (a_msg: O_GENERIC_MESSAGE): O_USER_AUTHORIZED_FOR_PROJECT_MESSAGE is -- Create new user authorized for project message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_authorized_for_community (a_msg: O_GENERIC_MESSAGE): O_USER_AUTHORIZED_FOR_COMMUNITY_MESSAGE is -- Create new user authorized for community message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_MESSAGE is -- Create new user list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_change_email (a_msg: O_GENERIC_MESSAGE): O_USER_CHANGE_EMAIL_MESSAGE is -- Create new user change email message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_change_account_enabled (a_msg: O_GENERIC_MESSAGE): O_USER_CHANGE_ACCOUNT_ENABLED_MESSAGE is -- Create new user change account enabled message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_change_password (a_msg: O_GENERIC_MESSAGE): O_USER_CHANGE_PASSWORD_MESSAGE is -- Create new user change password message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_reset_password (a_msg: O_GENERIC_MESSAGE): O_USER_RESET_PASSWORD_MESSAGE is -- Create new user reset password message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_reset_password_reply (a_msg: O_GENERIC_MESSAGE): O_USER_RESET_PASSWORD_REPLY_MESSAGE is -- Create new user reset password reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_my_name (a_msg: O_GENERIC_MESSAGE): O_USER_MY_NAME_MESSAGE is -- Create new my name message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_my_password (a_msg: O_GENERIC_MESSAGE): O_USER_MY_PASSWORD_MESSAGE is -- Create new my password message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_my_email (a_msg: O_GENERIC_MESSAGE): O_USER_MY_EMAIL_MESSAGE is -- Create new user my email message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_password (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_PASSWORD_MESSAGE is -- Create new user my password message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_email (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_EMAIL_MESSAGE is -- Create new user my email message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_user_from_email (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_USER_FROM_EMAIL_MESSAGE is -- Create new user from email message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_profile_visible (a_msg: O_GENERIC_MESSAGE): O_USER_PROFILE_VISIBLE_MESSAGE is -- Create new user profile_visible message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_change_profile_visible (a_msg: O_GENERIC_MESSAGE): O_USER_CHANGE_PROFILE_VISIBLE_MESSAGE is -- Create new user change_profile_visible message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_add_openid (a_msg: O_GENERIC_MESSAGE): O_USER_ADD_OPENID_MESSAGE is -- Create new user add_openid message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_openids_from_user (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_OPENIDS_FROM_USER_MESSAGE is -- Create new user retrieve_openids_from_user message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_stringarray_reply (a_msg: O_GENERIC_MESSAGE): O_USER_STRINGARRAY_REPLY_MESSAGE is -- Create new stringarray reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_user_from_openid (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_USER_FROM_OPENID_MESSAGE is -- Create new user retrieve_user_from_openid message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_remove_openid (a_msg: O_GENERIC_MESSAGE): O_USER_REMOVE_OPENID_MESSAGE is -- Create new user remove_openid message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_change_openid (a_msg: O_GENERIC_MESSAGE): O_USER_CHANGE_OPENID_MESSAGE is -- Create new user change_openid message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_foaf (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_FOAF_MESSAGE is -- Create new user retrieve_foaf message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_remove_foaf (a_msg: O_GENERIC_MESSAGE): O_USER_REMOVE_FOAF_MESSAGE is -- Create new user remove_foaf message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_add_foaf (a_msg: O_GENERIC_MESSAGE): O_USER_ADD_FOAF_MESSAGE is -- Create new user add_foaf message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_information (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_INFORMATION_MESSAGE is -- Create new user retrieve information message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_retrieve_information_reply (a_msg: O_GENERIC_MESSAGE): O_USER_RETRIEVE_INFORMATION_REPLY_MESSAGE is -- Create new user retrieve information reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_set_information (a_msg: O_GENERIC_MESSAGE): O_USER_SET_INFORMATION_MESSAGE is -- Create new user set information message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_set_icon (a_msg: O_GENERIC_MESSAGE): O_USER_SET_ICON_MESSAGE is -- Create new user set icon message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_reset_icon (a_msg: O_GENERIC_MESSAGE): O_USER_RESET_ICON_MESSAGE is -- Create new user reset icon message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_key (a_msg: O_GENERIC_MESSAGE): O_USER_KEY_MESSAGE is -- Create new user key message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_key_generate (a_msg: O_GENERIC_MESSAGE): O_USER_KEY_GENERATE_MESSAGE is -- Create new user key generate message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_key_reply (a_msg: O_GENERIC_MESSAGE): O_USER_KEY_REPLY_MESSAGE is -- Create new user key message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_add_bookmark (a_msg: O_GENERIC_MESSAGE): O_USER_ADD_BOOKMARK_MESSAGE is -- Create new user add bookmark message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_remove_bookmark (a_msg: O_GENERIC_MESSAGE): O_USER_REMOVE_BOOKMARK_MESSAGE is -- Create new user remove bookmark message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_bookmark (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_BOOKMARK_MESSAGE is -- Create new user list bookmark message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_bookmark_reply (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_BOOKMARK_REPLY_MESSAGE is -- Create new user list bookmark reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_set_workitem_subscription (a_msg: O_GENERIC_MESSAGE): O_USER_SET_WORKITEM_SUBSCRIPTION_MESSAGE is -- Create new user set workitem subscription message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_workitem_subscription (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_WORKITEM_SUBSCRIPTION_MESSAGE is -- Create new user list workitem subscription message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_workitem_subscriptions (a_msg: O_GENERIC_MESSAGE): O_USER_WORKITEM_SUBSCRIPTIONS_MESSAGE is -- Create new user workitem subscriptions message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_reported_issues (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_REPORTED_ISSUES_MESSAGE is -- Create new user list reported issues message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_reported_issues_reply (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_REPORTED_ISSUES_REPLY_MESSAGE is -- Create new user list reported issues reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_request_friendship (a_msg: O_GENERIC_MESSAGE): O_USER_REQUEST_FRIENDSHIP_MESSAGE is -- Create new user request friendship message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_request_friendship_reply (a_msg: O_GENERIC_MESSAGE): O_USER_REQUEST_FRIENDSHIP_REPLY_MESSAGE is -- Create new user request friendship reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_process_friendship_request (a_msg: O_GENERIC_MESSAGE): O_USER_PROCESS_FRIENDSHIP_REQUEST_MESSAGE is -- Create new user process friendship request message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_process_friendship_request_reply (a_msg: O_GENERIC_MESSAGE): O_USER_PROCESS_FRIENDSHIP_REQUEST_REPLY_MESSAGE is -- Create new user process friendship request reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_remove_friendship (a_msg: O_GENERIC_MESSAGE): O_USER_REMOVE_FRIENDSHIP_MESSAGE is -- Create new user remove friendship message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_friends (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_FRIENDS_MESSAGE is -- Create new user list friends message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_friends_reply (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_FRIENDS_REPLY_MESSAGE is -- Create new user list friends reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_send_message (a_msg: O_GENERIC_MESSAGE): O_USER_SEND_MESSAGE_MESSAGE is -- Create new user send message message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_send_message_reply (a_msg: O_GENERIC_MESSAGE): O_USER_SEND_MESSAGE_REPLY_MESSAGE is -- Create new user send message reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_disable_account (a_msg: O_GENERIC_MESSAGE): O_USER_DISABLE_ACCOUNT_MESSAGE is -- Create new user disable account message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_user_list_communities (a_msg: O_GENERIC_MESSAGE): O_USER_LIST_COMMUNITIES_MESSAGE is -- Create new user list communities message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_general_status (a_msg: O_GENERIC_MESSAGE): O_GENERAL_STATUS_MESSAGE is -- Create new general status message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_general_string (a_msg: O_GENERIC_MESSAGE): O_GENERAL_STRING_MESSAGE is -- Create new general string message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_create (a_msg: O_GENERIC_MESSAGE): O_PROJECT_CREATE_MESSAGE is -- Create new project create message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_retrieve_id (a_msg: O_GENERIC_MESSAGE): O_PROJECT_RETRIEVE_ID_MESSAGE is -- Create new project retrieve id message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_retrieve_id_reply (a_msg: O_GENERIC_MESSAGE): O_PROJECT_RETRIEVE_ID_REPLY_MESSAGE is -- Create new project retrieve id reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_request_add (a_msg: O_GENERIC_MESSAGE): O_PROJECT_REQUEST_ADD_MESSAGE is -- Create new project request add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_request_retrieve (a_msg: O_GENERIC_MESSAGE): O_PROJECT_REQUEST_RETRIEVE_MESSAGE is -- Create new project request retrieve message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_request_retrieve_reply (a_msg: O_GENERIC_MESSAGE): O_PROJECT_REQUEST_RETRIEVE_REPLY_MESSAGE is -- Create new project request retrieve reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_MESSAGE is -- Create new project list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_all (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_ALL_MESSAGE is -- Create new project list all message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_partial (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_PARTIAL_MESSAGE is -- Create new project list partial message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_partial_internal (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_PARTIAL_INTERNAL_MESSAGE is -- Create new project list partial internal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project (a_msg: O_GENERIC_MESSAGE): O_PROJECT_MESSAGE is -- Create new project message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_reply (a_msg: O_GENERIC_MESSAGE): O_PROJECT_REPLY_MESSAGE is -- Create new project reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_change_group (a_msg: O_GENERIC_MESSAGE): O_PROJECT_CHANGE_GROUP_MESSAGE is -- Create new project change group message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_of_user (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_OF_USER_MESSAGE is -- Create new project list of user message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_of_user_reply (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_OF_USER_REPLY_MESSAGE is -- Create new project list of user reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_members (a_msg: O_GENERIC_MESSAGE): O_PROJECT_MEMBERS_MESSAGE is -- Create new project members all message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_change_description (a_msg: O_GENERIC_MESSAGE): O_PROJECT_CHANGE_DESCRIPTION_MESSAGE is -- Create new project change description message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_change_logo (a_msg: O_GENERIC_MESSAGE): O_PROJECT_CHANGE_LOGO_MESSAGE is -- Create new project change logo message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_bookmarkers (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_BOOKMARKERS_MESSAGE is -- Create new project list bookmarkers message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_communities (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_COMMUNITIES_MESSAGE is -- Create new project list communities message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_list_all_internal (a_msg: O_GENERIC_MESSAGE): O_PROJECT_LIST_ALL_INTERNAL_MESSAGE is -- Create new project list all internal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_internal (a_msg: O_GENERIC_MESSAGE): O_PROJECT_INTERNAL_MESSAGE is -- Create new project internal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_retrieve_statistics (a_msg: O_GENERIC_MESSAGE): O_PROJECT_RETRIEVE_STATISTICS_MESSAGE is -- Create new project retrieve statistics message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_retrieve_statistics_internal (a_msg: O_GENERIC_MESSAGE): O_PROJECT_RETRIEVE_STATISTICS_INTERNAL_MESSAGE is -- Create new project retrieve statistics internal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_retrieve_statistics_reply (a_msg: O_GENERIC_MESSAGE): O_PROJECT_RETRIEVE_STATISTICS_REPLY_MESSAGE is -- Create new project retrieve statistics reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_project_change_settings (a_msg: O_GENERIC_MESSAGE): O_PROJECT_CHANGE_SETTINGS_MESSAGE is -- Create new project change settings message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_mail_simple (a_msg: O_GENERIC_MESSAGE): O_MAIL_MESSAGE is -- Create new mail message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_list (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_LIST_MESSAGE is -- Create new workitem list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_list_projects (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_LIST_PROJECTS_MESSAGE is -- Create new workitem list projects message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_list_project (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_LIST_PROJECT_MESSAGE is -- Create new workitem list project message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_reply_list (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_LIST_REPLY_MESSAGE is -- Create new workitem list reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_retrieve (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_RETRIEVE_MESSAGE is -- Create new workitem retrieve message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_retrieve_reply (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_RETRIEVE_REPLY_MESSAGE is -- Create new workitem retrieve reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_mail (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_MAIL_MESSAGE is -- Create new workitem mail message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_mail_reply (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_MAIL_REPLY_MESSAGE is -- Create new workitem mail reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_set_read_status (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_SET_READ_STATUS_MESSAGE is -- Create new workitem set read status message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_workitem_set_read_status_project (a_msg: O_GENERIC_MESSAGE): O_WORKITEM_SET_READ_STATUS_PROJECT_MESSAGE is -- Create new workitem set read status message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_commit_add (a_msg: O_GENERIC_MESSAGE): O_COMMIT_ADD_MESSAGE is -- Create new commit add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_wiki_add (a_msg: O_GENERIC_MESSAGE): O_WIKI_ADD_MESSAGE is -- Create new wiki add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_wiki_render_html (a_msg: O_GENERIC_MESSAGE): O_WIKI_RENDER_HTML_MESSAGE is -- Create new wiki render html message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_comment_add (a_msg: O_GENERIC_MESSAGE): O_COMMENT_ADD_MESSAGE is -- Create new comment add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_add (a_msg: O_GENERIC_MESSAGE): O_RELEASE_ADD_MESSAGE is -- Create new release add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_list (a_msg: O_GENERIC_MESSAGE): O_RELEASE_LIST_MESSAGE is -- Create new release list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_list_reply (a_msg: O_GENERIC_MESSAGE): O_RELEASE_LIST_REPLY_MESSAGE is -- Create new release list reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_retrieve (a_msg: O_GENERIC_MESSAGE): O_RELEASE_RETRIEVE_MESSAGE is -- Create new release retrieve message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_retrieve_reply (a_msg: O_GENERIC_MESSAGE): O_RELEASE_RETRIEVE_REPLY_MESSAGE is -- Create new release retrieve reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_list_internal (a_msg: O_GENERIC_MESSAGE): O_RELEASE_LIST_INTERNAL_MESSAGE is -- Create new release list inernal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_retrieve_internal (a_msg: O_GENERIC_MESSAGE): O_RELEASE_RETRIEVE_INTERNAL_MESSAGE is -- Create new release retrieve internal message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_file_move_config_request (a_msg: O_GENERIC_MESSAGE): O_RELEASE_FILE_MOVE_CONFIG_REQUEST_MESSAGE is -- Create new release file move config message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_release_delete (a_msg: O_GENERIC_MESSAGE): O_RELEASE_DELETE_MESSAGE is -- Create new release delete message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_blog_add (a_msg: O_GENERIC_MESSAGE): O_BLOG_ADD_MESSAGE is -- Create new blog add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_add (a_msg: O_GENERIC_MESSAGE): O_ISSUE_ADD_MESSAGE is -- Create new issue add message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_update (a_msg: O_GENERIC_MESSAGE): O_ISSUE_UPDATE_MESSAGE is -- Create new issue update message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_comment (a_msg: O_GENERIC_MESSAGE): O_ISSUE_COMMENT_MESSAGE is -- Create new issue comment message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_retrieve (a_msg: O_GENERIC_MESSAGE): O_ISSUE_RETRIEVE_MESSAGE is -- Create new issue retrieve message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_retrieve_reply (a_msg: O_GENERIC_MESSAGE): O_ISSUE_RETRIEVE_REPLY_MESSAGE is -- Create new issue retrieve reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_list (a_msg: O_GENERIC_MESSAGE): O_ISSUE_LIST_MESSAGE is -- Create new issue list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_list_reply (a_msg: O_GENERIC_MESSAGE): O_ISSUE_LIST_REPLY_MESSAGE is -- Create new issue list reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_list_tags (a_msg: O_GENERIC_MESSAGE): O_ISSUE_LIST_TAGS_MESSAGE is -- Create new issue list tags message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_list_tags_reply (a_msg: O_GENERIC_MESSAGE): O_ISSUE_LIST_TAGS_REPLY_MESSAGE is -- Create new issue list tags reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_search (a_msg: O_GENERIC_MESSAGE): O_ISSUE_SEARCH_MESSAGE is -- Create new issue search message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_issue_list_changed (a_msg: O_GENERIC_MESSAGE): O_ISSUE_LIST_CHANGED_MESSAGE is -- Create new issue list changed message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_system_status (a_msg: O_GENERIC_MESSAGE): O_SYSTEM_STATUS_MESSAGE is -- Create new system status message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_system_mail_all (a_msg: O_GENERIC_MESSAGE): O_SYSTEM_MAIL_ALL_MESSAGE is -- Create new system mail all message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_MESSAGE is -- Create new community list message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list_reply (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_REPLY_MESSAGE is -- Create new community list reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_retrieve (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_RETRIEVE_MESSAGE is -- Create new community retrieve message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_retrieve_reply (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_RETRIEVE_REPLY_MESSAGE is -- Create new community retrieve reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_create (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_CREATE_MESSAGE is -- Create new community create message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_change_group (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_CHANGE_GROUP_MESSAGE is -- Create new community change group message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list_members (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_MEMBERS_MESSAGE is -- Create new community list members message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list_projects (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_PROJECTS_MESSAGE is -- Create new community list projects message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_add_project (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_ADD_PROJECT_MESSAGE is -- Create new community add project message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_remove_project (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_REMOVE_PROJECT_MESSAGE is -- Create new community remove project message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_delete (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_DELETE_MESSAGE is -- Create new community delete message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_change_description (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_CHANGE_DESCRIPTION_MESSAGE is -- Create new community change description message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list_wiki_pages (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_WIKI_PAGES_MESSAGE is -- Create new community list wiki pages message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_list_wiki_pages_reply (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_LIST_WIKI_PAGES_REPLY_MESSAGE is -- Create new community list wiki pages reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_retrieve_wiki_page (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_RETRIEVE_WIKI_PAGE_MESSAGE is -- Create new community retrieve wiki page message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_retrieve_wiki_page_reply (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_RETRIEVE_WIKI_PAGE_REPLY_MESSAGE is -- Create new community retrieve wiki page reply message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_add_wiki_page (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_ADD_WIKI_PAGE_MESSAGE is -- Create new community add wiki page message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_edit_wiki_page (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_EDIT_WIKI_PAGE_MESSAGE is -- Create new community edit wiki page message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_rename_wiki_page (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_RENAME_WIKI_PAGE_MESSAGE is -- Create new community rename wiki page message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end new_community_delete_wiki_page (a_msg: O_GENERIC_MESSAGE): O_COMMUNITY_DELETE_WIKI_PAGE_MESSAGE is -- Create new community delete wiki page message out of a_msg. require a_msg_not_void: a_msg /= Void do create Result.make_from_generic (a_msg) ensure Error_or_not_void: not is_error implies Result /= Void end feature -- Validity is_valid_p2p_message (a_msg: P2P_MESSAGE): BOOLEAN is -- Is a_msg a valid origo P2P_MESSAGE? do Result := a_msg /= Void and then a_msg.element_by_namespace_and_name (message_namespace, id_element) /= Void and a_msg.element_by_namespace_and_name (message_namespace, namespace_element) /= Void and a_msg.element_by_namespace_and_name (message_namespace, type_element) /= Void and a_msg.element_by_namespace_and_name (message_namespace, peer_element) /= Void and a_msg.element_by_namespace_and_name (message_namespace, peer_name_element) /= Void end feature {NONE} -- Implementation handler_registry: HASH_TABLE [HASH_TABLE [like handler_type, STRING], STRING] -- Handlers to create specific messages. register_builtin_handlers is -- Register the builtin handlers. do register_handler (general_namespace, general_status_type, agent new_general_status) register_handler (general_namespace, general_string_type, agent new_general_string) register_handler (build_namespace, build_simple_type, agent new_build_simple) register_handler (build_namespace, build_result_type, agent new_build_reply) register_handler (user_namespace, user_create_type, agent new_user_create) register_handler (user_namespace, user_login_type, agent new_user_login) register_handler (user_namespace, user_login_authenticated_type, agent new_user_login_authenticated) register_handler (user_namespace, user_login_key_type, agent new_user_login_key) register_handler (user_namespace, user_session_type, agent new_user_session) register_handler (user_namespace, user_authorized_for_project_type, agent new_user_authorized) register_handler (user_namespace, user_authorized_for_community_type, agent new_user_authorized_for_community) register_handler (user_namespace, user_list_type, agent new_user_list) register_handler (user_namespace, user_change_email_type, agent new_user_change_email) register_handler (user_namespace, user_change_account_enabled_type, agent new_user_change_account_enabled) register_handler (user_namespace, user_change_password_type, agent new_user_change_password) register_handler (user_namespace, user_reset_password_type, agent new_user_reset_password) register_handler (user_namespace, user_reset_password_reply_type, agent new_user_reset_password_reply) register_handler (user_namespace, user_my_name_type, agent new_user_my_name) register_handler (user_namespace, user_my_password_type, agent new_user_my_password) register_handler (user_namespace, user_my_email_type, agent new_user_my_email) register_handler (user_namespace, user_retrieve_password_type, agent new_user_retrieve_password) register_handler (user_namespace, user_retrieve_email_type, agent new_user_retrieve_email) register_handler (user_namespace, user_retrieve_user_from_email_type, agent new_user_retrieve_user_from_email) register_handler (user_namespace, user_profile_visible_type, agent new_user_profile_visible) register_handler (user_namespace, user_change_profile_visible_type, agent new_user_change_profile_visible) register_handler (user_namespace, user_add_openid_type, agent new_user_add_openid) register_handler (user_namespace, user_retrieve_openids_from_user_type, agent new_user_retrieve_openids_from_user) register_handler (user_namespace, user_stringarray_reply_type, agent new_user_stringarray_reply) register_handler (user_namespace, user_retrieve_user_from_openid_type, agent new_user_retrieve_user_from_openid) register_handler (user_namespace, user_remove_openid_type, agent new_user_remove_openid) register_handler (user_namespace, user_change_openid_type, agent new_user_change_openid) register_handler (user_namespace, user_retrieve_foaf_type, agent new_user_retrieve_foaf) register_handler (user_namespace, user_remove_foaf_type, agent new_user_remove_foaf) register_handler (user_namespace, user_add_foaf_type, agent new_user_add_foaf) register_handler (user_namespace, user_retrieve_information_type, agent new_user_retrieve_information) register_handler (user_namespace, user_retrieve_information_reply_type, agent new_user_retrieve_information_reply) register_handler (user_namespace, user_set_information_type, agent new_user_set_information) register_handler (user_namespace, user_set_icon_type, agent new_user_set_icon) register_handler (user_namespace, user_reset_icon_type, agent new_user_reset_icon) register_handler (user_namespace, user_key_type, agent new_user_key) register_handler (user_namespace, user_key_reply_type, agent new_user_key_reply) register_handler (user_namespace, user_key_generate_type, agent new_user_key_generate) register_handler (user_namespace, user_add_bookmark_type, agent new_user_add_bookmark) register_handler (user_namespace, user_remove_bookmark_type, agent new_user_remove_bookmark) register_handler (user_namespace, user_list_bookmark_type, agent new_user_list_bookmark) register_handler (user_namespace, user_list_bookmark_reply_type, agent new_user_list_bookmark_reply) register_handler (user_namespace, user_set_workitem_subscription_type, agent new_user_set_workitem_subscription) register_handler (user_namespace, user_list_workitem_subscription_type, agent new_user_list_workitem_subscription) register_handler (user_namespace, user_workitem_subscriptions_type, agent new_user_workitem_subscriptions) register_handler (user_namespace, user_list_reported_issues_type, agent new_user_list_reported_issues) register_handler (user_namespace, user_list_reported_issues_reply_type, agent new_user_list_reported_issues_reply) register_handler (user_namespace, user_request_friendship_type, agent new_user_request_friendship) register_handler (user_namespace, user_request_friendship_reply_type, agent new_user_request_friendship_reply) register_handler (user_namespace, user_process_friendship_request_type, agent new_user_process_friendship_request) register_handler (user_namespace, user_process_friendship_request_reply_type, agent new_user_process_friendship_request_reply) register_handler (user_namespace, user_remove_friendship_type, agent new_user_remove_friendship) register_handler (user_namespace, user_list_friends_type, agent new_user_list_friends) register_handler (user_namespace, user_list_friends_reply_type, agent new_user_list_friends_reply) register_handler (user_namespace, user_send_message_type, agent new_user_send_message) register_handler (user_namespace, user_send_message_reply_type, agent new_user_send_message_reply) register_handler (user_namespace, user_disable_account_type, agent new_user_disable_account) register_handler (user_namespace, user_list_communities_type, agent new_user_list_communities) register_handler (project_namespace, project_create_type, agent new_project_create) register_handler (project_namespace, project_retrieve_id_type, agent new_project_retrieve_id) register_handler (project_namespace, project_retrieve_id_reply_type, agent new_project_retrieve_id_reply) register_handler (project_namespace, project_request_add_type, agent new_project_request_add) register_handler (project_namespace, project_request_retrieve_type, agent new_project_request_retrieve) register_handler (project_namespace, project_request_retrieve_reply_type, agent new_project_request_retrieve_reply) register_handler (project_namespace, project_change_group_type, agent new_project_change_group) register_handler (project_namespace, project_list_type, agent new_project_list) register_handler (project_namespace, project_get_type, agent new_project) register_handler (project_namespace, project_get_reply_type, agent new_project_reply) register_handler (project_namespace, project_list_all_type, agent new_project_list_all) register_handler (project_namespace, project_list_partial_type, agent new_project_list_partial) register_handler (project_namespace, project_list_partial_internal_type, agent new_project_list_partial_internal) register_handler (project_namespace, project_list_of_user_type, agent new_project_list_of_user) register_handler (project_namespace, project_list_of_user_reply_type, agent new_project_list_of_user_reply) register_handler (project_namespace, project_members_type, agent new_project_members) register_handler (project_namespace, project_change_description_type, agent new_project_change_description) register_handler (project_namespace, project_change_logo_type, agent new_project_change_logo) register_handler (project_namespace, project_list_bookmarkers_type, agent new_project_list_bookmarkers) register_handler (project_namespace, project_list_communities_type, agent new_project_list_communities) register_handler (project_namespace, project_list_all_internal_type, agent new_project_list_all_internal) register_handler (project_namespace, project_get_internal_type, agent new_project_internal) register_handler (project_namespace, project_retrieve_statistics_type, agent new_project_retrieve_statistics) register_handler (project_namespace, project_retrieve_statistics_internal_type, agent new_project_retrieve_statistics_internal) register_handler (project_namespace, project_retrieve_statistics_reply_type, agent new_project_retrieve_statistics_reply) register_handler (project_namespace, project_change_settings_type, agent new_project_change_settings) register_handler (mail_namespace, mail_simple_type, agent new_mail_simple) register_handler (workitem_namespace, workitem_list_type, agent new_workitem_list) register_handler (workitem_namespace, workitem_list_projects_type, agent new_workitem_list_projects) register_handler (workitem_namespace, workitem_list_project_type, agent new_workitem_list_project) register_handler (workitem_namespace, workitem_list_reply_type, agent new_workitem_reply_list) register_handler (workitem_namespace, workitem_retrieve_type, agent new_workitem_retrieve) register_handler (workitem_namespace, workitem_retrieve_reply_type, agent new_workitem_retrieve_reply) register_handler (workitem_namespace, workitem_mail_type, agent new_workitem_mail) register_handler (workitem_namespace, workitem_mail_reply_type, agent new_workitem_mail_reply) register_handler (workitem_namespace, workitem_set_read_status_type, agent new_workitem_set_read_status) register_handler (workitem_namespace, workitem_set_read_status_project_type, agent new_workitem_set_read_status_project) register_handler (commit_namespace, commit_add_type, agent new_commit_add) register_handler (wiki_namespace, wiki_add_type, agent new_wiki_add) register_handler (wiki_namespace, wiki_render_html_type, agent new_wiki_render_html) register_handler (comment_namespace, comment_add_type, agent new_comment_add) register_handler (release_namespace, release_add_type, agent new_release_add) register_handler (release_namespace, release_list_type, agent new_release_list) register_handler (release_namespace, release_list_reply_type, agent new_release_list_reply) register_handler (release_namespace, release_retrieve_type, agent new_release_retrieve) register_handler (release_namespace, release_retrieve_reply_type, agent new_release_retrieve_reply) register_handler (release_namespace, release_list_internal_type, agent new_release_list_internal) register_handler (release_namespace, release_retrieve_internal_type, agent new_release_retrieve_internal) register_handler (release_namespace, release_file_move_config_request_type, agent new_release_file_move_config_request) register_handler (release_namespace, release_delete_type, agent new_release_delete) register_handler (blog_namespace, blog_add_type, agent new_blog_add) register_handler (issue_namespace, issue_add_type, agent new_issue_add) register_handler (issue_namespace, issue_update_type, agent new_issue_update) register_handler (issue_namespace, issue_comment_type, agent new_issue_comment) register_handler (issue_namespace, issue_retrieve_type, agent new_issue_retrieve) register_handler (issue_namespace, issue_retrieve_reply_type, agent new_issue_retrieve_reply) register_handler (issue_namespace, issue_list_type, agent new_issue_list) register_handler (issue_namespace, issue_search_type, agent new_issue_search) register_handler (issue_namespace, issue_list_reply_type, agent new_issue_list_reply) register_handler (issue_namespace, issue_list_tags_type, agent new_issue_list_tags) register_handler (issue_namespace, issue_list_tags_reply_type, agent new_issue_list_tags_reply) register_handler (issue_namespace, issue_list_changed_type, agent new_issue_list_changed) register_handler (system_namespace, system_status_type, agent new_system_status) register_handler (system_namespace, system_mail_all_type, agent new_system_mail_all) register_handler (community_namespace, community_list_type, agent new_community_list) register_handler (community_namespace, community_list_reply_type, agent new_community_list_reply) register_handler (community_namespace, community_retrieve_type, agent new_community_retrieve) register_handler (community_namespace, community_retrieve_reply_type, agent new_community_retrieve_reply) register_handler (community_namespace, community_create_type, agent new_community_create) register_handler (community_namespace, community_change_group_type, agent new_community_change_group) register_handler (community_namespace, community_list_members_type, agent new_community_list_members) register_handler (community_namespace, community_list_projects_type, agent new_community_list_projects) register_handler (community_namespace, community_add_project_type, agent new_community_add_project) register_handler (community_namespace, community_remove_project_type, agent new_community_remove_project) register_handler (community_namespace, community_delete_type, agent new_community_delete) register_handler (community_namespace, community_change_description_type, agent new_community_change_description) register_handler (community_namespace, community_list_wiki_pages_type, agent new_community_list_wiki_pages) register_handler (community_namespace, community_list_wiki_pages_reply_type, agent new_community_list_wiki_pages_reply) register_handler (community_namespace, community_retrieve_wiki_page_type, agent new_community_retrieve_wiki_page) register_handler (community_namespace, community_retrieve_wiki_page_reply_type, agent new_community_retrieve_wiki_page_reply) register_handler (community_namespace, community_add_wiki_page_type, agent new_community_add_wiki_page) register_handler (community_namespace, community_edit_wiki_page_type, agent new_community_edit_wiki_page) register_handler (community_namespace, community_rename_wiki_page_type, agent new_community_rename_wiki_page) register_handler (community_namespace, community_delete_wiki_page_type, agent new_community_delete_wiki_page) end feature {NONE} -- Type anchors handler_type: FUNCTION [ANY, TUPLE[O_GENERIC_MESSAGE], O_MESSAGE] -- Type of the message creators, indexed by namespace and type. invariant handler_registry_not_void: handler_registry /= Void end