X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Funiprot%2FUniProtFTSRestClient.java;fp=src%2Fjalview%2Ffts%2Fservice%2Funiprot%2FUniProtFTSRestClient.java;h=2930468a367499deda3951d796c3952f94b96877;hb=007af0c9001900071f6d8e9214143f79e10f4938;hp=0000000000000000000000000000000000000000;hpb=64dd25185d2caf389946bb7e70053183d5aa31a6;p=jalview.git diff --git a/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java b/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java new file mode 100644 index 0000000..2930468 --- /dev/null +++ b/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java @@ -0,0 +1,91 @@ +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) + // 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"; + } + +}