Added a "directory multiplexer" responder.
[jsvc.git] / src / dolda / jsvc / util / SimpleWriter.java
diff --git a/src/dolda/jsvc/util/SimpleWriter.java b/src/dolda/jsvc/util/SimpleWriter.java
new file mode 100644 (file)
index 0000000..60f17d2
--- /dev/null
@@ -0,0 +1,26 @@
+package dolda.jsvc.util;
+
+import dolda.jsvc.*;
+import java.io.*;
+
+public abstract class SimpleWriter implements Responder {
+    private String ctype;
+    
+    public SimpleWriter(String ctype) {
+       this.ctype = ctype;
+    }
+    
+    public abstract void respond(Request req, PrintWriter out);
+    
+    public void respond(Request req) {
+       req.outheaders().put("Content-Type", "text/" + ctype + "; charset=utf-8");
+       PrintWriter out;
+       try {
+           out = new PrintWriter(new OutputStreamWriter(req.output(), "UTF-8"));
+       } catch(UnsupportedEncodingException e) {
+           throw(new Error(e));
+       }
+       respond(req, out);
+       out.flush();
+    }
+}