
com.versionone.apiclient.services.BuildResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of VersionOne.SDK.Java.APIClient Show documentation
Show all versions of VersionOne.SDK.Java.APIClient Show documentation
A library for custom Java development against the VersionOne Development Platform's REST API.
package com.versionone.apiclient.services;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
public class BuildResult {
private final HashMap queryParameters = new LinkedHashMap();
public final List pathParts = new ArrayList();
public void addQueryParameter(String name, String value) {
queryParameters.put(name, value);
}
public int getQueryParameterCount() {
return queryParameters.size();
}
public String urlEncode(String valueString) {
try {
valueString = URLEncoder.encode(valueString, "UTF-8");
} catch (UnsupportedEncodingException e) {
valueString = valueString.replace("+", "%2B");
valueString = valueString.replace(" ", "+");
valueString = valueString.replace("&", "%26");
valueString = valueString.replace("#", "%23");
}
return valueString;
}
public String toUrl() {
List encodedPathParts = new ArrayList();
for (Iterator iterator = pathParts.iterator(); iterator.hasNext();) {
String pathPart = iterator.next();
encodedPathParts.add(urlEncode(pathPart));
}
String path = TextBuilder.join(encodedPathParts, "/");
List queryParts = new ArrayList();
for (Iterator> iterator = queryParameters.entrySet().iterator(); iterator.hasNext();) {
Entry queryParameter = iterator.next();
queryParts.add(String.format("%s=%s", queryParameter.getKey(),
urlEncode(queryParameter.getValue())));
}
String querystring = TextBuilder.join(queryParts, "&");
String result = path.concat(querystring != null ? "?" + querystring : "");
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy