/* * ReadExamsMap.java Created on 2003/04/02 */ package net.sourceforge.fenixedu.applicationTier.Servico.resourceAllocationManager; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import net.sourceforge.fenixedu.applicationTier.FenixService; import net.sourceforge.fenixedu.dataTransferObject.InfoExamsMap; import net.sourceforge.fenixedu.dataTransferObject.InfoExecutionCourse; import net.sourceforge.fenixedu.dataTransferObject.InfoExecutionDegree; import net.sourceforge.fenixedu.dataTransferObject.InfoExecutionPeriod; import net.sourceforge.fenixedu.domain.DegreeCurricularPlan; import net.sourceforge.fenixedu.domain.ExecutionCourse; import net.sourceforge.fenixedu.domain.ExecutionSemester; import pt.ist.fenixWebFramework.services.Service; public class ReadExamsMap extends FenixService { @Service public static InfoExamsMap run(InfoExecutionDegree infoExecutionDegree, List curricularYears, InfoExecutionPeriod infoExecutionPeriod) { // Object to be returned InfoExamsMap infoExamsMap = new InfoExamsMap(); // Set Execution Degree infoExamsMap.setInfoExecutionDegree(infoExecutionDegree); // Set List of Curricular Years infoExamsMap.setCurricularYears(curricularYears); // Exam seasons hardcoded because this information // is not yet available from the database Calendar startSeason1 = Calendar.getInstance(); startSeason1.set(Calendar.YEAR, 2005); startSeason1.set(Calendar.MONTH, Calendar.JANUARY); startSeason1.set(Calendar.DAY_OF_MONTH, 3); startSeason1.set(Calendar.HOUR_OF_DAY, 0); startSeason1.set(Calendar.MINUTE, 0); startSeason1.set(Calendar.SECOND, 0); startSeason1.set(Calendar.MILLISECOND, 0); Calendar endSeason2 = Calendar.getInstance(); endSeason2.set(Calendar.YEAR, 2005); endSeason2.set(Calendar.MONTH, Calendar.FEBRUARY); endSeason2.set(Calendar.DAY_OF_MONTH, 12); endSeason2.set(Calendar.HOUR_OF_DAY, 0); endSeason2.set(Calendar.MINUTE, 0); endSeason2.set(Calendar.SECOND, 0); endSeason2.set(Calendar.MILLISECOND, 0); // Set Exam Season info infoExamsMap.setStartSeason1(startSeason1); infoExamsMap.setEndSeason1(null); infoExamsMap.setStartSeason2(null); infoExamsMap.setEndSeason2(endSeason2); // List of execution courses List infoExecutionCourses = new ArrayList(); DegreeCurricularPlan degreeCurricularPlan = DegreeCurricularPlan.readByNameAndDegreeSigla(infoExecutionDegree .getInfoDegreeCurricularPlan().getName(), infoExecutionDegree.getInfoDegreeCurricularPlan().getInfoDegree() .getSigla()); if (degreeCurricularPlan != null) { ExecutionSemester executionSemester = rootDomainObject .readExecutionSemesterByOID(infoExecutionPeriod.getIdInternal()); // Obtain execution courses and associated information // of the given execution degree for each curricular year // persistentSupportecified for (int i = 0; i < curricularYears.size(); i++) { // Obtain list os execution courses List executionCourses = degreeCurricularPlan .getExecutionCoursesByExecutionPeriodAndSemesterAndYear(executionSemester, (Integer) curricularYears .get(i), infoExecutionPeriod.getSemester()); // For each execution course obtain curricular courses and // exams for (int j = 0; j < executionCourses.size(); j++) { InfoExecutionCourse infoExecutionCourse = InfoExecutionCourse .newInfoFromDomain((ExecutionCourse) executionCourses.get(j)); infoExecutionCourse.setCurricularYear((Integer) curricularYears.get(i)); infoExecutionCourses.add(infoExecutionCourse); } } } infoExamsMap.setExecutionCourses(infoExecutionCourses); return infoExamsMap; } }