infoPerson.copyToDomain(infoPerson,person);
    public InfoMasterDegreeCandidate run(InfoExecutionDegree infoExecutionDegree, InfoPerson infoPerson,            Integer number) throws FenixServiceException {        ISuportePersistente sp = null;        IMasterDegreeCandidate result = null;        try {            sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            // Read the candidates            IPerson person = (IPerson) sp.getIPessoaPersistente().readByOID(Person.class,infoPerson.getIdInternal());            infoPerson.copyToDomain(infoPerson,person);            result = sp.getIPersistentMasterDegreeCandidate().readByExecutionDegreeAndPersonAndNumber(                    infoExecutionDegree.getIdInternal(), person.getIdInternal(), number);        } catch (ExcepcaoPersistencia ex) {            FenixServiceException newEx = new FenixServiceException("Persistence layer error");            newEx.fillInStackTrace();            throw newEx;        }        InfoMasterDegreeCandidate infoMasterDegreeCandidate = InfoMasterDegreeCandidateWithInfoPerson                .newInfoFromDomain(result);        Iterator situationIterator = result.getSituations().iterator();        List situations = new ArrayList();        while (situationIterator.hasNext()) {            InfoCandidateSituation infoCandidateSituation = InfoCandidateSituation.newInfoFromDomain((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;    }