Initial commit.
[jrw.git] / src / jrw / Request.java
CommitLineData
3e20c35c
FT
1package jrw;
2
3import java.util.*;
4
5public class Request {
6 public final Map<Object, Object> env;
7 public final Map<Object, Object> resp = new HashMap<>();
8
9 public Request(Map<Object, Object> env) {
10 this.env = env;
11 }
12
13 public String ihead(String name, String def) {
14 StringBuilder buf = new StringBuilder();
15 buf.append("HTTP_");
16 for(int i = 0; i < name.length(); i++) {
17 char c = name.charAt(i);
18 if(c == '-')
19 buf.append('_');
20 else if((c >= 'a') && (c <= 'z'))
21 buf.append((char)(c + ('A' - 'a')));
22 else
23 buf.append(c);
24 }
25 Object ret = env.get(buf.toString());
26 if(ret instanceof String)
27 return((String)ret);
28 return(def);
29 }
30
31 @SuppressWarnings("unchecked")
32 public void ohead(String name, Object val, boolean repl) {
33 name = "http." + name;
34 if(repl) {
35 resp.put(name, val);
36 } else {
37 Object cur = resp.get(name);
38 if(cur == null)
39 resp.put(name, val);
40 else if(cur instanceof Collection)
41 ((Collection)cur).add(val);
42 else
43 resp.put(name, new ArrayList<Object>(Arrays.asList(cur, val)));
44 }
45 }
46
47 public Map<Object, Object> response() {
48 return(resp);
49 }
50}