Commit | Line | Data |
---|---|---|
3e20c35c FT |
1 | package jrw; |
2 | ||
3 | import java.util.*; | |
4 | ||
5 | public 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 | } |