added pretty good pretty-printing
[sbp.git] / src / edu / berkeley / sbp / Tree.java
index e7f2ef7..6b295a5 100644 (file)
@@ -30,6 +30,13 @@ public class Tree<T> extends PrintableTree<Tree<T>> implements Iterable<Tree<T>>
         this.children = children2;
     }
 
+    /** since Tree instances are immutable, we can cache this to make pretty-printing MUCH faster */
+    public String toString() {
+        if (toString!=null) return toString;
+        return toString = super.toString();
+    }
+    private String toString = null;
+
     protected String headToString() { return head==null?null:head.toString(); }
     protected String headToJava()   { return head==null?null:StringUtil.toJavaString(head+""); }
 }