List students = null;
IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) sp .getIPersistentDegreeCurricularPlan().readByOID(DegreeCurricularPlan.class, degreeCurricularPlanID);
    public List run(Integer degreeCurricularPlanID, DegreeType degreeType) throws ExcepcaoInexistente,            FenixServiceException {        ISuportePersistente sp = null;        List students = null;        try {            sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            // Read the Students            IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) sp                    .getIPersistentDegreeCurricularPlan().readByOID(DegreeCurricularPlan.class,                            degreeCurricularPlanID);            students = degreeCurricularPlan.getStudentCurricularPlans();        } catch (ExcepcaoPersistencia ex) {            throw new FenixServiceException("Persistence layer error", ex);        }        if ((students == null) || (students.size() == 0)) {            throw new NonExistingServiceException();        }        Iterator iterator = students.iterator();        List result = new ArrayList();        while (iterator.hasNext()) {            IStudentCurricularPlan studentCurricularPlan = (IStudentCurricularPlan) iterator.next();            result.add(Cloner                    .copyIStudentCurricularPlan2InfoStudentCurricularPlan(studentCurricularPlan));        }        return result;    }