Commits

Ning Sun  committed 30f4852

add StartResponse

  • Participants
  • Parent commits 34e8650

Comments (0)

Files changed (1)

File java/info/sunng/wsgiservlet/wsgi/StartResponse.java

-# Copyright (C) 2011 Sun Ning<classicning@gmail.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-#
+/** 
+ * Copyright (C) 2011 Sun Ning<classicning@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
 
 package info.sunng.wsgiservlet.wsgi;
 
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.python.core.PyList;
 import org.python.core.PyObject;
+import org.python.core.PyTuple;
 
 public class StartResponse extends PyObject{
     
+    private Map<String, String> headers = new HashMap<String, String>();
+    
+    private int status;
+    
     @Override
     public PyObject __call__(PyObject args[], String keywords[]) {
+        if (args.length != 2) {
+            throw new IllegalArgumentException("use start_response(status, headers)");
+        }
         
+        String status_message = args[0].toString();
+        String[] statusCodeAndMessage = status_message.split("\\s");
+        status = Integer.valueOf(statusCodeAndMessage[0]);
+        
+        PyList headerList = (PyList)args[1];
+        Iterator iter = headerList.iterator();
+        while(iter.hasNext()) {
+            PyTuple headerItem = (PyTuple)iter.next();
+            
+            String headerKey = (String)headerItem.get(0);
+            String headerVal = (String)headerItem.get(1);
+            headers.put(headerKey, headerVal);
+        }
+        
+        return null;
+    }
+    
+    public int getStatus() {
+        return status;
+    }
+    
+    public Map<String, String> getHeaders() {
+        return headers;
     }
 
 }