1 Commits
Author SHA1 Message Date
Pablo Fernandez b2147de2e5 Removed last isEmpty for < 1.6 compatibility 2010-09-15 10:58:52 -03:00
8 changed files with 41 additions and 78 deletions

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
<groupId>org.scribe</groupId> <groupId>org.scribe</groupId>
<artifactId>scribe</artifactId> <artifactId>scribe</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.0.1</version> <version>1.0.2</version>
<name>OAuth Library</name> <name>OAuth Library</name>
<dependencies> <dependencies>
@@ -22,10 +22,10 @@ public class BaseStringExtractorImpl implements BaseStringExtractor
private String getSortedAndEncodedParams(OAuthRequest request) private String getSortedAndEncodedParams(OAuthRequest request)
{ {
Map<String, List<String>> params = new HashMap<String, List<String>>(); Map<String, String> params = new HashMap<String, String>();
params.putAll(request.getQueryStringParams()); params.putAll(request.getQueryStringParams());
params.putAll(request.getBodyParams()); params.putAll(request.getBodyParams());
params.putAll(MapUtils.toListMap(request.getOauthParameters())); params.putAll(request.getOauthParameters());
params = MapUtils.sort(params); params = MapUtils.sort(params);
return URLUtils.percentEncode(URLUtils.formURLEncodeMap(params)); return URLUtils.percentEncode(URLUtils.formURLEncodeMap(params));
} }
+7 -22
View File
@@ -19,7 +19,7 @@ class Request
private String url; private String url;
private Verb verb; private Verb verb;
private Map<String, List<String>> bodyParams; private Map<String, String> bodyParams;
private Map<String, String> headers; private Map<String, String> headers;
private String payload = null; private String payload = null;
private Integer timeout = null; private Integer timeout = null;
@@ -35,7 +35,7 @@ class Request
{ {
this.verb = verb; this.verb = verb;
this.url = url; this.url = url;
this.bodyParams = new HashMap<String, List<String>>(); this.bodyParams = new HashMap<String, String>();
this.headers = new HashMap<String, String>(); this.headers = new HashMap<String, String>();
try try
{ {
@@ -108,14 +108,7 @@ class Request
*/ */
public void addBodyParameter(String key, String value) public void addBodyParameter(String key, String value)
{ {
if(bodyParams.get(key) != null) this.bodyParams.put(key, value);
{
bodyParams.get(key).add(value);
}
else
{
bodyParams.put(key, Arrays.asList(value));
}
} }
/** /**
@@ -138,26 +131,18 @@ class Request
* *
* @return a map containing the query string parameters * @return a map containing the query string parameters
*/ */
public Map<String, List<String>> getQueryStringParams() public Map<String, String> getQueryStringParams()
{ {
try try
{ {
Map<String, List<String>> params = new HashMap<String, List<String>>(); Map<String, String> params = new HashMap<String, String>();
String query = new URL(url).getQuery(); String query = new URL(url).getQuery();
if (query != null) if (query != null)
{ {
for (String param : query.split("&")) for (String param : query.split("&"))
{ {
String pair[] = param.split("="); String pair[] = param.split("=");
String key = pair[0], value = pair[1]; params.put(pair[0], pair[1]);
if(params.get(key)!= null)
{
params.get(key).add(value);
}
else
{
params.put(key, Arrays.asList(value));
}
} }
} }
return params; return params;
@@ -172,7 +157,7 @@ class Request
* *
* @return a map containing the body parameters. * @return a map containing the body parameters.
*/ */
public Map<String, List<String>> getBodyParams() public Map<String, String> getBodyParams()
{ {
return bodyParams; return bodyParams;
} }
+3 -20
View File
@@ -5,39 +5,22 @@ import java.util.*;
public class MapUtils public class MapUtils
{ {
public static final Map<String, List<String>> sort(Map<String, List<String>> map) public static final Map<String, String> sort(Map<String, String> map)
{ {
Preconditions.checkNotNull(map, "Cannot sort a null object."); Preconditions.checkNotNull(map, "Cannot sort a null object.");
Map<String, List<String>> sorted = new LinkedHashMap<String, List<String>>(); Map<String, String> sorted = new LinkedHashMap<String, String>();
for (String key : getSortedKeys(map)) for (String key : getSortedKeys(map))
{ {
if(map.get(key).size() > 1)
{
Collections.sort(map.get(key));
}
sorted.put(key, map.get(key)); sorted.put(key, map.get(key));
} }
return sorted; return sorted;
} }
private static List<String> getSortedKeys(Map<String, List<String>> map) private static List<String> getSortedKeys(Map<String, String> map)
{ {
List<String> keys = new ArrayList<String>(map.keySet()); List<String> keys = new ArrayList<String>(map.keySet());
Collections.sort(keys); Collections.sort(keys);
return keys; return keys;
} }
@SuppressWarnings("unchecked")
public static final <T> Map<String, List<T>> toListMap(Map<String, T> map)
{
Preconditions.checkNotNull(map, "Cannot sort a null object.");
Map<String, List<T>> result = new HashMap<String, List<T>>();
for (Map.Entry<String, T> entry : map.entrySet())
{
result.put(entry.getKey(), Arrays.asList(entry.getValue()));
}
return result;
}
} }
@@ -38,7 +38,7 @@ public class Preconditions
private static void check(boolean requirements, String error) private static void check(boolean requirements, String error)
{ {
String message = (error == null || error.trim().isEmpty()) ? DEFAULT_MESSAGE : error; String message = (error == null || error.trim().length() <= 0) ? DEFAULT_MESSAGE : error;
if (!requirements) if (!requirements)
{ {
throw new IllegalArgumentException(message); throw new IllegalArgumentException(message);
+3 -6
View File
@@ -16,21 +16,18 @@ public class URLUtils
private static final String ERROR_MSG = String.format("Cannot find specified encoding: %s", UTF_8); private static final String ERROR_MSG = String.format("Cannot find specified encoding: %s", UTF_8);
public static String formURLEncodeMap(Map<String, List<String>> map) public static String formURLEncodeMap(Map<String, String> map)
{ {
Preconditions.checkNotNull(map, "Cannot url-encode a null object"); Preconditions.checkNotNull(map, "Cannot url-encode a null object");
return (map.size() <= 0) ? EMPTY_STRING : doFormUrlEncode(map); return (map.size() <= 0) ? EMPTY_STRING : doFormUrlEncode(map);
} }
private static String doFormUrlEncode(Map<String, List<String>> map) private static String doFormUrlEncode(Map<String, String> map)
{ {
StringBuffer encodedString = new StringBuffer(); StringBuffer encodedString = new StringBuffer();
for (String key : map.keySet()) for (String key : map.keySet())
{ {
for(String value: map.get(key)) encodedString.append(percentEncode(key)).append(PAIR_SEPARATOR).append(percentEncode(map.get(key))).append(PARAM_SEPARATOR);
{
encodedString.append(percentEncode(key)).append(PAIR_SEPARATOR).append(percentEncode(value)).append(PARAM_SEPARATOR);
}
} }
return removeTrailingSeparator(encodedString); return removeTrailingSeparator(encodedString);
} }
@@ -9,42 +9,40 @@ import org.junit.*;
public class MapUtilsTest public class MapUtilsTest
{ {
private Map<String, List<String>> unsorted; private Map<String, String> unsorted;
@Before @Before
public void setup() public void setup()
{ {
unsorted = new LinkedHashMap<String, List<String>>(); unsorted = new LinkedHashMap<String, String>();
unsorted.put("d", Arrays.asList("fourth")); unsorted.put("d", "fourth");
unsorted.put("a", Arrays.asList("first")); unsorted.put("a", "first");
unsorted.put("c", Arrays.asList("third")); unsorted.put("c", "third");
unsorted.put("b", Arrays.asList("second", "second_two", "second_one")); unsorted.put("b", "second");
} }
@Test @Test
public void shouldSortMap() public void shouldSortMap()
{ {
Map<String, List<String>> sorted = MapUtils.sort(unsorted); Map<String, String> sorted = MapUtils.sort(unsorted);
List<List<String>> values = new ArrayList<List<String>>(sorted.values()); List<String> values = new ArrayList<String>(sorted.values());
assertEquals("first", values.get(0).get(0)); assertEquals("first", values.get(0));
assertEquals("second", values.get(1).get(0)); assertEquals("second", values.get(1));
assertEquals("second_one", values.get(1).get(1)); assertEquals("third", values.get(2));
assertEquals("second_two", values.get(1).get(2)); assertEquals("fourth", values.get(3));
assertEquals("third", values.get(2).get(0));
assertEquals("fourth", values.get(3).get(0));
} }
@Test @Test
public void shouldNotModifyTheOriginalMap() public void shouldNotModifyTheOriginalMap()
{ {
Map<String, List<String>> sorted = MapUtils.sort(unsorted); Map<String, String> sorted = MapUtils.sort(unsorted);
assertNotSame(sorted, unsorted); assertNotSame(sorted, unsorted);
List<List<String>> values = new ArrayList<List<String>>(unsorted.values()); List<String> values = new ArrayList<String>(unsorted.values());
assertEquals("fourth", values.get(0).get(0)); assertEquals("fourth", values.get(0));
assertEquals("first", values.get(1).get(0)); assertEquals("first", values.get(1));
assertEquals("third", values.get(2).get(0)); assertEquals("third", values.get(2));
assertEquals("second", values.get(3).get(0)); assertEquals("second", values.get(3));
} }
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
@@ -18,10 +18,10 @@ public class URLUtilsTest
@Test @Test
public void shouldPercentEncodeMap() public void shouldPercentEncodeMap()
{ {
Map<String, List<String>> params = new LinkedHashMap<String, List<String>>(); Map<String, String> params = new LinkedHashMap<String, String>();
params.put("key", Arrays.asList("value")); params.put("key", "value");
params.put("key with spaces", Arrays.asList("value with spaces")); params.put("key with spaces", "value with spaces");
params.put("&symbols!", Arrays.asList("#!")); params.put("&symbols!", "#!");
String expected = "key=value&key+with+spaces=value+with+spaces&%26symbols%21=%23%21"; String expected = "key=value&key+with+spaces=value+with+spaces&%26symbols%21=%23%21";
assertEquals(expected, URLUtils.formURLEncodeMap(params)); assertEquals(expected, URLUtils.formURLEncodeMap(params));
@@ -30,7 +30,7 @@ public class URLUtilsTest
@Test @Test
public void shouldReturnEmptyStringForEmptyMap() public void shouldReturnEmptyStringForEmptyMap()
{ {
Map<String, List<String>> params = new LinkedHashMap<String, List<String>>(); Map<String, String> params = new LinkedHashMap<String, String>();
String expected = ""; String expected = "";
assertEquals(expected, URLUtils.formURLEncodeMap(params)); assertEquals(expected, URLUtils.formURLEncodeMap(params));
} }
@@ -54,7 +54,7 @@ public class URLUtilsTest
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void shouldThrowExceptionIfMapIsNull() public void shouldThrowExceptionIfMapIsNull()
{ {
Map<String, List<String>> nullMap = null; Map<String, String> nullMap = null;
URLUtils.formURLEncodeMap(nullMap); URLUtils.formURLEncodeMap(nullMap);
} }