final InfoDegree infoDegree = InfoDegree.newInfoFromDomain(degree);
final InfoDegree infoDegree = InfoDegreeWithInfoDegreeCurricularPlansAndInfoDegreeInfos.newInfoFromDomain(degree);
    public List run(String executionYearString) throws FenixServiceException, ExcepcaoPersistencia {        final ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();        // Get the Actual Execution Year        final IExecutionYear executionYear;        if (executionYearString != null) {            executionYear = sp.getIPersistentExecutionYear()                    .readExecutionYearByName(executionYearString);        } else {            IPersistentExecutionYear executionYearDAO = sp.getIPersistentExecutionYear();            executionYear = executionYearDAO.readCurrentExecutionYear();        }        // Read the degrees        final List result = sp.getIPersistentExecutionDegree().readMasterDegrees(executionYear.getYear());        if (result == null || result.size() == 0) {            throw new NonExistingServiceException();        }        final List degrees = new ArrayList(result.size());        for (final Iterator iterator = result.iterator(); iterator.hasNext(); ) {            final IExecutionDegree executionDegree = (IExecutionDegree) iterator.next();            final InfoExecutionDegree infoExecutionDegree = InfoExecutionDegree                    .newInfoFromDomain(executionDegree);            final IDegreeCurricularPlan degreeCurricularPlan = executionDegree.getDegreeCurricularPlan();            final InfoDegreeCurricularPlan infoDegreeCurricularPlan = InfoDegreeCurricularPlan.newInfoFromDomain(degreeCurricularPlan);            infoExecutionDegree.setInfoDegreeCurricularPlan(infoDegreeCurricularPlan);            final IDegree degree = degreeCurricularPlan.getDegree();            final InfoDegree infoDegree = InfoDegree.newInfoFromDomain(degree);            infoDegreeCurricularPlan.setInfoDegree(infoDegree);            degrees.add(infoExecutionDegree);        }        return degrees;    }