X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSRestClient.java;h=d8ab7de02f422433241aa52fc2d052088d32873a;hb=f7124dc8d666e958ad9925e846e5f46932838bf8;hp=cbeaff157a9bf66f38e67e15b5400614180089dc;hpb=504b9bf9450187df0937d8a1be03c3680e739dc9;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSRestClient.java b/src/jalview/fts/service/pdb/PDBFTSRestClient.java index cbeaff1..d8ab7de 100644 --- a/src/jalview/fts/service/pdb/PDBFTSRestClient.java +++ b/src/jalview/fts/service/pdb/PDBFTSRestClient.java @@ -29,6 +29,7 @@ import jalview.fts.core.FTSRestRequest; import jalview.fts.core.FTSRestResponse; import jalview.util.MessageManager; +import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -42,15 +43,24 @@ import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +//import jalview.javascript.web.Client; +//import jalview.javascript.web.ClientResponse; +//import jalview.javascript.web.WebResource; + 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; /** * A rest client for querying the Search endpoint of the PDB API * + * BH 2018: just a tiny tweak here - for SwingJS, we coerce the classes to be + * from jalview.javascript.web instead of com.sun.jersey.api.client + * + * * @author tcnofoegbu * */ @@ -73,14 +83,15 @@ public class PDBFTSRestClient extends FTSRestClient * @return the pdbResponse object for the given request * @throws Exception */ + @SuppressWarnings({ "unused", "unchecked" }) @Override public FTSRestResponse executeRequest(FTSRestRequest pdbRestRequest) throws Exception { try { - ClientConfig clientConfig = new DefaultClientConfig(); - Client client = Client.create(clientConfig); + Client client; + WebResource webResource; String wantedFields = getDataColumnsFieldsAsCommaDelimitedString( pdbRestRequest.getWantedFields()); @@ -123,7 +134,24 @@ public class PDBFTSRestClient extends FTSRestClient : " AND status:REL"); // Build request parameters for the REST Request - WebResource webResource = null; + + // 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 + Class clientResponseClass; + if (/** @j2sNative true || */ + false) + { + // 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; + } + if (pdbRestRequest.isFacet()) { webResource = client.resource(PDB_SEARCH_ENDPOINT) @@ -143,9 +171,12 @@ public class PDBFTSRestClient extends FTSRestClient .queryParam("start", String.valueOf(offSet)) .queryParam("q", query).queryParam("sort", sortParam); } + + URI uri = webResource.getURI(); + // Execute the REST request ClientResponse clientResponse = webResource - .accept(MediaType.APPLICATION_JSON).get(ClientResponse.class); + .accept(MediaType.APPLICATION_JSON).get(clientResponseClass ); // Get the JSON string from the response object String responseString = clientResponse.getEntity(String.class); @@ -209,6 +240,26 @@ public class PDBFTSRestClient extends FTSRestClient StringBuilder errorMessage = new StringBuilder( "\n============= PDB Rest Client RunTime error =============\n"); + +// { +// "responseHeader":{ +// "status":0, +// "QTime":0, +// "params":{ +// "q":"(text:q93xj9_soltu) AND molecule_sequence:['' TO *] AND status:REL", +// "fl":"pdb_id,title,experimental_method,resolution", +// "start":"0", +// "sort":"overall_quality desc", +// "rows":"500", +// "wt":"json"}}, +// "response":{"numFound":1,"start":0,"docs":[ +// { +// "experimental_method":["X-ray diffraction"], +// "pdb_id":"4zhp", +// "resolution":2.46, +// "title":"The crystal structure of Potato ferredoxin I with 2Fe-2S cluster"}] +// }} +// try { JSONParser jsonParser = new JSONParser(); @@ -426,4 +477,30 @@ public class PDBFTSRestClient extends FTSRestClient } return allDefaultDisplayedStructureDataColumns; } + + public static void main(String[] args) { + + + String s = "e"; + + + char c = 'c'; + char f = 'f'; + s += c | f; + int x = c&f; + int y = 2 & c; + int z = c ^ 5; + JSONParser jsonParser = new JSONParser(); + try + { + JSONObject jsonObj = (JSONObject) jsonParser.parse("{\"a\":3}"); + System.out.println(jsonObj); + } catch (ParseException e) + { + e.printStackTrace(); + } + + } + + }