// ------------------------------------------------------------------------ // dumpTree private void DumpTree(StreamWriter output, TreeNode node, int indent, DumpConfiguration dumpConfiguration) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < indent; i++) { sb.Append(dumpConfiguration.Indent); } if (dumpConfiguration.IncludeObjectToString) { sb.Append("[") .Append(node.GetType().Name) .Append("@") .Append(node.GetHashCode().ToString("X")) .Append("]"); } sb.Append(StringUtililities.Quote(node?.ToString())); if (dumpConfiguration.IncludeNodeSize) { sb.Append(" (size: ") .Append(NodeWidth(node)) .Append("x") .Append(NodeHeight(node)) .Append(")"); } output.WriteLine(sb); foreach (TreeNode n in Tree.Children(node)) { DumpTree(output, n, indent + 1, dumpConfiguration); } }
/** * Prints a dump of the tree to the given printStream, using the node's * "toString" method. * * @param printStream * @param dumpConfiguration * [default: new DumpConfiguration()] */ public void DumpTree(StreamWriter printStream, DumpConfiguration dumpConfiguration) => DumpTree(printStream, Tree.Root, 0, dumpConfiguration);