Definition: A series is a set of games completed during one competition.  Normally it is three games, but the standard scoresheet allows for four games, so that possibility has to be provided for.  The member’s position is recorded in a series.  While it is possible for a member to bowl in different positions in each game of a series, the standard scoresheet does not provide for that possibility and shows one position for an entire series.  Since a member may change teams during a season, the team at the time the series was bowled must be included with the series information.  Each series should be unique when all elements are considered.

Issues: In Java, the index value for a sequence, list, or array starts at 0, but that is not a valid game number.  The indices for games must start at 1.  This may not be an intuitive conversion for a programmer.  See my solution to this at RefList.

One GameType applies to an entire series, so I’m not sure if it belongs here or in GameType.  The one I’m thinking of is the uneven teams type.  If the type is “Draw” then maybe the team number drawn belongs with the Series.

I would like to keep the Game object as an inner class of Series, if possible.  A Game should not be allowed to float around on its own.  It should always be specific to a Series.  But, in the award computation, it is necessary to see the pins for regular games, so the Series must have a mechanism to return those values.  The iterator could be used if the Game object includes the game number as a characteristic.

Variables:  Variables here

  Modifier Class Name Value
    Integer serializableVersionUID 1234567

Characteristics:

  Tic name object
League League Object
Contest Number Integer
Season (in League?) Season object
Team Team object
Member Member object
Position Integer
Games List<Game>

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 reset() method if the number of competitions or the number of teams changes.
  • A Game iterator or a way to get a specific game, up to the maximum possible, like getGame(int number).  The Type of game is critical as to wether the game counts, so there may need to be a way to get that information from the Game objects.
  • A getRegularSeriesPins() method which counts up all regular game pins in the Series.
  • A getMaxGame() method to return the highest regular game.