ICurricularCourse curricularCourse = (CurricularCourse) persistentCurricularCourse
ICurricularCourse curricularCourse = (ICurricularCourse) persistentCurricularCourse
    public InfoCurriculumHistoricReport run(Integer curricularCourseID, Integer semester,            Integer executionYearID) throws FenixServiceException {        try {            ISuportePersistente suportePersistente = PersistenceSupportFactory.getDefaultPersistenceSupport();            //read ExecutionYear            IPersistentExecutionYear persistentExecutionYear = suportePersistente                    .getIPersistentExecutionYear();            IExecutionYear executionYear = (IExecutionYear) persistentExecutionYear.readByOID(                    ExecutionYear.class, executionYearID, false);            //read ExecutionPeriod            IPersistentExecutionPeriod persistentExecutionPeriod = suportePersistente                    .getIPersistentExecutionPeriod();            IExecutionPeriod executionPeriod = persistentExecutionPeriod.readBySemesterAndExecutionYear(                    semester, executionYear.getYear());            //read CurricularCourse            IPersistentCurricularCourse persistentCurricularCourse = suportePersistente                    .getIPersistentCurricularCourse();            ICurricularCourse curricularCourse = (CurricularCourse) persistentCurricularCourse                    .readByOID(CurricularCourse.class, curricularCourseID);            //read all enrollments            IPersistentEnrollment persistentEnrollment = suportePersistente.getIPersistentEnrolment();            List enrollments = persistentEnrollment.readByCurricularCourseAndExecutionPeriod(                    curricularCourse.getIdInternal(), executionPeriod.getIdInternal());            InfoCurriculumHistoricReport infoCurriculumHistoricReport = createInfoCurriculumHistoricReport(enrollments);            infoCurriculumHistoricReport.setSemester(semester);            InfoCurricularCourse infoCurricularCourse = InfoCurricularCourseWithInfoDegree                    .newInfoFromDomain(curricularCourse);            infoCurriculumHistoricReport.setInfoCurricularCourse(infoCurricularCourse);            InfoExecutionYear infoExecutionYear = InfoExecutionYear.newInfoFromDomain(executionYear);            infoCurriculumHistoricReport.setInfoExecutionYear(infoExecutionYear);            return infoCurriculumHistoricReport;        } catch (ExcepcaoPersistencia ep) {            throw new FenixServiceException(ep);        }    }