X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2FRequestWrap.java;fp=src%2Fdolda%2Fjsvc%2FRequestWrap.java;h=1314c5d886672711b31c98ee50bb4a69e676e1cf;hb=79d2dd644f364a02b3d902c3544dfe275ac6461e;hp=0000000000000000000000000000000000000000;hpb=1c868f4eeb5afebdcf631441985d5ba17fcbd6b2;p=jsvc.git diff --git a/src/dolda/jsvc/RequestWrap.java b/src/dolda/jsvc/RequestWrap.java new file mode 100644 index 0000000..1314c5d --- /dev/null +++ b/src/dolda/jsvc/RequestWrap.java @@ -0,0 +1,51 @@ +package dolda.jsvc; + +import java.io.*; +import java.net.URL; +import java.net.SocketAddress; +import java.util.Map; + +public class RequestWrap implements Request { + private final Request bk; + + public RequestWrap(Request req) { + this.bk = req; + } + + public URL url() {return(bk.url());} + public String method() {return(bk.method());} + public String path() {return(bk.path());} + public InputStream input() {return(bk.input());} + public MultiMap inheaders() {return(bk.inheaders());} + public MultiMap params() {return(bk.params());} + public OutputStream output() {return(bk.output());} + public void status(int code) {bk.status(code);} + public void status(int code, String message) {bk.status(code, message);} + public MultiMap outheaders() {return(bk.outheaders());} + public Map props() {return(bk.props());} + public ServerContext ctx() {return(bk.ctx());} + public SocketAddress remoteaddr() {return(bk.remoteaddr());} + public SocketAddress localaddr() {return(bk.localaddr());} + + public Request orig() { + return(bk); + } + + public static Request chpath(Request req, String path) { + class PathWrap extends RequestWrap { + private final String path; + + public PathWrap(Request req, String path) { + super(req); + this.path = path; + } + + public String path() { + return(path); + } + } + if(req instanceof PathWrap) + return(new PathWrap(((PathWrap)req).orig(), path)); + return(new PathWrap(req, path)); + } +}