return Cloner.copyIExam2InfoExam(exam);
return InfoExam.newInfoFromDomain(exam);
    public InfoExam run(InfoExam infoExam, final List roomsForExam) throws FenixServiceException {        ServiceSetUp();        List finalRoomList = new ArrayList();        CollectionUtils.collect(roomsForExam, TRANSFORM_ROOMID_TO_ROOM, finalRoomList);        try {            final IExam exam = (IExam) persistentRoom                    .readByOID(Exam.class, infoExam.getIdInternal(), true);            if (exam == null) {                throw new NonExistingServiceException();            }            persistentExam.simpleLockWrite(exam);            // Remove all elements            // TODO : Do this more intelegently.            exam.getAssociatedRooms().clear();            // Add all elements            CollectionUtils.forAllDo(finalRoomList, new Closure() {                public void execute(Object objRoom) {                    exam.getAssociatedRooms().add(objRoom);                }            });            return Cloner.copyIExam2InfoExam(exam);        } catch (ExcepcaoPersistencia e) {            throw new FenixServiceException(e);        }    }