Definition:  This object is critical, because it is the foundation for many objects.  Subclasses will be Bowler, Address, PostalCode, Member, League, Season, Team, ContestDate, Lanes, Series, AwardCriteria, AwardEarned, and Treasury.  This will be an abstract class, as the subclasses will include their own Tics and specialized methods.

Issue:  

Variables:  Variables here

  Modifier Class Name Value
    Integer serializableVersionUID 1234567

Characteristics:  

  Tic name object
  ID Integer
hasChanged Boolean

Requirments:

 
  • Ticable - Contains Tics
  • HasID - can find an ID
  • Serializable - Just in case
  • Comparable and Comparator - for Sorting
  • Observable - Maybe
  • new, to create a new instance using Tic Default values
  • RecordIO - to support a Shovel

Required Methods:

 
  • A no argument constructor.  Unnecessary for an abstract class.
  • Setters and getters for the characteristics. (Tics)
  • 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 setDefaultValues() method may be needed.
  • String getName() which returns a name for the object.
  • hasChanged() and hasChanged(Boolean) if the Record has changed.