for (final Shift shift : shifts) {
final List<ExecutionCourse> executionCourses = executionPeriod.getExecutionCoursesByDegreeCurricularPlanAndSemesterAndCurricularYearAndName(degreeCurricularPlan, infoExecutionPeriod.getSemester(), curricularYear, "%"); for (final ExecutionCourse executionCourse : executionCourses) { for (final Shift shift : executionCourse.getAssociatedShiftsSet()) {
    public Object run(InfoExecutionPeriod infoExecutionPeriod, InfoExecutionDegree infoExecutionDegree,            InfoCurricularYear infoCurricularYear) throws ExcepcaoPersistencia {        final ExecutionPeriod executionPeriod = rootDomainObject.readExecutionPeriodByOID(infoExecutionPeriod.getIdInternal());        final ExecutionDegree executionDegree = rootDomainObject.readExecutionDegreeByOID(infoExecutionDegree.getIdInternal());        final CurricularYear curricularYear = rootDomainObject.readCurricularYearByOID(infoCurricularYear.getIdInternal());        final Set<Shift> shifts = executionDegree.findAvailableShifts(curricularYear, executionPeriod);        final List infoShifts = new ArrayList();        for (final Shift shift : shifts) {        	final InfoShift infoShift = new InfoShift();            infoShift.setAvailabilityFinal(shift.getAvailabilityFinal());            infoShift.setIdInternal(shift.getIdInternal());            infoShift.setLotacao(shift.getLotacao());            infoShift.setNome(shift.getNome());            infoShift.setTipo(shift.getTipo());            infoShift.setInfoLessons(new ArrayList());            final InfoExecutionCourse infoExecutionCourse = InfoExecutionCourse.newInfoFromDomain((shift).getDisciplinaExecucao());            infoShift.setInfoDisciplinaExecucao(infoExecutionCourse);            for (final Lesson lesson : shift.getAssociatedLessons()) {            	final InfoLesson infoLesson = new InfoLesson();            	final InfoRoom infoRoom = InfoRoom.newInfoFromDomain(lesson.getSala());            	final InfoRoomOccupation infoRoomOccupation = InfoRoomOccupation.newInfoFromDomain(lesson                        .getRoomOccupation());                infoLesson.setDiaSemana(lesson.getDiaSemana());                infoLesson.setFim(lesson.getFim());                infoLesson.setIdInternal(lesson.getIdInternal());                infoLesson.setInicio(lesson.getInicio());                infoLesson.setTipo(lesson.getTipo());                infoLesson.setInfoSala(infoRoom);                infoLesson.setInfoRoomOccupation(infoRoomOccupation);                infoLesson.setInfoShift(infoShift);                infoShift.getInfoLessons().add(infoLesson);            }            infoShifts.add(infoShift);        }        return infoShifts;    }