List executionDegrees = executionDegreeDAO.readByExecutionYearAndDegreeType(executionYear.getIdInternal(),
List executionDegrees = executionDegreeDAO.readByExecutionYearAndDegreeType(executionYear.getYear(),
    public List run(InfoExecutionPeriod infoExecutionPeriod) {        List infoViewAllExamsList = new ArrayList();        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            IPersistentExecutionDegree executionDegreeDAO = sp.getIPersistentExecutionDegree();            IExecutionPeriod executionPeriod = Cloner                    .copyInfoExecutionPeriod2IExecutionPeriod(infoExecutionPeriod);            IExecutionYear executionYear = executionPeriod.getExecutionYear();            List executionDegrees = executionDegreeDAO.readByExecutionYearAndDegreeType(executionYear.getIdInternal(),                    DegreeType.DEGREE);            for (int k = 0; k < executionDegrees.size(); k++) {                IExecutionDegree executionDegree = (IExecutionDegree) executionDegrees.get(k);                InfoExecutionDegree infoExecutionDegree = InfoExecutionDegree.newInfoFromDomain(executionDegree);                for (int curricularYear = 1; curricularYear <= 5; curricularYear++) {                    InfoViewAllExams infoViewAllExams = new InfoViewAllExams(infoExecutionDegree,                            new Integer(curricularYear), null);                    List infoExecutionCourseAndExamsList = new ArrayList();                    List executionCourses = sp.getIPersistentExecutionCourse()                            .readByCurricularYearAndExecutionPeriodAndExecutionDegree(                                    new Integer(curricularYear), executionPeriod, executionDegree);                    for (int i = 0; i < executionCourses.size(); i++) {                        IExecutionCourse executionCourse = (IExecutionCourse) executionCourses.get(i);                        InfoExecutionCourseAndExams infoExecutionCourseAndExams = new InfoExecutionCourseAndExams();                        infoExecutionCourseAndExams.setInfoExecutionCourse((InfoExecutionCourse) Cloner                                .get(executionCourse));                        for (int j = 0; j < executionCourse.getAssociatedExams().size(); j++) {                            IEvaluation evaluation = (IEvaluation) executionCourse.getAssociatedExams()                                    .get(j);                            if (evaluation instanceof IExam) {                                IExam exam = (IExam) evaluation;                                if (exam.getSeason().getseason().intValue() == Season.SEASON1) {                                    infoExecutionCourseAndExams.setInfoExam1(Cloner                                            .copyIExam2InfoExam(exam));                                } else if (exam.getSeason().getseason().intValue() == Season.SEASON2) {                                    infoExecutionCourseAndExams.setInfoExam2(Cloner                                            .copyIExam2InfoExam(exam));                                }                            }                        }                        // Number of students attending execution course.                        // TODO : In this context should we realy count the                        // number of                        //        students attending the course or just the ones from                        //        the indicated degree????                        infoExecutionCourseAndExams.setNumberStudentesAttendingCourse(sp                                .getIFrequentaPersistente().countStudentsAttendingExecutionCourse(                                        executionCourse));                        infoExecutionCourseAndExamsList.add(infoExecutionCourseAndExams);                    }                    if (infoExecutionCourseAndExamsList != null                            && infoExecutionCourseAndExamsList.isEmpty()) {                        infoViewAllExams.setInfoExecutionCourseAndExamsList(null);                    } else {                        infoViewAllExams                                .setInfoExecutionCourseAndExamsList(infoExecutionCourseAndExamsList);                    }                    infoViewAllExamsList.add(infoViewAllExams);                }            }        } catch (ExcepcaoPersistencia ex) {            ex.printStackTrace();        }        return infoViewAllExamsList;    }