From 19328e79e721ab8710b3eade6924a66ea19eb4aa Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 30 Apr 2014 11:03:11 +0200 Subject: [PATCH] Add org.sonar.api.server.ws.Request#paramAsStrings(String) --- .../main/java/org/sonar/api/server/ws/Request.java | 12 ++++++++++++ .../java/org/sonar/api/server/ws/RequestTest.java | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java index 73ab0a8b939..eacbb069512 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java @@ -19,9 +19,12 @@ */ 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 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); diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java index 8003e7577ee..ef28b62c2c8 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java @@ -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"); + } } -- 2.39.5