*/
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;
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;
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<String, Object> jsonObj = (status == 200
- ? clientResponse.getEntity(Map.class)
- : null);
- String responseString = (jsonObj == null
- ? clientResponse.getEntity(String.class)
- : null);
+ Map<String, Object> 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)
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;
}
private Collection<FTSDataColumnI> allDefaultDisplayedStructureDataColumns;
-
+ @Override
public Collection<FTSDataColumnI> getAllDefaultDisplayedStructureDataColumns()
{
if (allDefaultDisplayedStructureDataColumns == null
}
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<String, Object> jsonObj = (Map<String, Object>) 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;
}
-
-
}