List lessons = shift.getAssociatedLessons(); Iterator itLessons = lessons.iterator();
while (itShiftList.hasNext()) { IShift shift = (IShift) itShiftList.next();
    public List run(InfoExecutionCourse infoExecutionCourse) throws FenixServiceException {        List infoShiftList = new ArrayList();        List infoShiftAndLessons = new ArrayList();        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            IExecutionCourse executionCourse = Cloner                    .copyInfoExecutionCourse2ExecutionCourse(infoExecutionCourse);            infoShiftList = sp.getITurnoPersistente().readByExecutionCourse(executionCourse);            Iterator itShiftList = infoShiftList.iterator();            while (itShiftList.hasNext()) {                IShift shift = (IShift) itShiftList.next();                InfoShift infoTurno = (InfoShift) Cloner.get(shift);                List lessons = shift.getAssociatedLessons();                Iterator itLessons = lessons.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;    }