merged 1.1 branch into head
[mir.git] / source / mir / util / HTTPRequestParser.java
index 9b50247..a24c468 100755 (executable)
 package mir.util;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+
 import javax.servlet.http.HttpServletRequest;
 
 public class HTTPRequestParser {
   private HttpServletRequest request;
-  private String encoding;
+  private Map overridingParameters;
 
   public HTTPRequestParser(HttpServletRequest aRequest) {
-    this(aRequest, aRequest.getCharacterEncoding());
+    this(aRequest, Collections.EMPTY_MAP);
   }
 
-  public HTTPRequestParser(HttpServletRequest aRequest, String anEncoding) {
+  public HTTPRequestParser(HttpServletRequest aRequest, Map anOverridingParameters) {
     request = aRequest;
-    encoding = anEncoding;
+    overridingParameters = anOverridingParameters;
   }
 
   public boolean hasParameter(String aName) {
-    return request.getParameter(aName)!=null;
+    return (request.getParameter(aName)!=null) || overridingParameters.containsKey(aName);
   }
 
   public String getParameterWithDefault(String aName, String aDefault) {
@@ -61,13 +64,10 @@ public class HTTPRequestParser {
   public String getParameter(String aName) {
     try {
       String result = request.getParameter(aName);
-//      String requestEncoding = request.getCharacterEncoding();
-//      if (requestEncoding==null)
-//        requestEncoding = "ISO-8859-1";
 
-//      if (result != null && encoding!=null && !encoding.equals(requestEncoding)) {
-//        result = new String(result.getBytes(requestEncoding), encoding);
-//      }
+      if (result==null) {
+        result = (String) overridingParameters.get(aName);
+      }
 
       return result;
     }