/** * 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; }
/** * Visite en profondeur de l'arbre, il est possible d'arreter la visite * soit en entrant dans le noeud soit en sortant du noeud, si respectivement * visitEnter ou visitLeave retourne false. * * @param visitor */ public boolean acceptVisitor(Visitor<T> visitor) { if (visitor.visitEnter(this)) { for (Enumeration e = children(); e.hasMoreElements();) { TreeNodeResult<T> child = (TreeNodeResult<T>) e.nextElement(); if (!child.acceptVisitor(visitor)) { break; } } } boolean result = visitor.visitLeave(this); return result; }