X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Funiprot%2FUniProtFTSRestClient.java;h=b4100cbbd22889f64fd844fc5c0f17f392708778;hb=e58d21a916e1beda1091e286723afb494ab62cc3;hp=262ed863e441eafea977b9917137f91f57ffe57c;hpb=b7791df75a2e535cfe438e85b101918eedeb71dc;p=jalview.git diff --git a/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java b/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java index 262ed86..b4100cb 100644 --- a/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java +++ b/src/jalview/fts/service/uniprot/UniProtFTSRestClient.java @@ -22,6 +22,7 @@ package jalview.fts.service.uniprot; import jalview.bin.Cache; +import jalview.bin.Jalview; import jalview.fts.api.FTSData; import jalview.fts.api.FTSDataColumnI; import jalview.fts.api.FTSRestClientI; @@ -40,7 +41,6 @@ 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 UniProtFTSRestClient extends FTSRestClient @@ -55,39 +55,54 @@ public class UniProtFTSRestClient extends FTSRestClient { super(); uniprotSearchEndpoint = Cache.getDefault("UNIPROT_DOMAIN", - DEFAULT_UNIPROT_DOMAIN) + "/uniprot/?"; + DEFAULT_UNIPROT_DOMAIN) + "/uniprot/"; } @Override - public FTSRestResponse executeRequest(FTSRestRequest uniportRestRequest) + public FTSRestResponse executeRequest(FTSRestRequest uniprotRestRequest) throws Exception { try { - ClientConfig clientConfig = new DefaultClientConfig(); - Client client = Client.create(clientConfig); - String wantedFields = getDataColumnsFieldsAsCommaDelimitedString( - uniportRestRequest.getWantedFields()); - int responseSize = (uniportRestRequest.getResponseSize() == 0) + uniprotRestRequest.getWantedFields()); + int responseSize = (uniprotRestRequest.getResponseSize() == 0) ? getDefaultResponsePageSize() - : uniportRestRequest.getResponseSize(); + : uniprotRestRequest.getResponseSize(); - int offSet = uniportRestRequest.getOffSet(); + int offSet = uniprotRestRequest.getOffSet(); String query; - if (isAdvancedQuery(uniportRestRequest.getSearchTerm())) + if (isAdvancedQuery(uniprotRestRequest.getSearchTerm())) { - query = uniportRestRequest.getSearchTerm(); + query = uniprotRestRequest.getSearchTerm(); } else { - query = uniportRestRequest.getFieldToSearchBy() + query = uniprotRestRequest.getFieldToSearchBy() .equalsIgnoreCase("Search All") - ? uniportRestRequest.getSearchTerm() + ? uniprotRestRequest.getSearchTerm() + " or mnemonic:" - + uniportRestRequest.getSearchTerm() - : uniportRestRequest.getFieldToSearchBy() + ":" - + uniportRestRequest.getSearchTerm(); + + uniprotRestRequest.getSearchTerm() + : uniprotRestRequest.getFieldToSearchBy() + ":" + + uniprotRestRequest.getSearchTerm(); + } + + // BH 2018 the trick here is to coerce the classes in Javascript to be + // different from the ones in Java yet still allow this to be correct for + // Java + Client client; + Class clientResponseClass; + if (Jalview.isJS()) + { + // JavaScript only -- coerce types to Java types for Java + client = (Client) (Object) new jalview.javascript.web.Client(); + clientResponseClass = (Class) (Object) jalview.javascript.web.ClientResponse.class; + } + else + { + // Java only + client = Client.create(new DefaultClientConfig()); + clientResponseClass = ClientResponse.class; } WebResource webResource = null; @@ -99,7 +114,7 @@ public class UniProtFTSRestClient extends FTSRestClient .queryParam("sort", "score").queryParam("query", query); // Execute the REST request ClientResponse clientResponse = webResource - .accept(MediaType.TEXT_PLAIN).get(ClientResponse.class); + .accept(MediaType.TEXT_PLAIN).get(clientResponseClass); String uniProtTabDelimittedResponseString = clientResponse .getEntity(String.class); // Make redundant objects eligible for garbage collection to conserve @@ -113,12 +128,13 @@ public class UniProtFTSRestClient extends FTSRestClient throw new Exception(errorMessage); } - int xTotalResults = Integer.valueOf( - clientResponse.getHeaders().get("X-Total-Results").get(0)); + int xTotalResults = Jalview.isJS() ? 1 + : Integer.valueOf(clientResponse.getHeaders() + .get("X-Total-Results").get(0)); clientResponse = null; client = null; return parseUniprotResponse(uniProtTabDelimittedResponseString, - uniportRestRequest, xTotalResults); + uniprotRestRequest, xTotalResults); } catch (Exception e) { String exceptionMsg = e.getMessage();