throw new ExistingSupportLesson();
    public Boolean run(Integer infoExecutionCourseCode, Integer teacherCode)            throws FenixServiceException, ExcepcaoPersistencia {        ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();        IPersistentProfessorship persistentProfessorship = sp.getIPersistentProfessorship();        IPersistentResponsibleFor persistentResponsibleFor = sp.getIPersistentResponsibleFor();        IPersistentSupportLesson supportLessonDAO = sp.getIPersistentSupportLesson();        IPersistentShiftProfessorship shiftProfessorshipDAO = sp.getIPersistentShiftProfessorship();        //note: removed the possibility for a responsible teacher to remove        // from himself the professorship        //(it was a feature that didnt make sense)        IResponsibleFor responsibleFor = persistentResponsibleFor.readByTeacherAndExecutionCourse(                teacherCode, infoExecutionCourseCode);        IPersistentResponsibleFor responsibleForDAO = sp.getIPersistentResponsibleFor();        if (responsibleFor != null) {            if (!canDeleteResponsibleFor()) {                throw new notAuthorizedServiceDeleteException();            }            deleteResponsibleFor(responsibleFor, responsibleForDAO);        }        IProfessorship professorshipToDelete = persistentProfessorship.readByTeacherAndExecutionCourse(                teacherCode, infoExecutionCourseCode);        List shiftProfessorshipList = shiftProfessorshipDAO.readByProfessorship(professorshipToDelete);        List supportLessonList = supportLessonDAO.readByProfessorship(professorshipToDelete.getIdInternal());        if (shiftProfessorshipList.isEmpty() && supportLessonList.isEmpty()) {            IPersistentSummary persistentSummary = sp.getIPersistentSummary();            List summaryList = persistentSummary.readByTeacher(professorshipToDelete                    .getExecutionCourse().getIdInternal(), professorshipToDelete.getTeacher()                    .getTeacherNumber());            if (summaryList != null && !summaryList.isEmpty()) {                for (Iterator iterator = summaryList.iterator(); iterator.hasNext();) {                    ISummary summary = (ISummary) iterator.next();                    persistentSummary.simpleLockWrite(summary);                    summary.setProfessorship(null);                    summary.setKeyProfessorship(null);                }            }            deleteProfessorship(persistentProfessorship, professorshipToDelete);        } else {            if (!shiftProfessorshipList.isEmpty()) {                throw new ExistingShiftProfessorship();            }            throw new ExistingSupportLesson();        }        return Boolean.TRUE;    }