List lessonList = shift.getAssociatedLessons(); Iterator lessonIterator = lessonList.iterator(); while (lessonIterator.hasNext()) { ILesson elem = (ILesson) lessonIterator.next();      InfoLesson infoLesson = Cloner.copyILesson2InfoLesson(elem);
final InfoShift infoShift = InfoShift.newInfoFromDomain(shift);
    public List run(InfoClass infoClass) throws ExcepcaoPersistencia {        ArrayList infoLessonList = null;        ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();        ITurmaPersistente persistentDomainClass = sp.getITurmaPersistente();        ISchoolClass group = null;        if (infoClass.getIdInternal() != null) {            group = (ISchoolClass) persistentDomainClass.readByOID(SchoolClass.class, infoClass.getIdInternal());        } else {            group = Cloner.copyInfoClass2Class(infoClass);        }        List shiftList = sp.getITurmaTurnoPersistente().readByClass(group);        Iterator iterator = shiftList.iterator();        infoLessonList = new ArrayList();        while (iterator.hasNext()) {            IShift shift = (IShift) iterator.next();            List lessonList = shift.getAssociatedLessons();            Iterator lessonIterator = lessonList.iterator();            while (lessonIterator.hasNext()) {                ILesson elem = (ILesson) lessonIterator.next();                // ILesson lesson = (ILesson)                // sp.getIAulaPersistente().readByOID(                // Lesson.class, elem.getIdInternal());                // InfoLesson infoLesson =                // Cloner.copyILesson2InfoLesson(elem);                InfoLesson infoLesson = Cloner.copyILesson2InfoLesson(elem);                InfoShift infoShift = InfoShift.newInfoFromDomain(shift);                infoLesson.setInfoShift(infoShift);                if (infoLesson != null) {                    infoLessonList.add(infoLesson);                }            }        }        return infoLessonList;    }