added/updated ToHTML
[sbp.git] / src / edu / berkeley / sbp / util / ToHTML.java
1 package edu.berkeley.sbp.util;
2 import java.io.*;
3 import java.util.*;
4
5 public interface ToHTML {
6     public void toHTML(HTML h);
7
8     public static class HTML {
9         private final StringBuffer sb;
10         public HTML(StringBuffer sb) { this.sb = sb; }
11         public void append(String s) {
12             /* FIXME */
13             sb.append(s);
14         }
15         public void append(Object o) {
16             if (o==null)                    append("<tt><font color=red>null</font></tt>");
17             else if (o instanceof ToHTML)   ((ToHTML)o).toHTML(this);
18             else if (o instanceof Object[]) append((Object[])o);
19             else                            append(o.toString());
20         }
21         public void append(int i) { sb.append(i); }
22         public void append(char c) { sb.append(c); }
23
24         public void append(Object[] o) {
25             for(int i=0; i<o.length; i++) {
26                 if (i>0) append(' ');
27                 append(o[i]);
28             }
29         }
30
31         public void tag(String s, Object o) {
32             if (s != null) {
33                 append("<");
34                 append(s);
35                 append(">");
36             }
37             append(o);
38             if (s != null) {
39                 append("</");
40                 append(s);
41                 append(">");
42             }
43         }
44
45     }
46 }