DELTA 50 0 278 SVN‚3—.”{‚3€”{ Each user will have a notifier, even non-registered ones. The default notifier (and thus the notifier used by all non-registered users) is email, although the default is to send no reminders, so this may rarely be used. Users can change their notification preferences. In the initial release notification options will be email, IM (instant message), SMS (text message), and POTS (phone). Preferences include when to be notified (in minutes before the start of a meeting) and how to be notified (in the form of rank-ordering acceptable methods). A Notifier has no public data members, but the following private ones: notification_type[4] preferenceOrder A 4-length array of notification_types (an enumerated type that can take on the values EMAIL, IM, SMS, POTS, and NONE). This represents the user's preference for how to be notified: the acceptable methods are put in rank order and the other slots are filled with NONE. This is initialized to {EMAIL, NONE, NONE, NONE}. String emailAddress The user's email address. PhoneNumber phoneNumber PhoneNumber is essentially a struct that holds a user's country code, area code, and local number. It uses negative values for status indicators (i.e. not set). String IMName The user's identifier for contact over SIP/SIMPLE, jabber, etc. List notificationTime This holds some number of integers (initially none) that indicate when the user is to be reminded about an upcoming meeting. So if it consisted of 5, 60, and 1440 that would indicate that the user should be reminded about an impending meeting 5 minutes before it, an hour before it, and a day before it. A list of Notifier's routines follows. Public routines: The constructor takes an email address (as a string), which should already have been checked for proper formatting (though in fact this will be re-checked). IMName and emailAddress have standard getters and setters. The setters do format-checking. phoneNumber has a getter and a setter that deal in Strings, which means that the Notifier is in charge of parsing phone numbers into their component parts and assembling the parts into a number. preferenceOrder also has a getter and setter. The setter checks that no method (other than NONE) appears more than once and that no method appears later in the array than NONE. notificationTime can be altered with the routines addNotificationTime(int) and deleteNotificationTime(int), which are essentially aliases for List.add and List.delete, with just some basic sanity-checking on top (that the argument is not negative). A clone of it is provided by the getNotificationTimes() routine for the user interface. ENDREP id: x.0.r51/2724 type: file pred: x.0.r50/291 count: 1 text: 51 0 2702 2990 646c3382d309d7ff0a5e2f43fdcdf12d cpath: /architecture_design/module_designs/notifier_design.txt copyroot: 0 / PLAIN K 19 notifier_design.txt V 17 file x.0.r51/2724 K 22 scheduler_ui_prototype V 16 dir r.g.r47/1279 K 23 server_class_design.txt V 16 file w.0.r49/456 END ENDREP id: t.0.r51/3077 type: dir pred: t.0.r50/622 count: 4 text: 51 2911 153 153 8cb880aeb15e4c8f42cb6f66340549b4 cpath: /architecture_design/module_designs copyroot: 0 / PLAIN K 12 architecture V 16 dir s.0.r46/1718 K 24 component_specifications V 16 dir l.0.r48/2106 K 14 module_designs V 16 dir t.0.r51/3077 K 8 plan.txt V 17 file k.0.r43/1350 END ENDREP id: g.0.r51/3431 type: dir pred: g.0.r50/973 count: 24 text: 51 3244 174 174 e71cf57928d9074f34dcd6ea57c710e5 cpath: /architecture_design copyroot: 0 / PLAIN K 19 architecture_design V 16 dir g.0.r51/3431 K 22 requirements_documents V 13 dir 1.a.r26/0 END ENDREP id: 0.0.r51/3695 type: dir pred: 0.0.r50/1235 count: 51 text: 51 3584 98 98 990a71eda6620414854d616230bca44f cpath: / copyroot: 0 / x.0.t50-1 modify true false /architecture_design/module_designs/notifier_design.txt 3695 3828