X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjavascript%2Fweb%2FWebResource.java;fp=src%2Fjalview%2Fjavascript%2Fweb%2FWebResource.java;h=1896b652239a05e429460a79ea1a471c3085d64f;hb=ec8f3cedf60fb1feed6d34de6b49f6bfa78b9dd8;hp=0000000000000000000000000000000000000000;hpb=056dad85a910551cc95e44d451a61f6b8c4dd35d;p=jalview.git diff --git a/src/jalview/javascript/web/WebResource.java b/src/jalview/javascript/web/WebResource.java new file mode 100644 index 0000000..1896b65 --- /dev/null +++ b/src/jalview/javascript/web/WebResource.java @@ -0,0 +1,79 @@ +package jalview.javascript.web; + +import jalview.util.Platform; + +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; + +/* + * A JavaScript-only proxy for com.sun.jersey.api.client.WebResource + * + */ +public class WebResource +{ + + private String endpoint, params = ""; + + public WebResource(String endpoint) + { + this.endpoint = endpoint; + } + + public WebResource queryParam(String key, String value) + { + params += (params == "" ? "?" : "&") + key + "=" + + Platform.encodeURI(value); + return this; + } + + public URI getURI() + { + try + { + return new URI(endpoint + params); + } catch (URISyntaxException e) + { + e.printStackTrace(); + return null; + } + } + + public Builder accept(String... encoding) + { + return new Builder(getURI(), encoding); + } + + public static class Builder + { + private URI uri; + + private String[] encoding; + + public Builder(URI uri, String... encoding) + { + this.uri = uri; + this.encoding = encoding; // application/json + } + + /** + * Get the response + * + * @param c + * must be ClientResponse + * @return + */ + public ClientResponse get(Class c) + { + try + { + return new ClientResponse(new URL(uri.toString()), encoding); + } catch (MalformedURLException e) + { + return null; + } + } + } + +}