public static PollModel loadQuestionary(String name) throws Exception { PollModel pollModel = new PollModel(); PollDAOFactory daoFactory = PollDAOFactory.getInstance(); PollIndexDAO indexDAO = daoFactory.getPollIndexDAO(); PollQuestionDAO questionDAO = daoFactory.getPollQuestionDAO(); PollOptionDAO optionDAO = daoFactory.getPollOptionDAO(); // carico il questionario PollIndexModel indexModel = indexDAO.loadOneByName(name); pollModel.setPollIndexModel(indexModel); List<PollQuestionModel> listQuestion = questionDAO.loadAllByIndex(indexModel.getIdPollIndex()); indexModel.setListPollQuestion(listQuestion); Iterator<PollQuestionModel> itQuestion = listQuestion.iterator(); while (itQuestion.hasNext()) { PollQuestionModel questionModel = itQuestion.next(); List<PollOptionModel> listOption = optionDAO.loadAllByQuestion(questionModel.getIdPollQuestion()); Iterator<PollOptionModel> itOption = listOption.iterator(); questionModel.setListPollOption(listOption); pollModel.populateOptionMap(questionModel); while (itOption.hasNext()) { PollOptionModel optionModel = itOption.next(); if (optionModel.getIdPollOptionParent() != null && optionModel.getIdPollOptionParent().longValue() != 0 && optionModel.getIdPollOptionParent().longValue() != optionModel.getIdPollOption().longValue()) { itOption.remove(); PollOptionModel optionParentMadel = pollModel.getOptionMap().get(optionModel.getIdPollOptionParent().toString()); List<PollOptionModel> kids = optionParentMadel.getListPollOptionKids(); if (kids == null) { kids = new ArrayList<PollOptionModel>(); optionParentMadel.setListPollOptionKids(kids); } kids.add(optionModel); } } } return pollModel; }