--- /dev/null
+package jalview.fts.service.uniprot;
+
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSRestClient;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+
+import javax.ws.rs.core.MediaType;
+
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.ClientConfig;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+
+public class UniProtRestClient extends FTSRestClient
+{
+ private static FTSRestClientI instance = null;
+
+ public static final String UNIPROT_SEARCH_ENDPOINT = "http://www.uniprot.org/uniprot/?";
+
+ private static int DEFAULT_RESPONSE_SIZE = 200;
+
+ @Override
+ public FTSRestResponse executeRequest(FTSRestRequest uniportRestRequest)
+ {
+ ClientConfig clientConfig = new DefaultClientConfig();
+ Client client = Client.create(clientConfig);
+
+ @SuppressWarnings("unchecked")
+ // String wantedFields =
+ // getUniProtDocFieldsAsCommaDelimitedString((Collection<UniProtDocField>)
+ // uniportRestRequest
+ // .getWantedFields());
+ int responseSize = (uniportRestRequest.getResponseSize() == 0) ? DEFAULT_RESPONSE_SIZE
+ : uniportRestRequest.getResponseSize();
+
+ WebResource webResource = null;
+
+ webResource = client.resource(UNIPROT_SEARCH_ENDPOINT)
+ .queryParam("format", "tab")
+ // .queryParam("columns", wantedFields)
+ .queryParam("limit", String.valueOf(responseSize))
+ .queryParam("query", "name:filaggrin");
+ // Execute the REST request
+ ClientResponse clientResponse = webResource
+ .accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+ String responseString = clientResponse.getEntity(String.class);
+ String[] results = responseString.split("\n");
+ for (String result : results)
+ {
+ String[] columns = result.split("\t");
+ System.out.println("Entry : " + columns[0]);
+ System.out.println("Entry name : " + columns[1]);
+ System.out.println("Status : " + columns[2]);
+ System.out.println("Protein names : " + columns[3]);
+ System.out.println("Gene name : " + columns[4]);
+ System.out.println("Organism : " + columns[5]);
+ System.out.println("Lenght : " + columns[6]);
+ System.out.println("");
+ }
+
+ // Make redundant objects eligible for garbage collection to conserve
+ // memory
+ clientResponse = null;
+ client = null;
+ return null;
+
+ // Process the response and return the result to the caller.
+ // return parsePDBJsonResponse(responseString, pdbRestRequest);
+ // System.out.println(">>>>> " + responseString);
+
+ }
+
+
+ public static FTSRestClientI getInstance()
+ {
+ if (instance == null)
+ {
+ instance = new UniProtRestClient();
+ }
+ return instance;
+ }
+
+ @Override
+ public String getColumnDataConfigFile()
+ {
+ return "fts/uniprot_data_columns.conf";
+ }
+
+}