Definition: The schedule combines the information from the competition dates and lane assignments for that date.

Issue: Is this really necessary?  It makes some sense to separate the lane assignments from the actual dates, but that doesn’t require combining them into a Schedule.  What is the benefit here?  The dates (competition dates) list will have items that are not used, so there is not a one for one correspondence between that list and the lanes list.  The link is the competition number (1, 2, ...) which will have to be in each object.

Variables:  Variables here

  Modifier Class Name Value
    Integer serializableVersionUID 1234567

Characteristics:

  Tic name object
Lanes Lanes Object
ContestDate BowlingDate

Requirments:

 
  • Ticable
  • HasID, but might not be used.
  • Serializable
  • Comparable and Comparator
  • Observable
  • new, to create a new instance using Tic default values.
  • RecordIO

Required Methods: (All delegated to the appropriate sub-object)

 
  • A no argument constructor.
  • Setters and getters for the characteristics.
  • int onLane(int contestNo, Team) method to return the contest lane for the provided team and contest number.
  • int getOpponent(int contestNo, Team) method to return the opposing team for that contest number and team./LI>
  • int getTeam(int contestNo, int LaneNo) returns the Team on a given lane and contest number.
  • boolean isExcluded(BowlingDate( returns whether the given date is not a competition date.
  • A reset() method to make revisions if the number of competitions or the number of teams changes.