Definition: A contest date is a day, when a competition is scheduled to occur, which is typically once a week.  Some leagues can bowl twice a week, or even every other week, so the actual frequency is determined by the league.  Leagues often have dates during the season when they don’t have a competition (excluded) due to holidays, inclement weather, equipment failure, or other reasons.  When a contest does not occur, even though it was scheduled (due to inclement weather for example), then the schedule normally shifts down to add an additional contest date after what would have been the end of the season.  This is optional, however, and some leagues will simply reduce the number of contests scheduled.  When a team pre-bowls or post-bowls a contest, as approved by the league, the actual date of the contest is ignored, and the scheduled date becomes the date of record.  It is very rare for a league to deliberately schedule two contests for a league on the same date.  

Issue:  An issue is whether to use the Date as the sort value, or use an ID value?  Another is if the contest number should be 0 or -1 when the date is excluded.

Variables:  Variables here

  Modifier Class Name Value
    Integer serializableVersionUID 1234567

Characteristics:

  Tic name object
  Contest Date BowlingDate
Excluded YesNo Enum
Reason For Exclusion String
Contest Number Integer

Requirements:

 
  • 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:

 
  • A no argument constructor.
  • Setters and getters for the characteristics.
  • The compare(Object, Object), compareTo(Object), and equals(Object) methods. (Comparable and Comparator)
  • Save() and Load() methods for saving/loading to a delimited file. (RecordIO)
  • Get a specific object using the ID.  The object may be in memory or need to be retrieved from a data store (file). (HasID)
  • A reset() method if the number of competitions or the number of teams changes.
  • YesNo Enum isExcluded() returns whether the date is excluded.