X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSRestClient.java;h=313f0b6b985f79cb6618f4b5edab9afc3e9497c6;hb=55ea4d59b2f4ce51f8310047dd1f8898697dde0c;hp=0b5d431b57ac91010a85e2455999e53f1c3e0b51;hpb=577b0bf651763fe609eb6d6343754662023b3eac;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSRestClient.java b/src/jalview/fts/service/pdb/PDBFTSRestClient.java index 0b5d431..313f0b6 100644 --- a/src/jalview/fts/service/pdb/PDBFTSRestClient.java +++ b/src/jalview/fts/service/pdb/PDBFTSRestClient.java @@ -20,17 +20,6 @@ */ package jalview.fts.service.pdb; -import jalview.datamodel.SequenceI; -import jalview.fts.api.FTSData; -import jalview.fts.api.FTSDataColumnI; -import jalview.fts.api.FTSRestClientI; -import jalview.fts.core.FTSRestClient; -import jalview.fts.core.FTSRestRequest; -import jalview.fts.core.FTSRestResponse; -import jalview.util.JSONUtils; -import jalview.util.MessageManager; -import jalview.util.Platform; - import java.net.URI; import java.util.ArrayList; import java.util.Collection; @@ -48,12 +37,26 @@ import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.DefaultClientConfig; +import jalview.datamodel.SequenceI; +import jalview.fts.api.FTSData; +import jalview.fts.api.FTSDataColumnI; +import jalview.fts.api.FTSRestClientI; +import jalview.fts.api.StructureFTSRestClientI; +import jalview.fts.core.FTSDataColumnPreferences; +import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource; +import jalview.fts.core.FTSRestClient; +import jalview.fts.core.FTSRestRequest; +import jalview.fts.core.FTSRestResponse; +import jalview.util.JSONUtils; +import jalview.util.MessageManager; +import jalview.util.Platform; + /** * A rest client for querying the Search endpoint of the PDB API * * @author tcnofoegbu */ -public class PDBFTSRestClient extends FTSRestClient +public class PDBFTSRestClient extends FTSRestClient implements StructureFTSRestClientI { private static FTSRestClientI instance = null; @@ -171,35 +174,34 @@ public class PDBFTSRestClient extends FTSRestClient ClientResponse clientResponse = webResource .accept(MediaType.APPLICATION_JSON).get(clientResponseClass ); - int status = clientResponse.getStatus(); - // Get the JSON string from the response object or directly from the // client (JavaScript) - Map jsonObj = (status == 200 - ? clientResponse.getEntity(Map.class) - : null); - String responseString = (jsonObj == null - ? clientResponse.getEntity(String.class) - : null); + Map jsonObj = null; + String responseString = null; - // System.out.println("query >>>>>>> " + pdbRestRequest.toString()); + System.out.println("query >>>>>>> " + pdbRestRequest.toString()); // Check the response status and report exception if one occurs - switch (status) + int responseStatus = clientResponse.getStatus(); + switch (responseStatus) { case 200: + if (Platform.isJS()) + { + jsonObj = clientResponse.getEntity(Map.class); + } + else + { + responseString = clientResponse.getEntity(String.class); + } break; case 400: throw new Exception(parseJsonExceptionString(responseString)); default: - throw new Exception(getMessageByHTTPStatusCode(status, "PDB")); + throw new Exception( + getMessageByHTTPStatusCode(responseStatus, "PDB")); } - // Make redundant objects eligible for garbage collection to conserve - // memory - clientResponse = null; - client = null; - // Process the response and return the result to the caller. return parsePDBJsonResponse(responseString, jsonObj, pdbRestRequest); } catch (Exception e) @@ -365,8 +367,10 @@ public static String parseJsonExceptionString(String jsonErrorResponse) for (FTSDataColumnI field : diplayFields) { + //System.out.println("Field " + field); String fieldData = (pdbJsonDoc.get(field.getCode()) == null) ? "" : pdbJsonDoc.get(field.getCode()).toString(); + //System.out.println("Field Data : " + fieldData); if (field.isPrimaryKeyColumn()) { primaryKey = fieldData; @@ -469,7 +473,7 @@ public static String parseJsonExceptionString(String jsonErrorResponse) } private Collection allDefaultDisplayedStructureDataColumns; - + @Override public Collection getAllDefaultDisplayedStructureDataColumns() { if (allDefaultDisplayedStructureDataColumns == null @@ -481,33 +485,24 @@ public static String parseJsonExceptionString(String jsonErrorResponse) } return allDefaultDisplayedStructureDataColumns; } - - @SuppressWarnings("unchecked") -public static void main(String[] args) { - - - // check for transpiler fix associated with JSONParser yylex.java use of charAt() - // instead of codePointAt() - - String s = "e"; - char c = 'c'; - char f = 'f'; - s += c | f; - int x = c&f; - int y = 2 & c; - int z = c ^ 5; - String result = s +x + y + z; - assert (result == "e103982102"); - try - { - Map jsonObj = (Map) JSONUtils.parse("{\"a\":3}"); - System.out.println(jsonObj); - } catch (ParseException e) + @Override + public String[] getPreferencesColumnsFor(PreferenceSource source) { + String[] columnNames = null; + switch (source) { - e.printStackTrace(); + case SEARCH_SUMMARY: + columnNames = new String[] { "", "Display", "Group" }; + break; + case STRUCTURE_CHOOSER: + columnNames = new String[] { "", "Display", "Group" }; + break; + case PREFERENCES: + columnNames = new String[] { "PDB Field", "Show in search summary", + "Show in structure summary" }; + break; + default: + break; } - + return columnNames; } - - }