InfoCandidateSituation infoCandidateSituation = Cloner
final InfoCandidateSituation infoCandidateSituation = Cloner
    public List run(String degreeName, Specialization degreeType, SituationName candidateSituation,            Integer candidateNumber, String executionYearString) throws FenixServiceException {        ISuportePersistente sp = null;        List result = null;        try {            sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            // Get the Actual Execution Year            IExecutionYear executionYear = null;            executionYear = sp.getIPersistentExecutionYear()                    .readExecutionYearByName(executionYearString);            // Read the candidates            result = sp.getIPersistentMasterDegreeCandidate().readCandidateList(degreeName, degreeType,                    candidateSituation, candidateNumber, executionYear);        } catch (ExcepcaoPersistencia ex) {            FenixServiceException newEx = new FenixServiceException("Persistence layer error");            newEx.fillInStackTrace();            throw newEx;        }        List candidateList = new ArrayList();        Iterator iterator = result.iterator();        while (iterator.hasNext()) {            IMasterDegreeCandidate masterDegreeCandidate = (IMasterDegreeCandidate) iterator.next();            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);            candidateList.add(infoMasterDegreeCandidate);        }        return candidateList;    }