(**** * * Module Schedule defines the objects and operations related to scheduling * appointments, meetings, and tasks in the calendar system. * *) module Schedule; import CalendarDB.CalendarDB; export Event; define operation attribute trigger:Trigger = UserTriggered; (* * The trigger attribute is used to specify by what means an operation * triggered. See the desciption of the Trigger object for further details. *) (* ... *) object Trigger components: UserTriggered or SystemTriggered; description: (* Trigger defines the two types of operation trigger -- user or system. In this specification it is assmed that all operations for which NO explicit trigger attribute is specified, the end user triggers the operation. The only other form of operation trigger in this specification is SystemTriggered, which indicates that an operation triggered externally by the underlying operating system, not explicitly by the user. The purpose of specifying a trigger is make clear how event reminders are generated. Speccifically, event reminders are to be triggered whether or not the calendar tool is operational at the time the reminder is set to be sent. *); end Trigger; object UserTriggered; object SystemTriggered; end Schedule;