examStartTime.set(Calendar.SECOND, 0);
    public List<SelectItem> getRoomsSelectItems() throws FenixFilterException, FenixServiceException {        Calendar examDate = Calendar.getInstance();        examDate.set(Calendar.YEAR, getYear());        examDate.set(Calendar.MONTH, getMonth() - 1);        examDate.set(Calendar.DAY_OF_MONTH, getDay());        DiaSemana dayOfWeek = new DiaSemana(examDate.get(Calendar.DAY_OF_WEEK));        Calendar examStartTime = Calendar.getInstance();        examStartTime.set(Calendar.HOUR_OF_DAY, getBeginHour());        examStartTime.set(Calendar.MINUTE, getBeginMinute());        Calendar examEndTime = Calendar.getInstance();        examEndTime.set(Calendar.HOUR_OF_DAY, getEndHour());        examEndTime.set(Calendar.MINUTE, getEndMinute());        Object args[] = { examDate, examDate, examStartTime, examEndTime, dayOfWeek, null, null,                Integer.valueOf(RoomOccupation.DIARIA), null, Boolean.FALSE };        List<InfoRoom> availableInfoRoom = (List<InfoRoom>) ServiceUtils.executeService(this                .getUserView(), "ReadAvailableRoomsForExam", args);        if (this.getEvaluationID() != null) {            for (IRoom room : ((IWrittenEvaluation)this.getEvaluation()).getAssociatedRooms()) {                InfoRoom associatedRoom = InfoRoom.newInfoFromDomain(room);                if (!availableInfoRoom.contains(associatedRoom)) {                    availableInfoRoom.add(associatedRoom);                }            }        }                if (this.getOrderCriteria() == 0) {            final ComparatorChain comparatorChain = new ComparatorChain();            comparatorChain.addComparator(new ReverseComparator(new BeanComparator(                    "capacidadeExame")));            comparatorChain.addComparator(new BeanComparator("nome"));                       Collections.sort(availableInfoRoom, comparatorChain);        } else if (this.getOrderCriteria() == 1) {            final ComparatorChain comparatorChain = new ComparatorChain();            comparatorChain.addComparator(new ReverseComparator(new BeanComparator(                    "edificio")));            comparatorChain.addComparator(new BeanComparator("nome"));                       Collections.sort(availableInfoRoom, comparatorChain);        } else if (this.getOrderCriteria() == 2) {            final ComparatorChain comparatorChain = new ComparatorChain();            comparatorChain.addComparator(new ReverseComparator(new BeanComparator(                    "tipo")));            comparatorChain.addComparator(new BeanComparator("nome"));                       Collections.sort(availableInfoRoom, comparatorChain);        }                List<SelectItem> items = new ArrayList<SelectItem>(availableInfoRoom.size());        for (InfoRoom infoRoom : (List<InfoRoom>) availableInfoRoom) {            StringBuffer label = new StringBuffer();            label.append(infoRoom.getNome());            label.append("  ( ");            label.append(infoRoom.getCapacidadeExame());            label.append(" ");            label.append(this.labelVacancies);            label.append(", ");            label.append(infoRoom.getEdificio());            label.append(", ");            label.append(getRoomType(infoRoom.getTipo()));            label.append(" )");            items.add(new SelectItem(infoRoom.getIdInternal(), label.toString()));        }        return items;    }