/**
  * Takes a reference to a Student object and a SOAP response,
  * Plugs the SOAP values into Student object.
  *
  * @param Student $student
  * @param Array $data
  */
 protected function plugValues(&$student, array $data)
 {
     /**
      * Basic Demographics *
      */
     $student->setBannerId($data['ID']);
     $student->setUsername($data['userName']);
     $student->setFirstName($data['firstName']);
     $student->setLastName($data['lastName']);
     $student->setPreferredName($data['preferredName']);
     /**
      * Academic Info
      */
     // Level (grad vs undergrad)
     if ($data['studentLevel'] == self::UNDERGRAD) {
         $student->setLevel(Student::UNDERGRAD);
     } elseif ($data['studentLevel'] == self::GRADUATE) {
         $student->setLevel(Student::GRADUATE);
     } elseif ($data['studentLevel'] == self::GRADUATE2) {
         $student->setLevel(Student::GRADUATE2);
     } elseif ($data['studentLevel'] == self::DOCTORAL) {
         $student->setLevel(Student::DOCTORAL);
     } elseif ($data['studentLevel'] == self::POSTDOC) {
         $student->setLevel(Student::POSTDOC);
     } else {
         throw new \InvalidArgumentException("Unrecognized student level ({$data['studentLevel']}) for {$data->banner_id}.");
     }
     // Credit Hours
     $student->setCreditHours(isset($data['creditHoursEnrolled']) ? $data['creditHoursEnrolled'] : 0);
     // Type
     $student->setStudentType($data['studentType']);
     // Classification
     //TODO Check the API's actual format and possible values for this field
     $student->setClass($data['classification']);
     // College
     $student->setCollegeCode($data['collegeCode']);
     $student->setCollegeDesc($data['collegeDesc']);
 }