/**
   * Executes the service. Returns the current collection of infoTeachers.
   *
   * @throws ExcepcaoPersistencia
   */
  protected List<InfoTeacher> run(String executionCourseId) throws FenixServiceException {

    Collection professorShips = null;
    ExecutionCourse executionCourse = FenixFramework.getDomainObject(executionCourseId);
    professorShips = executionCourse.getProfessorshipsSet();

    if (professorShips == null || professorShips.isEmpty()) {
      return null;
    }

    List<InfoTeacher> infoTeachers = new ArrayList<InfoTeacher>();
    Iterator iter = professorShips.iterator();
    Teacher teacher = null;

    while (iter.hasNext()) {
      teacher = ((Professorship) iter.next()).getTeacher();
      infoTeachers.add(InfoTeacher.newInfoFromDomain(teacher));
    }

    return infoTeachers;
  }