]> source.dussan.org Git - sonarqube.git/commitdiff
Add org.sonar.api.server.ws.Request#paramAsStrings(String)
authorSimon Brandhof <simon.brandhof@gmail.com>
Wed, 30 Apr 2014 09:03:11 +0000 (11:03 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Wed, 30 Apr 2014 09:03:40 +0000 (11:03 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java
sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java

index 73ab0a8b93913e33435e8b02ae93b9459a7fc9c7..eacbb06951239fcb1cc3162da8af7d095bf67846 100644 (file)
  */
 package org.sonar.api.server.ws;
 
+import com.google.common.base.Splitter;
+import com.google.common.collect.Lists;
 import org.apache.commons.lang.StringUtils;
 
 import javax.annotation.CheckForNull;
+import java.util.List;
 
 /**
  * @since 4.2
@@ -87,6 +90,15 @@ public abstract class Request {
     return StringUtils.defaultString(param(key), defaultValue);
   }
 
+  @CheckForNull
+  public List<String> paramAsStrings(String key) {
+    String s = param(key);
+    if (s == null) {
+      return null;
+    }
+    return Lists.newArrayList(Splitter.on(',').omitEmptyStrings().trimResults().split(s));
+  }
+
   @CheckForNull
   public Integer paramAsInt(String key) {
     String s = param(key);
index 8003e7577ee61d1ed48704bbc983d9bb91aebace..ef28b62c2c885f79ea36ee34a711dd04e615be6d 100644 (file)
@@ -129,4 +129,13 @@ public class RequestTest {
     assertThat(request.setParam("foo", "true").paramAsBoolean("xxx", true)).isTrue();
     assertThat(request.setParam("foo", "true").paramAsBoolean("xxx", false)).isFalse();
   }
+
+  @Test
+  public void param_as_strings() throws Exception {
+    assertThat(request.paramAsStrings("foo")).isNull();
+    assertThat(request.setParam("foo", "").paramAsStrings("foo")).isEmpty();
+    assertThat(request.setParam("foo", "bar").paramAsStrings("foo")).containsExactly("bar");
+    assertThat(request.setParam("foo", "bar,baz").paramAsStrings("foo")).containsExactly("bar", "baz");
+    assertThat(request.setParam("foo", "bar , baz").paramAsStrings("foo")).containsExactly("bar", "baz");
+  }
 }