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"; } }