infoSiteTeachersInformation.add(getTeacherInformation(teacher.getPerson().getUsername(), executionYear));
infoSiteTeachersInformation.add(getTeacherInformation(teacher, executionYear));
    public List run(Integer executionDegreeId, Boolean basic, String executionYearString) throws FenixServiceException, ExcepcaoPersistencia {        List professorships = null;        ExecutionYear executionYear = null;                if (executionYearString != null && !executionYearString.equals("")) {            executionYear = ExecutionYear.readExecutionYearByName(executionYearString);        } else {            executionYear = ExecutionYear.readCurrentExecutionYear();        }        if (executionDegreeId == null) {            List<ExecutionDegree> executionDegrees = ExecutionDegree.getAllByExecutionYear(executionYear.getYear());            List<DegreeCurricularPlan> degreeCurricularPlans = getDegreeCurricularPlans(executionDegrees);            ExecutionYear executionDegressExecutionYear = (!degreeCurricularPlans.isEmpty()) ? executionDegrees.get(0).getExecutionYear() : null;            if (basic == null) {                professorships = Professorship.readByDegreeCurricularPlansAndExecutionYear(degreeCurricularPlans, executionDegressExecutionYear);            } else {                professorships = Professorship.readByDegreeCurricularPlansAndExecutionYearAndBasic(degreeCurricularPlans,executionDegressExecutionYear, basic);            }        } else {            ExecutionDegree executionDegree = rootDomainObject.readExecutionDegreeByOID(executionDegreeId);            if (basic == null) {                professorships = Professorship.readByDegreeCurricularPlanAndExecutionYear(                        executionDegree.getDegreeCurricularPlan(), executionDegree.getExecutionYear());            } else {                professorships = Professorship.readByDegreeCurricularPlanAndExecutionYearAndBasic(                        executionDegree.getDegreeCurricularPlan(), executionDegree                                .getExecutionYear(), basic);            }        }        List<Teacher> teachers = (List<Teacher>) CollectionUtils.collect(professorships, new Transformer() {            public Object transform(Object o) {                return ((Professorship) o).getTeacher();            }        });        teachers = removeDuplicates(teachers);        List<InfoSiteTeacherInformation> infoSiteTeachersInformation = new ArrayList<InfoSiteTeacherInformation>();        for (Teacher teacher : teachers) {            infoSiteTeachersInformation.add(getTeacherInformation(teacher.getPerson().getUsername(), executionYear));        }        Collections.sort(infoSiteTeachersInformation, new Comparator() {            public int compare(Object o1, Object o2) {                InfoSiteTeacherInformation information1 = (InfoSiteTeacherInformation) o1;                InfoSiteTeacherInformation information2 = (InfoSiteTeacherInformation) o2;                return information1.getInfoTeacher().getInfoPerson().getNome().compareTo(information2.getInfoTeacher().getInfoPerson().getNome());            }        });        return infoSiteTeachersInformation;    }