curricularCourses.add(Cloner .copyCurricularCourse2InfoCurricularCourse(curricularCourse));
curricularCourses.add(InfoCurricularCourseWithInfoDegree.newInfoFromDomain(curricularCourse));
    public List run(String username) throws BDException {        List curricularCourses = new LinkedList();        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            List curricularPlans = sp.getIStudentCurricularPlanPersistente().readByUsername(username);            for (Iterator iterator = curricularPlans.iterator(); iterator.hasNext();) {                IStudentCurricularPlan studentCurricularPlan = (IStudentCurricularPlan) iterator.next();                for (Iterator curricularCoursesIterator = studentCurricularPlan                        .getDegreeCurricularPlan().getCurricularCourses().iterator(); curricularCoursesIterator                        .hasNext();) {                    ICurricularCourse curricularCourse = (ICurricularCourse) curricularCoursesIterator                            .next();                    curricularCourses.add(Cloner                            .copyCurricularCourse2InfoCurricularCourse(curricularCourse));                }            }        } catch (ExcepcaoPersistencia ex) {            throw new BDException(                    "Got an error while trying to retrieve a student's curricular courses from the database",                    ex);        }        return curricularCourses;    }