/**
  * A type to represent a person
  * @author  Barry Cornelius
  * @version 13th November 1998
  */
public interface Person
{
      /** @return the Name part of the target person */
   public String getName();

      /** @return the DateOfBirth part of the target person */
   public Date getDateOfBirth();

      /** @return the PhoneNumber part of the target person */
   public String getPhoneNumber();

      /** @return the Height part of the target person */
   public double getHeight();

      /** @param  pName         the value to set the Name part
                                of the target person */
   public void setName(final String pName);

      /** @param  pDateOfBirth  the value to set the DateOfBirth part
                                of the target person */
   public void setDateOfBirth(final Date pDateOfBirth);

      /** @param  pPhoneNumber  the value to set the PhoneNumber part
                                of the target person */
   public void setPhoneNumber(final String pPhoneNumber);

      /** @param  pHeight       the value to set the Height part
                                of the target person */
   public void setHeight(final double pHeight);

      /** @param  pObject       the value with which to compare the target date
        * @return               true if and only if the target represents the
        *                       same date as pObject */
   public boolean equals(Object pObject);

      /** @return the hashcode for the value of the target */
   public int hashCode();

      /** @return a textual representation of the target date */
   public String toString();
}
