public Questions getQuestions() { Questions faqs = new Questions(); QuestionManager qm = QuestionManagerProvider.getQuestionManager(); String appId = getSettings("home.faq.appId", ""); int nb = getSettings("home.faq.nb", 1); if (StringUtil.isDefined(appId)) { faqs.setAppId(appId); try { String[] profiles = getOrganisationController().getUserProfiles(getUserId(), appId); SilverpeasRole role = SilverpeasRole.getGreaterFrom(SilverpeasRole.from(profiles)); faqs.setCanAskAQuestion(role.isGreaterThanOrEquals(SilverpeasRole.writer)); List<Question> questions = (List<Question>) qm.getQuestions(appId); if (questions != null && !questions.isEmpty()) { if (nb > questions.size()) nb = questions.size(); if ("random".equalsIgnoreCase(getSettings("home.faq.display", "random")) && questions.size() > 1 && questions.size() > nb) { Random random = new Random(); int j = 0; while (j < nb) { int i = random.nextInt(questions.size() - 1); Question question = questions.get(i); boolean tryagain = false; for (Question q : faqs.getList()) { if (question.getPK().getId().equals(q.getPK().getId())) { tryagain = true; break; } } if (!tryagain) { faqs.add(question); j++; } } } else { for (int i = 0; i < nb; i++) { faqs.add(questions.get(i)); } } return faqs; } } catch (QuestionReplyException e) { SilverTrace.error( "lookAurora", "LookAuroraHelper.LookAuroraHelper", "root.MSG_GEN_PARAM_VALUE", e); } } return null; }