X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSRestClient.java;h=06bf55b39c677a691955a0ed8c9e1531c25ac4fd;hb=3e6ab0cb043dd49393bf8a9cb6d79098d5a6b6a5;hp=28e06d234ca3a2f24dcf5cad9de814ff8e7c8fcb;hpb=c58dcb6d4f1a6db1ef21a704fc3581a8741b81d7;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSRestClient.java b/src/jalview/fts/service/pdb/PDBFTSRestClient.java index 28e06d2..06bf55b 100644 --- a/src/jalview/fts/service/pdb/PDBFTSRestClient.java +++ b/src/jalview/fts/service/pdb/PDBFTSRestClient.java @@ -86,6 +86,7 @@ public class PDBFTSRestClient extends FTSRestClient .getWantedFields()); int responseSize = (pdbRestRequest.getResponseSize() == 0) ? getDefaultResponsePageSize() : pdbRestRequest.getResponseSize(); + int offSet = pdbRestRequest.getOffSet(); String sortParam = null; if (pdbRestRequest.getFieldToSortBy() == null || pdbRestRequest.getFieldToSortBy().trim().isEmpty()) @@ -128,6 +129,7 @@ public class PDBFTSRestClient extends FTSRestClient .queryParam("wt", "json").queryParam("fl", wantedFields) .queryParam("rows", String.valueOf(responseSize)) .queryParam("q", query) + .queryParam("start", String.valueOf(offSet)) .queryParam("sort", sortParam).queryParam("facet", "true") .queryParam("facet.pivot", facetPivot) .queryParam("facet.pivot.mincount", facetPivotMinCount); @@ -137,8 +139,8 @@ public class PDBFTSRestClient extends FTSRestClient webResource = client.resource(PDB_SEARCH_ENDPOINT) .queryParam("wt", "json").queryParam("fl", wantedFields) .queryParam("rows", String.valueOf(responseSize)) - .queryParam("q", query) - .queryParam("sort", sortParam); + .queryParam("start", String.valueOf(offSet)) + .queryParam("q", query).queryParam("sort", sortParam); } // Execute the REST request ClientResponse clientResponse = webResource.accept( @@ -159,8 +161,8 @@ public class PDBFTSRestClient extends FTSRestClient } else { - errorMessage = getMessageByHTTPStatusCode(clientResponse - .getStatus()); + errorMessage = getMessageByHTTPStatusCode( + clientResponse.getStatus(), "PDB"); throw new Exception(errorMessage); } } @@ -185,9 +187,8 @@ public class PDBFTSRestClient extends FTSRestClient else if (exceptionMsg.contains("UnknownHostException")) { // The server 'www.ebi.ac.uk' is unreachable - throw new Exception( - MessageManager - .getString("exception.pdb_server_unreachable")); + throw new Exception(MessageManager.formatMessage( + "exception.fts_server_unreachable", "PDB Solr")); } else { @@ -196,36 +197,6 @@ public class PDBFTSRestClient extends FTSRestClient } } - public String getMessageByHTTPStatusCode(int code) - { - String message = ""; - switch (code) - { - case 410: - message = MessageManager - .getString("exception.pdb_rest_service_no_longer_available"); - break; - case 403: - case 404: - message = MessageManager.getString("exception.resource_not_be_found"); - break; - case 408: - case 409: - case 500: - case 501: - case 502: - case 503: - case 504: - case 505: - message = MessageManager.getString("exception.pdb_server_error"); - break; - - default: - break; - } - return message; - } - /** * Process error response from PDB server if/when one occurs. * @@ -353,15 +324,15 @@ public class PDBFTSRestClient extends FTSRestClient { try { - summaryRowData[colCounter++] = (field.getDataColumnClass() == Integer.class) ? Integer - .valueOf(fieldData) - : (field.getDataColumnClass() == Double.class) ? Double - .valueOf(fieldData) - : fieldData; + summaryRowData[colCounter++] = (field.getDataType() + .getDataTypeClass() == Integer.class) ? Integer + .valueOf(fieldData) : (field.getDataType() + .getDataTypeClass() == Double.class) ? Double + .valueOf(fieldData) : sanitiseData(fieldData); } catch (Exception e) { e.printStackTrace(); - System.out.println("offending value:" + fieldData); + System.out.println("offending value:" + fieldData); } } } @@ -407,16 +378,29 @@ public class PDBFTSRestClient extends FTSRestClient { return Objects.hash(primaryKey1, this.toString()); } + + @Override + public boolean equals(Object that) + { + return this.toString().equals(that.toString()); + } }; } + private static String sanitiseData(String data) + { + String cleanData = data.replaceAll("\\[\"", "").replaceAll("\\]\"", "") + .replaceAll("\\[", "").replaceAll("\\]", "") + .replaceAll("\",\"", ", ").replaceAll("\"", ""); + return cleanData; + } + @Override public String getColumnDataConfigFileName() { - return getResourceFile("/fts/pdb_data_columns.txt"); + return "/fts/pdb_data_columns.txt"; } - public static FTSRestClientI getInstance() { if (instance == null) @@ -425,4 +409,18 @@ public class PDBFTSRestClient extends FTSRestClient } return instance; } + + private Collection allDefaultDisplayedStructureDataColumns; + + public Collection getAllDefaultDisplayedStructureDataColumns() + { + if (allDefaultDisplayedStructureDataColumns == null + || allDefaultDisplayedStructureDataColumns.isEmpty()) + { + allDefaultDisplayedStructureDataColumns = new ArrayList(); + allDefaultDisplayedStructureDataColumns.addAll(super + .getAllDefaultDisplayedFTSDataColumns()); + } + return allDefaultDisplayedStructureDataColumns; + } }