X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fthreedbeacons%2FTDBeaconsFTSRestClient.java;fp=src%2Fjalview%2Ffts%2Fservice%2Fthreedbeacons%2FTDBeaconsFTSRestClient.java;h=e6d45e5a07de9d65b5967413ba111d1421229175;hb=f640efee12150d1ae174c64c936f4630716cb7c4;hp=1ee7f372f745b820f4a9c7e0657b1acc19c56188;hpb=fff909498fd8b1c6150b02afcd56dbccc2571c04;p=jalview.git diff --git a/src/jalview/fts/service/threedbeacons/TDBeaconsFTSRestClient.java b/src/jalview/fts/service/threedbeacons/TDBeaconsFTSRestClient.java index 1ee7f37..e6d45e5 100644 --- a/src/jalview/fts/service/threedbeacons/TDBeaconsFTSRestClient.java +++ b/src/jalview/fts/service/threedbeacons/TDBeaconsFTSRestClient.java @@ -6,6 +6,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import javax.ws.rs.core.MediaType; @@ -35,6 +36,10 @@ public class TDBeaconsFTSRestClient extends FTSRestClient private static FTSRestClientI instance = null; + protected TDBeaconsFTSRestClient() + { + } + @SuppressWarnings("unchecked") @Override public FTSRestResponse executeRequest(FTSRestRequest tdbRestRequest) @@ -48,6 +53,7 @@ public class TDBeaconsFTSRestClient extends FTSRestClient int responseSize = (tdbRestRequest.getResponseSize() == 0) ? getDefaultResponsePageSize() : tdbRestRequest.getResponseSize(); + //int offSet = pdbRestRequest.getOffSet(); String query = tdbRestRequest.getFieldToSearchBy() + tdbRestRequest.getSearchTerm(); @@ -70,7 +76,9 @@ public class TDBeaconsFTSRestClient extends FTSRestClient } WebResource webResource; webResource = client.resource(DEFAULT_THREEDBEACONS_DOMAIN) - .queryParam("P",query); + .queryParam("ac", query); +// .queryParam("rows", String.valueOf(responseSize)) +// .queryParam("P",query); URI uri = webResource.getURI(); System.out.println(uri); @@ -132,6 +140,10 @@ public class TDBeaconsFTSRestClient extends FTSRestClient } + public String setSearchTerm() { + return null; + } + public static FTSRestResponse parseTDBeaconsJsonResponse( String tdbJsonResponseString, FTSRestRequest tdbRestRequest) { @@ -153,35 +165,25 @@ public class TDBeaconsFTSRestClient extends FTSRestClient { jsonObj = (Map) JSONUtils.parse(tdbJsonResponseString); } - Map tdbEntry = (Map) jsonObj.get("uniprot_entry"); + //Map tdbResponse = (Map) jsonObj.get("structures"); //String seqLength = tdbEntry.get("sequence_length").toString(); - int seqLength = Integer.valueOf(tdbEntry.get("sequence_length").toString()); + //int seqLength = Integer.valueOf(tdbEntry.get("sequence_length").toString()); - // tdbStructures is the list of found structures -// Map tdbStructures = (Map) jsonObj.get("structures"); - Object[] structures = (Object[]) jsonObj.get("structures"); - String accessName = ((Map) jsonObj.get("uniprot_entry")) - .get("ac").toString(); - // this is to be modified - int numFound = structures.length; -// if (numFound > 0) -// { -// -// result = new ArrayList<>(); -// List models; -// //= ((Map) jsonObj.get("structures")) -// //.get("model_identifier").toString(); -// for (Iterator modelsIter = models.iterator(); modelsIter.hasNext();) -// .hasNext();) -// { -// Map doc = (Map) docIter.next(); -// result.add(getFTSData(doc, tdbRestRequest)); -// } + int seqLength = (int) ((Map) jsonObj.get("uniprot_entry")).get("sequence_length"); + result = new ArrayList<>(); + List structures = (List) jsonObj.get("structures"); + int numFound = 0; + for (Iterator strucIter = structures.iterator(); strucIter + .hasNext();) + { + Map structure = (Map) strucIter.next(); + result.add(getFTSData(structure, tdbRestRequest)); + numFound++; + } searchResult.setNumberOfItemsFound(numFound); - // searchResult.setAccessionName(accessName); ?usefulness? -// searchResult.setSearchSummary(result); -// -// } + searchResult.setSearchSummary(result); + searchResult.setSequenceLength(seqLength); + } catch (ParseException e) { e.printStackTrace(); @@ -189,6 +191,96 @@ public class TDBeaconsFTSRestClient extends FTSRestClient return searchResult; } +private static FTSData getFTSData(Map tdbJsonStructure, + FTSRestRequest tdbRequest) + { + // TODO Auto-generated method stub + String primaryKey = null; + Object[] summaryRowData; + Collection displayFields = tdbRequest.getWantedFields(); + int colCounter = 0; + summaryRowData = new Object[displayFields.size()]; + for (FTSDataColumnI field : displayFields) { + String fieldData = (tdbJsonStructure.get(field.getCode()) == null) ? " " + : tdbJsonStructure.get(field.getCode()).toString(); + if (field.isPrimaryKeyColumn()) + { + primaryKey = fieldData; + summaryRowData[colCounter++] = primaryKey; + } + else if (fieldData == null || fieldData.isEmpty()) + { + summaryRowData[colCounter++] = null; + } + else + { + try + { + summaryRowData[colCounter++] = (field.getDataType() + .getDataTypeClass() == Integer.class) + ? Integer.valueOf(fieldData) + : (field.getDataType() + .getDataTypeClass() == Double.class) + ? Double.valueOf(fieldData) + : fieldData; + } catch (Exception e) + { + e.printStackTrace(); + System.out.println("offending value:" + fieldData); + } + } + } + final String primaryKey1 = primaryKey; + final Object[] summaryRowData1 = summaryRowData; + + return new FTSData() + { + + @Override + public Object[] getSummaryData() + { + return summaryRowData1; + } + + @Override + public Object getPrimaryKey() + { + return primaryKey1; + } + + /** + * Returns a string representation of this object; + */ + @Override + public String toString() + { + StringBuilder summaryFieldValues = new StringBuilder(); + for (Object summaryField : summaryRowData1) + { + summaryFieldValues.append( + summaryField == null ? " " : summaryField.toString()) + .append("\t"); + } + return summaryFieldValues.toString(); + } + + /** + * Returns hash code value for this object + */ + @Override + public int hashCode() + { + return Objects.hash(primaryKey1, this.toString()); + } + + @Override + public boolean equals(Object that) + { + return this.toString().equals(that.toString()); + } + }; + } + // private static FTSData getFTSData(Map doc, // FTSRestRequest tdbRestRequest) // {