@Override public String toString() { return DependencyNodeUtil.prettyPrint(this).toString(); }
public static String prettyPrint(DependencyNode root, Predicate<DependencyNode> filter) { StringBuilder sb = new StringBuilder(); prettyPrint(root, filter, sb, 0); return sb.toString(); }
/** * Prints a tree-like structure for this object * * @param root * @return */ public static CharSequence prettyPrint(DependencyNode root) { StringBuilder sb = new StringBuilder(); prettyPrint(root, new Predicate<DependencyNode>() { @Override public boolean accept(DependencyNode node) { return true; } }, sb, 0); return sb; }
private static void prettyPrint(DependencyNode node, Predicate<DependencyNode> filter, StringBuilder builder, int depth) { if (filter.accept(node)) { for (int i = 0; i < depth; i++) { builder.append(" "); } if (depth > 0) { builder.append("|-"); } builder.append(node.getDependency()) .append(" (") .append(node.getDependency().getScopeType()) .append(")\n"); for (DependencyNode child : node.getChildren()) { prettyPrint(child, filter, builder, depth + 1); } } }