Site site = null;
ExecutionCourseSite site = null;
    public Object run(Integer executionCourseCode, Integer evaluationCode, HashMap hashMarks)            throws ExcepcaoInexistente, FenixServiceException, ExcepcaoPersistencia {        Site site = null;        Evaluation evaluation = null;        List<InfoMarkEditor> marksErrorsInvalidMark = null;        List attendList = null;        HashMap<String, String> newHashMarks = new HashMap<String, String>();        //Site    	final ExecutionCourse executionCourse = rootDomainObject.readExecutionCourseByOID(executionCourseCode);        site = executionCourse.getSite();        //Evaluation        evaluation = rootDomainObject.readEvaluationByOID(evaluationCode);        //Attend List        attendList = executionCourse.getAttends();        marksErrorsInvalidMark = new ArrayList<InfoMarkEditor>();        ListIterator iterAttends = attendList.listIterator();        while (iterAttends.hasNext()) {            Attends attend = (Attends) iterAttends.next();            String mark = (String) hashMarks.get(attend.getAluno().getNumber().toString());            hashMarks.remove(attend.getAluno().getNumber().toString());            if (mark != null && mark.length() > 0) {                if (!isValidMark(evaluation, mark, attend.getAluno())) {                    InfoMarkEditor infoMark = new InfoMarkEditor();                    infoMark.setMark(mark);                    infoMark.setInfoFrequenta(InfoFrequentaWithInfoStudentAndPerson                            .newInfoFromDomain(attend));                    marksErrorsInvalidMark.add(infoMark);                } else {                    newHashMarks.put(attend.getAluno().getNumber().toString(), mark);                    Mark domainMark = evaluation.getMarkByAttend(attend);                    //verify if the student has already a mark                    if (domainMark == null) {                        domainMark = new Mark();                        domainMark.setAttend(attend);                        domainMark.setEvaluation(evaluation);                        domainMark.setMark(mark.toUpperCase());                    } else {                        if (!domainMark.getMark().equals(mark)) {                            domainMark.setMark(mark.toUpperCase());                        }                    }                }            } else {                Mark domainMark = evaluation.getMarkByAttend(attend);                if (domainMark != null) {                	domainMark.delete();                }            }        }        return createSiteView(site, evaluation, newHashMarks, marksErrorsInvalidMark, attendList,                hashMarks);    }