List infoLessons = new ArrayList(); InfoLesson infoLesson;
infoExecutionCourse.setInfoExecutionPeriod(infoExecutionPeriod);
    public Object run(String className, InfoExecutionDegree infoExecutionDegree,            InfoExecutionPeriod infoExecutionPeriod) throws FenixServiceException {        List infoShiftAndLessons = new ArrayList();        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            ITurmaTurnoPersistente classShiftDAO = sp.getITurmaTurnoPersistente();            IExecutionPeriod executionPeriod = Cloner                    .copyInfoExecutionPeriod2IExecutionPeriod(infoExecutionPeriod);            IExecutionDegree executionDegree = Cloner                    .copyInfoExecutionDegree2ExecutionDegree(infoExecutionDegree);            ISchoolClass group = new SchoolClass();            group.setExecutionDegree(executionDegree);            group.setExecutionPeriod(executionPeriod);            group.setNome(className);            List shiftList = classShiftDAO.readByClass(group);            Iterator iterator = shiftList.iterator();            //			infoTurnos = new ArrayList();            while (iterator.hasNext()) {                IShift turno = (IShift) iterator.next();                InfoShift infoTurno = (InfoShift) Cloner.get(turno);                List aulas = turno.getAssociatedLessons();                Iterator itLessons = aulas.iterator();                List infoLessons = new ArrayList();                InfoLesson infoLesson;                while (itLessons.hasNext()) {                    infoLesson = Cloner.copyILesson2InfoLesson((ILesson) itLessons.next());                    infoLesson.setInfoShift(infoTurno);                    infoLessons.add(infoLesson);                }                infoTurno.setInfoLessons(infoLessons);                infoShiftAndLessons.add(infoTurno);            }        } catch (ExcepcaoPersistencia ex) {            throw new FenixServiceException(ex);        }        return infoShiftAndLessons;    }