Initial commit.
[jrw.git] / src / jrw / Request.java
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 }