// A class that implements the Student interface.
// Barry Cornelius, 20 June 2000
import java.util. StringTokenizer;
public class StudentImpl extends PersonImpl implements Student
{
   private String iCourseName;
   private int iStudentNumber;
   public StudentImpl()
   {
      this("", new DateImpl(), "", 0.0, "", 0);
   }
   public StudentImpl(final String pName, final Date pDateOfBirth,
                      final String pPhoneNumber, final double pHeight,
                      final String pCourseName, final int pStudentNumber) 
   {
      super(pName, pDateOfBirth, pPhoneNumber, pHeight);
      iCourseName = pCourseName; 
      iStudentNumber = pStudentNumber;
   }
   public StudentImpl(final String pStudentString)
   {
      super(pStudentString.substring(0, pStudentString.indexOf("@")));
      try
      {
         final StringTokenizer tTokens = 
                        new StringTokenizer(pStudentString, "@");
         final String tPersonString = tTokens.nextToken();
         iCourseName = tTokens.nextToken();
         String tStudentNumberString = tTokens.nextToken();
         if (tStudentNumberString.equals(""))
         {
            tStudentNumberString = "0";
         }
         iStudentNumber = Integer.parseInt(tStudentNumberString);
      }
      catch(final Exception pException)
      {
         iCourseName = ""; 
         iStudentNumber = -1;
         throw new IllegalArgumentException();
      }
   }
   public String getCourseName()
   {
      return iCourseName;
   } //BJCHEREFIRST
   public int getStudentNumber()
   {
      return iStudentNumber;
   }
   public void setCourseName(final String pCourseName)
   {
      iCourseName = pCourseName;
   }
   public void setStudentNumber(final int pStudentNumber)
   {
      iStudentNumber = pStudentNumber;
   }
   public String toString()
   {
      return super.toString() + "@" + iCourseName + "@" + iStudentNumber;
   }
}
