Next: How to Use the
Up: No Title
Previous: Description of the Problem
The current system's source can be found in your team's directory
on Dogbert, in the implicitinvocation directory. It is decomposed
into the following modules:
- Registrar This component listens for requests
to register students and registers them. If the requested section is
full, the registrar announces OverfullEvent and does not register
them for the class; if an error occurs while attempting to register
the student, an ExceptionEvent will be announced indicating that
the registration did no
This component also listens for requests to cancel a student's registration.
If the student was not registered in the class, a NotRegisteredException
will be announced; otherwise, the registration will be attempted. If
the registration fails, the exception received by the Registrar
will be announced as an ExceptionEvent.
- FeedbackUI This component listens for events
which the user needs to be notified of, and delivers the information to
the user of the system. It announces nothing, and subscribes to all
ExceptionEvents.
The following events are available in the provided system:
- ExceptionEvent This event takes the place of normal
exceptions; when exceptions are caught from invoking methods, this
event is announced. The only component which subscribes to this in the
given system is the FeedbackUI which displays the error to the user.
One result of the current implementation is that any component which
subscribes to ExceptionEvent will also hear all subclasses of
the Exception class when any are announced. As a result, when the
FeedbackUI subscribes to all ExceptionEvents, it also hears
the NotRegisteredException when it is announced.
- NotRegisteredException This event indicates that someone
asked to be removed from a section they were not registered for.
- NotFullEvent (*) This event is announced whenever cancellation
of a registration causes a section to drop from ``full'' to having an
open registration space.
- OverfullEvent (*) This event is announced when a student
attempts to register in a full section. The registration does not
take place when this event is announced.
- RegisterStudentEvent This event is announced to indicate
that a specific student wishes to register in a specific section of a
class. The Registrar will hear this event and react as outlined
in the description of the Registrar above.
- UnRegisterStudentEvent This event is announced to indicate
that a specific student should be removed from registration in a specific
section of a class. The Registrar will hear this event and react
as outlined in the description of the Registrar above.
The events marked (*) are currently announced, but no
component subscribes to them. As such, data may be added
to these events to carry additional information if necessary;
the unmarked events may not be changed.
In addition, the following module will create the event bindings
and activate the user interface:
- CreateBindings This module will create the
event bindings and activate the user interface.
As usual, the adapter serves to connect the user interface
to the implementation. For this system, the adapter translates
user interface requests into event announcements.
To complete your solution, you should only add or modify event
registrations to the modules above, add any necessary new modules, and
make changes to CreateBindings to use the new modules. You may change
the data associated with the events marked (*) above, but may not
change when they are announced by existing components. Do not make any
other changes to the provided modules
Next: How to Use the
Up: No Title
Previous: Description of the Problem
Tom Conversion Service