final IExecutionDegree executionDegree = masterDegreeCandidate.getExecutionDegree(); final InfoExecutionDegree infoExecutionDegree = InfoExecutionDegreeWithInfoExecutionYearAndDegreeCurricularPlan.newInfoFromDomain(executionDegree); infoMasterDegreeCandidate.setInfoExecutionDegree(infoExecutionDegree);
    public InfoMasterDegreeCandidate run(Integer candidateID) throws FenixServiceException {        ISuportePersistente sp = null;        IMasterDegreeCandidate masterDegreeCandidate = null;        if (candidateID == null) {            throw new NonExistingServiceException();        }        try {            sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            masterDegreeCandidate = (IMasterDegreeCandidate) sp.getIPersistentMasterDegreeCandidate()                    .readByOID(MasterDegreeCandidate.class, candidateID);        } catch (ExcepcaoPersistencia ex) {            FenixServiceException newEx = new FenixServiceException("Persistence layer error", ex);            throw newEx;        }        InfoMasterDegreeCandidate infoMasterDegreeCandidate = InfoMasterDegreeCandidateWithInfoPerson                .newInfoFromDomain(masterDegreeCandidate);        Iterator situationIterator = masterDegreeCandidate.getSituations().iterator();        List situations = new ArrayList();        while (situationIterator.hasNext()) {            InfoCandidateSituation infoCandidateSituation = Cloner                    .copyICandidateSituation2InfoCandidateSituation((ICandidateSituation) situationIterator                            .next());            situations.add(infoCandidateSituation);            // Check if this is the Active Situation            if (infoCandidateSituation.getValidation().equals(new State(State.ACTIVE))) {                infoMasterDegreeCandidate.setInfoCandidateSituation(infoCandidateSituation);            }        }        infoMasterDegreeCandidate.setSituationList(situations);        return infoMasterDegreeCandidate;    }