infoClassesList.add(Cloner.copyClass2InfoClass(elem));
InfoClass infoClass = InfoClass.newInfoFromDomain(elem); infoClass.setInfoExecutionPeriod(infoExecutionPeriod); infoClassesList.add(infoClass);
    public List run(InfoExecutionDegree infoExecutionDegree, InfoExecutionPeriod infoExecutionPeriod,            Integer curricularYear) throws ExcepcaoPersistencia {        List classesList = null;        List infoClassesList = null;        ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();        ITurmaPersistente classDAO = sp.getITurmaPersistente();        IExecutionPeriod executionPeriod = Cloner                .copyInfoExecutionPeriod2IExecutionPeriod(infoExecutionPeriod);        IExecutionDegree executionDegree = Cloner                .copyInfoExecutionDegree2ExecutionDegree(infoExecutionDegree);        if (curricularYear != null) {            classesList = classDAO.readByExecutionPeriodAndCurricularYearAndExecutionDegree(                    executionPeriod, curricularYear, executionDegree);        } else {            classesList = classDAO.readByExecutionDegreeAndExecutionPeriod(executionDegree,                    executionPeriod);        }        Iterator iterator = classesList.iterator();        infoClassesList = new ArrayList();        while (iterator.hasNext()) {            ISchoolClass elem = (ISchoolClass) iterator.next();            infoClassesList.add(Cloner.copyClass2InfoClass(elem));        }        return infoClassesList;    }