indexing description: "Project members message." author: "Patrick Ruckstuhl " date: "$Date$" revision: "$Revision$" class O_PROJECT_MEMBERS_MESSAGE inherit O_SESSION_MESSAGE rename make as make_session redefine make_from_generic, arguments end O_PROJECT_CONSTANTS undefine out end create make create {O_MESSAGE_FACTORY} make_from_generic feature {NONE} -- Initialization make (a_session: like session; a_project: like project; a_group: like group) is -- Create. require a_session_ok: a_session /= Void and then not a_session.is_empty a_project_ok: a_project > 0 a_group_ok: a_group >= 0 do make_session (a_session) project := a_project group := a_group ensure project_set: project = a_project group_set: group = a_group end make_from_generic (a_msg: O_GENERIC_MESSAGE) is -- Create from a generic message. local l_args: HASH_TABLE [STRING, STRING] do Precursor (a_msg) l_args := a_msg.arguments project := l_args.item (project_argument).to_integer group := l_args.item (group_argument).to_integer end feature -- Access namespace: STRING is -- Namespace of the message type. once Result := project_namespace end type: STRING is -- Type of the message. once Result := project_members_type end project: INTEGER -- Project id group: INTEGER -- Access group id arguments: HASH_TABLE [STRING, STRING] is -- Named arguments. do Result := Precursor Result.force (project.out, project_argument) Result.force (group.out, group_argument) end feature {NONE} -- Implementation project_argument: STRING is "project" group_argument: STRING is "group" invariant project_ok: project > 0 group_ok: group >= 0 end