@Override public boolean visitEnter(TreeNodeResult<String> node) { String id = node.getObject(); ids.add(id); return true; }
/** * Return TreeNodeResult where object in TreeNodeResult equals child in * parameter * @param child * @return */ public TreeNodeResult<T> getChild(T child) { TreeNodeResult<T> result = null; if (child != null) { for (Enumeration e = children(); e.hasMoreElements();) { TreeNodeResult<T> r = (TreeNodeResult<T>) e.nextElement(); if (child.equals(r.getObject())) { result = r; break; } } } return result; }
/** * Restore node with wikittyId passed in argument and count of attachment * in subtree begin with this node * * @param <E> * @param clazz * @param wikittyId * @param filter * @return * @deprecated since 3.1: use {@link #findTreeNode(java.lang.Class, java.lang.String, int, boolean, org.nuiton.wikitty.search.Criteria)} or open new ticket with your need */ @Deprecated public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode( Class<E> clazz, String wikittyId, Criteria filter) { long start = TimeLog.getTime(); TreeNodeResult<E> tree = findTreeNode(clazz, wikittyId, 0, true, filter); Map.Entry<E, Integer> result = new SimpleEntry<E, Integer>( tree.getObject(), tree.getAttCount()); timeLog.log(start, "restoreNode"); return result; }
/** * Return only children of wikittyId passed in argument * * @param clazz * @param wikittyId * @param filter * @return * * @deprecated since 3.1: use {@link #findTreeNode(java.lang.Class, java.lang.String, int, boolean, org.nuiton.wikitty.search.Criteria) } or open new ticket with your need */ @Deprecated public <E extends BusinessEntity> Map<E, Integer> findTreeNode( Class<E> clazz, String wikittyId, Criteria filter) { long start = TimeLog.getTime(); TreeNodeResult<E> tree = findTreeNode(clazz, wikittyId, 1, true, filter); Map<E, Integer> result = new LinkedHashMap<E, Integer>(); for (TreeNodeResult<E> child : tree.getChildren()) { result.put(child.getObject(), child.getAttCount()); } timeLog.log(start, "findTreeNode"); return result; }
@Override public boolean visitEnter(TreeNodeResult<String> node) { String id = node.getObject(); int count = node.getAttCount(); TARGET object = converter.convert(id); TreeNodeResult<TARGET> newNode = new TreeNodeResult<TARGET>( object, count); TreeNodeResult<TARGET> parent = stack.peekLast(); if (parent == null) { // le premier noeud, donc le root a retourner plus tard tree = newNode; } else { parent.add(newNode); } stack.offerLast(newNode); return true; }