if (evaluation instanceof Proxy) { evaluation = (IEvaluation) ProxyHelper.getRealObject(evaluation); }
    private ISiteComponent getInfoSiteEvaluation(InfoSiteEvaluation component, ISite site) {        IExecutionCourse executionCourse = site.getExecutionCourse();        List evaluations = executionCourse.getAssociatedEvaluations();        Iterator iter = evaluations.iterator();        // boolean hasFinalEvaluation = false;        List infoEvaluations = new ArrayList();        List infoFinalEvaluations = new ArrayList();        List infoOnlineTests = new ArrayList();        while (iter.hasNext()) {            IEvaluation evaluation = (IEvaluation) iter.next();            if (evaluation instanceof IExam) {                infoEvaluations.add(InfoEvaluation.newInfoFromDomain(evaluation));            } else if (evaluation instanceof IFinalEvaluation) {                infoFinalEvaluations.add(InfoEvaluation.newInfoFromDomain(evaluation));            } else if (evaluation instanceof IOnlineTest) {                infoOnlineTests.add(InfoEvaluation.newInfoFromDomain(evaluation));            }        }        ComparatorChain comparatorChain = new ComparatorChain();        comparatorChain.addComparator(new BeanComparator("day.time"));        comparatorChain.addComparator(new BeanComparator("beginning.time"));        Collections.sort(infoEvaluations, comparatorChain);        // merge lists        infoEvaluations.addAll(infoOnlineTests);        infoEvaluations.addAll(infoFinalEvaluations);        component.setInfoEvaluations(infoEvaluations);        return component;    }