- // + (uniportRestRequest.isAllowUnpublishedEntries() ? ""
- // : " AND status:REL");
- // System.out.println(">>>>> Query : " + query);
- // System.out.println(">>>>> Columns : " + wantedFields);
- // System.out.println(">>>>> Response size: " + responseSize
- // + " offset : "
- // + offSet);
- WebResource webResource = null;
- webResource = client.resource(UNIPROT_SEARCH_ENDPOINT)
- .queryParam("format", "tab")
- .queryParam("columns", wantedFields)
- .queryParam("limit", String.valueOf(responseSize))
- .queryParam("offset", String.valueOf(offSet))
- .queryParam("sort", "score")
- .queryParam("query", query);
- // Execute the REST request
- ClientResponse clientResponse = webResource
- .accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
- String uniProtTabDelimittedResponseString = clientResponse
- .getEntity(String.class);
- // Make redundant objects eligible for garbage collection to conserve
- // memory
- clientResponse = null;
- client = null;
- // System.out.println(">>>>> response : "
- // + uniProtTabDelimittedResponseString);
- return parseUniprotResponse(uniProtTabDelimittedResponseString,
- uniportRestRequest);
+ }
+ int xTotalResults = Platform.isJS() ? 1
+ : Integer.valueOf(clientResponse.getHeaders()
+ .get("X-Total-Results").get(0));
+ clientResponse = null;
+ client = null;
+ return parseUniprotResponse(uniProtTabDelimittedResponseString,
+ uniprotRestRequest, xTotalResults);
+ } catch (Exception e)
+ {
+ String exceptionMsg = e.getMessage();
+ if (exceptionMsg.contains("SocketException"))
+ {
+ // No internet connection
+ throw new Exception(MessageManager.getString(
+ "exception.unable_to_detect_internet_connection"));
+ }
+ else if (exceptionMsg.contains("UnknownHostException"))
+ {
+ // The server 'http://www.uniprot.org' is unreachable
+ throw new Exception(MessageManager.formatMessage(
+ "exception.fts_server_unreachable", "Uniprot"));
+ }
+ else
+ {
+ throw e;
+ }
+ }
+ }