You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by eh...@apache.org on 2006/04/23 11:58:26 UTC

svn commit: r396247 - in /incubator/solr/trunk/src: java/org/apache/solr/request/ test/org/apache/solr/ webapp/src/org/apache/solr/servlet/

Author: ehatcher
Date: Sun Apr 23 02:58:24 2006
New Revision: 396247

URL: http://svn.apache.org/viewcvs?rev=396247&view=rev
Log:
Add getParams to SolrQueryRequest to allow support for multiple same-named parameters in the same way the servlet request allows

Modified:
    incubator/solr/trunk/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
    incubator/solr/trunk/src/java/org/apache/solr/request/SolrQueryRequest.java
    incubator/solr/trunk/src/test/org/apache/solr/BasicFunctionalityTest.java
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java

Modified: incubator/solr/trunk/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/java/org/apache/solr/request/LocalSolrQueryRequest.java?rev=396247&r1=396246&r2=396247&view=diff
==============================================================================
--- incubator/solr/trunk/src/java/org/apache/solr/request/LocalSolrQueryRequest.java (original)
+++ incubator/solr/trunk/src/java/org/apache/solr/request/LocalSolrQueryRequest.java Sun Apr 23 02:58:24 2006
@@ -25,6 +25,8 @@
 
 import java.util.Map;
 import java.util.HashMap;
+import java.util.Arrays;
+import java.lang.reflect.Array;
 
 /**
  * @author yonik
@@ -67,7 +69,22 @@
 
 
   public String getParam(String name) {
-    return (String)args.get(name);
+    Object value = args.get(name);
+    if (value == null || value instanceof String) {
+      return (String) value;
+    }
+    else {
+      return ((String[]) value)[0];
+    }
+  }
+
+  public String[] getParams(String name) {
+    Object value = args.get(name);
+    if (value instanceof String) {
+      return new String[] {(String)value};
+    } else {
+      return (String[]) value;
+    }
   }
 
   public String getQueryString() {

Modified: incubator/solr/trunk/src/java/org/apache/solr/request/SolrQueryRequest.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/java/org/apache/solr/request/SolrQueryRequest.java?rev=396247&r1=396246&r2=396247&view=diff
==============================================================================
--- incubator/solr/trunk/src/java/org/apache/solr/request/SolrQueryRequest.java (original)
+++ incubator/solr/trunk/src/java/org/apache/solr/request/SolrQueryRequest.java Sun Apr 23 02:58:24 2006
@@ -31,6 +31,8 @@
 
   public String getParam(String name);
 
+  public String[] getParams(String name);
+
   public String getQueryString();
 
   // signifies the syntax and the handler that should be used

Modified: incubator/solr/trunk/src/test/org/apache/solr/BasicFunctionalityTest.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/test/org/apache/solr/BasicFunctionalityTest.java?rev=396247&r1=396246&r2=396247&view=diff
==============================================================================
--- incubator/solr/trunk/src/test/org/apache/solr/BasicFunctionalityTest.java (original)
+++ incubator/solr/trunk/src/test/org/apache/solr/BasicFunctionalityTest.java Sun Apr 23 02:58:24 2006
@@ -26,6 +26,8 @@
 import java.io.StringWriter;
 import java.io.ByteArrayInputStream;
 import java.io.UnsupportedEncodingException;
+import java.util.Map;
+import java.util.HashMap;
 
 /**
  * Tests some basic functionality of Solr while demonstrating good
@@ -160,6 +162,24 @@
     DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
     builder.parse(new ByteArrayInputStream
                              (writer.toString().getBytes("UTF-8")));
+  }
+
+  public void testLocalSolrQueryRequestParams() {
+    HashMap args = new HashMap();
+    args.put("string", "string value");
+    args.put("array", new String[] {"array", "value"});
+    SolrQueryRequest req = new LocalSolrQueryRequest(null, null, null, 0, 20, args);
+    assertEquals("string value", req.getParam("string"));
+    assertEquals("array", req.getParam("array"));
+
+    String[] stringParams = req.getParams("string");
+    assertEquals(1, stringParams.length);
+    assertEquals("string value", stringParams[0]);
+
+    String[] arrayParams = req.getParams("array");
+    assertEquals(2, arrayParams.length);
+    assertEquals("array", arrayParams[0]);
+    assertEquals("value", arrayParams[1]);
   }
 
 

Modified: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java?rev=396247&r1=396246&r2=396247&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java (original)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java Sun Apr 23 02:58:24 2006
@@ -25,6 +25,10 @@
     return req.getParameter(name);
   }
 
+  public String[] getParams(String name) {
+    return req.getParameterValues(name);
+  }
+
 
   public String getParamString() {
     StringBuilder sb = new StringBuilder(128);