protected function doValidate($columns = null)
 {
     if (!$this->alreadyInValidation) {
         $this->alreadyInValidation = true;
         $retval = null;
         $failureMap = array();
         if ($this->aSubjectAccal !== null) {
             if (!$this->aSubjectAccal->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aSubjectAccal->getValidationFailures());
             }
         }
         if ($this->aClassGroup !== null) {
             if (!$this->aClassGroup->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aClassGroup->getValidationFailures());
             }
         }
         if ($this->aAcademicCalendar !== null) {
             if (!$this->aAcademicCalendar->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aAcademicCalendar->getValidationFailures());
             }
         }
         if ($this->aSubject !== null) {
             if (!$this->aSubject->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aSubject->getValidationFailures());
             }
         }
         if ($this->aEmployee !== null) {
             if (!$this->aEmployee->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aEmployee->getValidationFailures());
             }
         }
         if ($this->aCurriculum !== null) {
             if (!$this->aCurriculum->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aCurriculum->getValidationFailures());
             }
         }
         if ($this->aDepartment !== null) {
             if (!$this->aDepartment->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aDepartment->getValidationFailures());
             }
         }
         if (($retval = VSubjectAccalLectorStudentPeer::doValidate($this, $columns)) !== true) {
             $failureMap = array_merge($failureMap, $retval);
         }
         $this->alreadyInValidation = false;
     }
     return !empty($failureMap) ? $failureMap : true;
 }