infoStudentCurricularPlanList.add(Cloner .copyIStudentCurricularPlan2InfoStudentCurricularPlan(studentCurricularPlan));
infoStudentCurricularPlanList .add(InfoStudentCurricularPlanWithInfoStudentWithPersonAndDegree .newInfoFromDomain(studentCurricularPlan));
    public List run(InfoStudent infoStudent, Specialization specialization) throws Exception {        List studentCurricularPlanList = null;        List infoStudentCurricularPlanList = new ArrayList();        ISuportePersistente sp = null;        sp = PersistenceSupportFactory.getDefaultPersistenceSupport();        try {            studentCurricularPlanList = sp.getIStudentCurricularPlanPersistente()                    .readAllByStudentNumberAndSpecialization(infoStudent.getNumber(),                            infoStudent.getDegreeType(), specialization);        } catch (ExistingPersistentException ex) {            throw new ExistingServiceException(ex);        } catch (ExcepcaoPersistencia ex) {            FenixServiceException newEx = new FenixServiceException("Persistence layer error", ex);            throw newEx;        }        if (studentCurricularPlanList == null || studentCurricularPlanList.isEmpty()) {            return null;        }        for (Iterator iter = studentCurricularPlanList.iterator(); iter.hasNext();) {            IStudentCurricularPlan studentCurricularPlan = (IStudentCurricularPlan) iter.next();            if (studentCurricularPlan != null || studentCurricularPlan.getIdInternal() != null) {                infoStudentCurricularPlanList.add(Cloner                        .copyIStudentCurricularPlan2InfoStudentCurricularPlan(studentCurricularPlan));            }        }        return infoStudentCurricularPlanList;    }