use Appendable rather than StringBuffer for toJava()
authorDavid Crawshaw <david@zentus.com>
Thu, 12 Jun 2008 03:19:11 +0000 (23:19 -0400)
committerDavid Crawshaw <david@zentus.com>
Thu, 12 Jun 2008 03:19:11 +0000 (23:19 -0400)
darcs-hash:20080612031911-0c629-9c070704ad095c8607c74699e6d36558458207ce.gz

src/edu/berkeley/sbp/Tree.java
src/edu/berkeley/sbp/util/PrintableTree.java
src/edu/berkeley/sbp/util/ToJava.java

index 16c473e..cce7bfe 100644 (file)
@@ -88,7 +88,9 @@ public class Tree<NodeType>
         if (head()==null) return null;
         if (head() instanceof ToJava) {
             StringBuffer sb = new StringBuffer();
         if (head()==null) return null;
         if (head() instanceof ToJava) {
             StringBuffer sb = new StringBuffer();
-            ((ToJava)head()).toJava(sb);
+            try {
+                ((ToJava)head()).toJava(sb);
+            } catch (IOException e) { throw new RuntimeException(e); }
             return sb.toString();
         }
         return (head()==null?"null":("\""+StringUtil.toJavaString(head().toString())+"\""));
             return sb.toString();
         }
         return (head()==null?"null":("\""+StringUtil.toJavaString(head().toString())+"\""));
index 802296d..108f13e 100644 (file)
@@ -70,7 +70,7 @@ public abstract class PrintableTree<T extends PrintableTree> implements Iterable
     }
 
     /** append Java code to <tt>sb</tt> which evaluates to this instance */
     }
 
     /** append Java code to <tt>sb</tt> which evaluates to this instance */
-    public void toJava(StringBuffer sb) {
+    public void toJava(Appendable sb) throws IOException {
         sb.append("new "+this.getClass().getName()+"(null, ");
         String head = headToJava();
         sb.append(head);
         sb.append("new "+this.getClass().getName()+"(null, ");
         String head = headToJava();
         sb.append(head);
index ead3176..7c1b4c0 100644 (file)
@@ -1,12 +1,9 @@
 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
 
 package edu.berkeley.sbp.util;
 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
 
 package edu.berkeley.sbp.util;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.util.*;
+
 import java.io.*;
 import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
 
 public interface ToJava {
 
 public interface ToJava {
-    public void toJava(StringBuffer sb);
+    public void toJava(Appendable sb) throws IOException;
 }
 }