Definition: An address is a physical residence for postal mail for a bowler.  Having a separate file for addresses allows for multiple bowlers to share a single address, making updates and corrections apply to all.  It also allows for a notification to be sent to one address, rather than all bowlers at that address, thus saving postage and printing costs.

There is normally only one (or none) land line phone at a residence, which can be shared by all bowlers at that address.  That is why it is included here.

I make no attempt to format these fields.

The address is dependent on the postal code, so the PostalCode objects must be available to be included into the Address object, as necessary.

Characteristics:

  Tic name object
  Street1 String
Street2 String
PostalCodeID Integer
HomePhone String

Requirments:

  • Ticable
  • HasID
  • 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 and 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)
  • hasChanged() and hasChanged(Boolean) if the Record has changed.