code: public String toPrettyString(int indentLevel) {
      StringBuilder buf = new StringBuilder("\n");
      for (int i = 0; i < indentLevel; i++) {
        buf.append("  ");
      }
      if (children == null || children.length == 0) {
        buf.append(label.toString("value-index{map}"));
      } else {
        buf.append('(').append(label.toString("value-index{map}"));
        for (TreeGraphNode child : children) {
          buf.append(' ').append(child.toPrettyString(indentLevel + 1));
        }
        buf.append(')');
      }
      return buf.toString();
    }
docs: Returns a <code>String</code> representation of this node and
  its subtree with one node per line, indented according to
  <code>indentLevel</code>.
  
  @param indentLevel how many levels to indent (0 for root node)
  @return <code>String</code> representation of this subtree