Made the server context a more useful concept.
[jsvc.git] / src / dolda / jsvc / RequestWrap.java
CommitLineData
79d2dd64
FT
1package dolda.jsvc;
2
3import java.io.*;
4import java.net.URL;
5import java.net.SocketAddress;
6import java.util.Map;
7
8public class RequestWrap implements Request {
9 private final Request bk;
10
11 public RequestWrap(Request req) {
12 this.bk = req;
13 }
14
15 public URL url() {return(bk.url());}
4b8346e1 16 public URL rooturl() {return(bk.rooturl());}
79d2dd64
FT
17 public String method() {return(bk.method());}
18 public String path() {return(bk.path());}
19 public InputStream input() {return(bk.input());}
20 public MultiMap<String, String> inheaders() {return(bk.inheaders());}
21 public MultiMap<String, String> params() {return(bk.params());}
22 public OutputStream output() {return(bk.output());}
23 public void status(int code) {bk.status(code);}
24 public void status(int code, String message) {bk.status(code, message);}
25 public MultiMap<String, String> outheaders() {return(bk.outheaders());}
26 public Map<Object, Object> props() {return(bk.props());}
27 public ServerContext ctx() {return(bk.ctx());}
28 public SocketAddress remoteaddr() {return(bk.remoteaddr());}
29 public SocketAddress localaddr() {return(bk.localaddr());}
30
31 public Request orig() {
32 return(bk);
33 }
34
35 public static Request chpath(Request req, String path) {
36 class PathWrap extends RequestWrap {
37 private final String path;
38
39 public PathWrap(Request req, String path) {
40 super(req);
41 this.path = path;
42 }
43
44 public String path() {
45 return(path);
46 }
47 }
48 if(req instanceof PathWrap)
49 return(new PathWrap(((PathWrap)req).orig(), path));
50 return(new PathWrap(req, path));
51 }
52}