Definition: A league is a competitive group for a given season.  While the name of a league may remain the same for different seasons, almost anything else can change.  Therefore each season can be considered a different league.

Issues:  If the number of teams changes during a season, then that may result in a need for a change to the Uneven Size Type characteristic.  If the loss results in an uneven number of teams, then the Uneven Size Type characteristic must be addressed.  If the loss results in an even number of teams, then it was previously uneven, and now the Uneven Size Type characteristic is not needed!

The team size rarely changes during a season, but I’m not sure it couldn’t, so that is something else that needs to be considered, more so by the Teams object.

Variables:  Variables here

  Modifier Class Name Value
    Integer serializableVersionUID 1234567
private boolean hasFolder

Characteristics:

  Tic name object
Name String
Length (Competition Count) Integer
Size (Team Count) Integer
Team Size (Members) Integer
Vacant Score Integer
Handicap Info Handicapper Object
Sanction/Certification Number String
Start Date BowlingDate
Is Default Boolean
MIA Min Games Required Integer
Uneven Size Type (Bye, Draw, Blind) Uneven Enum
Use Entering Average Boolean
Absent Penalty Integer
Games in Series Integer
Contest Monetary Fee Float

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:

 
  • 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 getName() method to return the name of the league.
  • A getHandicapper() method to return the Handicapper object.
  • A getMIA() method to return the current improvement in the average.
  • A isDefault() method to return if this league is the default.
  • A method to determine if each League has a matching directory for it.
  • A method to return the appropriate directory name for this League.