From: David Crawshaw Date: Thu, 12 Jun 2008 03:19:11 +0000 (-0400) Subject: use Appendable rather than StringBuffer for toJava() X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=e086905f34b249ca1ae83c000859f2c603919a6b;hp=584507d6aeb01754a28d054132e0ab1d94174978 use Appendable rather than StringBuffer for toJava() darcs-hash:20080612031911-0c629-9c070704ad095c8607c74699e6d36558458207ce.gz --- diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index 16c473e..cce7bfe 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -88,7 +88,9 @@ public class Tree 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())+"\"")); diff --git a/src/edu/berkeley/sbp/util/PrintableTree.java b/src/edu/berkeley/sbp/util/PrintableTree.java index 802296d..108f13e 100644 --- a/src/edu/berkeley/sbp/util/PrintableTree.java +++ b/src/edu/berkeley/sbp/util/PrintableTree.java @@ -70,7 +70,7 @@ public abstract class PrintableTree implements Iterable } /** append Java code to sb 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); diff --git a/src/edu/berkeley/sbp/util/ToJava.java b/src/edu/berkeley/sbp/util/ToJava.java index ead3176..7c1b4c0 100644 --- a/src/edu/berkeley/sbp/util/ToJava.java +++ b/src/edu/berkeley/sbp/util/ToJava.java @@ -1,12 +1,9 @@ // 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.util.*; -import java.lang.reflect.*; public interface ToJava { - public void toJava(StringBuffer sb); + public void toJava(Appendable sb) throws IOException; }