/** * Méthode en charge de construire la liste des items pour un thème du modèle. Il s'agit de * construire un item par catégorie et par thème/catégorie. * * @param grille La grille. * @param theme Le thème. * @return La liste des items correspondants aux catégories. */ private Collection<Item> buildItems(final Grille grille, final Theme theme) { final SortedSet<Item> items = new TreeSet<Item>(new ItemComparator()); // Gestion des thèmes qui sont aussi des catégories if (BooleanUtils.isTrue(theme.isCategorie())) { items.add(this.buildItem(grille, theme, null)); } // gestion des catégories. for (final Categorie categorie : theme.getCategories()) { items.add(this.buildItem(grille, theme, categorie)); } return items; }
/** * Méthode en charge de constuire un item à partir d'un thème, d'une grille et d'une catégorie. * * @param theme Le thème * @param grille La grille * @param La catégorie * @return L'item. */ private Item buildItem(final Grille grille, final Theme theme, final Categorie categorie) { final Item item = this.itemFactory.getInitializedObject(); item.setTheme(theme.getNom()); item.setGrille(grille); if (categorie != null) { item.setCategorie(categorie.getLibelle()); item.setActe(categorie.getActe()); item.getRegles().addAll(categorie.getRegles()); for (final Regle regle : item.getRegles()) { regle.getItems().add(item); } } // Cas d'un thème qui est aussi une catégorie. else if (theme.isCategorie()) { item.getRegles().addAll(theme.getRegles()); for (final Regle regle : item.getRegles()) { regle.getItems().add(item); } } return item; }