Improved string concatenation algorithm

This commit is contained in:
Pablo Fernandez committed 2010-09-17 23:09:28 -03:00
1 parent 608f56d59f
commit 8c8f26e134
2 files changed
+17 -22

No files matched your search

@@ -8,20 +8,24 @@ import org.scribe.utils.*;
public class HeaderExtractorImpl implements HeaderExtractor
{
private static final String PARAM_SEPARATOR = ", ";
private static final String PREAMBLE = "OAuth ";
public String extract(OAuthRequest request)
{
checkPreconditions(request);
Map<String, String> parameters = request.getOauthParameters();
StringBuffer header = new StringBuffer();
StringBuffer header = new StringBuffer(parameters.size() * 20);
header.append(PREAMBLE);
for (String key : parameters.keySet())
{
addToHeader(header, key, parameters.get(key));
if(header.length() > PREAMBLE.length())
{
header.append(PARAM_SEPARATOR);
}
header.append(String.format("%s=\"%s\"", key, URLUtils.percentEncode(parameters.get(key))));
}
return removeTrail(header);
return header.toString();
}
private void checkPreconditions(OAuthRequest request)
@@ -34,13 +38,4 @@ public class HeaderExtractorImpl implements HeaderExtractor
}
}
private void addToHeader(StringBuffer header, String name, String value)
{
header.append(String.format("%s=\"%s\", ", name, URLUtils.percentEncode(value)));
}
private String removeTrail(StringBuffer header)
{
return header.toString().substring(0, header.length() - 2);
}
}