X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FToHTML.java;h=88e4f57b24de60dc8c2f5a73451593a44a53bed4;hp=4415e3d95b7729141b1ed6fd56ba644fc1c2cdb6;hb=59eead6bf0f2d9a7abeba03f3fdab04625521faf;hpb=373f281f7a7988773f6e469717ce6f972cb07e96
diff --git a/src/edu/berkeley/sbp/util/ToHTML.java b/src/edu/berkeley/sbp/util/ToHTML.java
index 4415e3d..88e4f57 100644
--- a/src/edu/berkeley/sbp/util/ToHTML.java
+++ b/src/edu/berkeley/sbp/util/ToHTML.java
@@ -3,5 +3,77 @@ import java.io.*;
import java.util.*;
public interface ToHTML {
- public void ToHTML(PrintWriter p);
+ public void toHTML(HTML h);
+
+ public static class HTML {
+ private final StringBuffer sb;
+ public HTML(StringBuffer sb) { this.sb = sb; }
+
+ public void appendLiterally(String s) {
+ sb.append(s);
+ }
+ public void append(String s) {
+ /* FIXME */
+ sb.append(s);
+ }
+
+ public void appendText(String s) {
+ /* FIXME: escapify this!!! */
+ sb.append(s);
+ }
+
+ public void entity(int entity) { sb.append(""+entity+";"); }
+ public void entity(String entity) { sb.append("&"+entity+";"); }
+
+ public void append(Object o) {
+ if (o==null) append("null");
+ else if (o instanceof ToHTML) ((ToHTML)o).toHTML(this);
+ else if (o instanceof Object[]) append((Object[])o);
+ else append(o.toString());
+ }
+ public void append(int i) { sb.append(i); }
+ public void append(char c) { sb.append(c); }
+
+ public void append(Object[] o) {
+ for(int i=0; i0) append(' ');
+ append(o[i]);
+ }
+ }
+
+ public void tag(String s) {
+ sb.append("<");
+ append(s);
+ sb.append("/>");
+ }
+ public void openTag(String s, Object[] attrs) {
+ sb.append("<");
+ append(s);
+ if (attrs != null)
+ for(int i=0; i");
+ }
+ public void closeTag(String s) {
+ sb.append("<");
+ append(s);
+ sb.append(">");
+ }
+ public void tag(String s, Object o) { tag(s, null, o); }
+ public void tag(String s, Object[] attrs, Object o) {
+ if (s != null) openTag(s, attrs);
+ append(o);
+ if (s != null) {
+ sb.append("");
+ append(s);
+ sb.append(">");
+ }
+ }
+
+ }
}