indexing description: "[ Objects that have a name and need to be updated when it changes ]" author: "" date: "$Date$" revision: "$Revision$" deferred class EM_VIZ_NAMED inherit EM_VIZ_UPDATEABLE feature -- Initialization make_anonymous is -- Initialize with an anonymous name do make_named (anonymous_name) end make_named (a_name: like name) is -- Initialize with `a_name' require name_exists: a_name /= Void do set_name (a_name) ensure set: name = a_name end feature -- Access name: STRING -- Name of object anonymous_name: STRING is "anonymous" -- Anonymous name feature -- Element change set_name (a_name: like name) is -- Set name to `a_name' require name_exists: a_name /= Void do name := a_name expire ensure set: name = a_name expired: needs_update end invariant name_exists: name /= Void end