5.2. Schedule.rsl
module ConflictModule;
from ScheduleModule import Section;
from ScheduleModule import Schedule;
object Conflict is
components: seclst:Section* and cd:ConflictDiscription and ct:ConflictType and Show;
description: (*
Conficlt is a list of one or more of offending section the discription of
the conflict and the type of conflict.
*);
end conflict;
object ConflictType is
components: Error or Warning;
description: (*
Type differentiates between a Warning and an Error.
*);
end Type;
object Error;
object Warning;
object Show is boolean;
object ConflictDiscription is
components: Staff or TBA or RoomProx or TimeProx or Overlap or CER or InstructConflict
or InstructWTU or RoomConflict;
description: (*
The ConflictDistription is the spefic text that describes a particular conflict.
*);
end conflictDistiption;
object Staff is TextDiscrip;
object TBA is TextDiscrip;
object RoomProx is TextDiscrip;
object TimeProx is TextDiscrip;
object Overlap is TextDiscrip;
object CER is TextDiscrip;
object InstructConflict is TextDiscrip;
object InstructWTU is TextDiscrip;
object RoomConflict is TextDiscrip;
object TextDiscrip is string;
operation ViewConflicts is
inputs: sbd:Schedule;
outputs: confl':Conflict*;
(*
* This operation displays one at a time all of the confict in order of section.course
* number where Show = true.
*)
precondition: ;
postcondition: ;
end Veiwconflicts;
operation Skip is
inputs: confl:Conflict*, sbd:Schedule;
outputs: conf':Conflict, sdb':Schedule;
(*
* This operation displays the next conflict
*)
precondition: ;
postcondition: ;
end Skip;
operation Change is
inputs: conf:Conflict, sbd:Schedule;
outputs: conf':Conflict, sdb':Schedule;
(*
* This operation calls the ScheduleModule.change operation with the current section
* as the section as it's input
*)
precondition: ;
postcondition: ;
end Change;
operation Ignore is
inputs: conf:Conflict, sbd:Schedule;
outputs: conf':Conflict, sdb':Schedule;
(*
* This operation changes the current Conflict.Show = false
*)
precondition: ;
postcondition: ;
end Ignore;
operation Resolve is
inputs: conf:Conflict, sbd:Schedule;
outputs: conf':Conflict, sdb':Schedule;
(*
* This operation Takes the existion schecule and does create schedule will every
* but the conflicts lock into
*)
precondition: ;
postcondition: ;
end Resolve;
operation Reset is
inputs: confl:Conflict*;
outputs: confl':Conflict*;
(*
* This operation sets all Conflict.Show = true;
*)
precondition: ;
postcondition: ;
end Reset;
end ConflictModule;
Prev: Schedule Reporting.rsl
| Next: [none]
| Up: Specification
| Top: index