private void createTagXML(Element element, TreeItemDecorator<TagEntity> tag) { Element tagElement = element.addElement("tag"); tagElement.addElement("name").setText(tag.getEntity().getName()); String title = tag.getEntity().getTitle(); if (StringUtils.isEmpty(title)) { title = tag.getEntity().getName(); } tagElement.addElement("title").setText(title); for (TreeItemDecorator<TagEntity> child : tag.getChildren()) { createTagXML(tagElement, child); } }
private List<TreeItemDecorator<TagEntity>> getTagTreeRoots() { List<TagEntity> tags = getDao().getTagDao().select(); Map<Long, TreeItemDecorator<TagEntity>> buf = new HashMap<Long, TreeItemDecorator<TagEntity>>(); for (TagEntity tag : tags) { buf.put(tag.getId(), new TreeItemDecorator<TagEntity>(tag, null)); } List<TreeItemDecorator<TagEntity>> roots = new ArrayList<TreeItemDecorator<TagEntity>>(); for (Long id : buf.keySet()) { TreeItemDecorator<TagEntity> tag = buf.get(id); if (tag.getEntity().getParent() == null) { roots.add(tag); } else { TreeItemDecorator<TagEntity> parent = buf.get(tag.getEntity().getParent()); if (parent != null) { parent.getChildren().add(tag); tag.setParent(parent); } } } return roots; }