JAL-3026 implements simple REST client
[jalview.git] / src / jalview / javascript / web / WebResource.java
1 package jalview.javascript.web;
2
3 import java.net.URI;
4 import java.net.URISyntaxException;
5
6 public class WebResource
7 {
8
9   private String endpoint, params = "";
10   
11   public WebResource(String endpoint) {
12     this.endpoint = endpoint;
13   }
14   
15
16   public WebResource queryParam(String key, String value)
17   {
18     params += (params == "" ? "?" : "&") + key + "=";
19     /**
20      * @j2sNative
21      * value = encodeURIComonent(value);
22      */
23     params += value;
24     return this;
25   }
26
27   public URI getURI()
28   {
29     try
30     {
31       return new URI(endpoint + params);
32     } catch (URISyntaxException e)
33     {
34       e.printStackTrace();
35       return null;
36     }
37   }
38
39   public Builder accept(String encoding)
40   {
41     return  new Builder(getURI(), encoding);
42   }
43   
44   
45   public static class Builder {
46       private URI uri;
47       private String encoding;
48
49       public Builder(URI uri, String encoding)
50     {
51         this.uri = uri;
52         this.encoding = encoding; // application/json
53         
54       // TODO Auto-generated constructor stub
55     }
56
57       public ClientResponse get(Class<?> c) {
58         String data = uri.toString();
59         // c will be ClientResponse 
60         data = /** @j2sNative swingjs.JSUtil.getFileAsString$S(data) || */ null;
61         return new ClientResponse(data, encoding);
62       }
63   }
64  
65   
66   
67
68 }