package jalview.fts.service.threedbeacons; import java.util.Map; import java.util.Objects; import jalview.fts.api.FTSData; /** * TDB result bean - holds filtered fields for GUI and essential metadata fields * for back end * * @author jprocter * */ public class TDB_FTSData implements FTSData { String primaryKey; Object[] summaryRowData; /* * fields in the JSON object */ public static String Uniprot_Id= "id"; public static String Uniprot_Start= "uniprot_start"; public static String Uniprot_End= "uniprot_end"; public static String Provider= "provider"; public static String Model_id= "model_identifier"; public static String Model_Category= "model_category"; public static String Model_Type= "model_type"; public static String Model_Title="model_title"; public static String Resolution= "resolution"; public static String Confidence= "confidence_avg_local_score"; public static String Confidence_Score_Type= "confidence_type"; public static String Confidence_Score_Version= "confidence_version"; public static String Coverage= "coverage"; public static String Sequence_Identity= "sequence_identity"; public static String Created_Date= "created"; public static String UniProt_Accession= "uniprot_accession"; public static String Url= "model_url"; public static String Page_URL= "model_page_url"; public static String Ensemble_Sample_Url= "ensembl_sample_url"; /** * original response from server */ Map tdb_entry; public TDB_FTSData(String primaryKey, Map tdbJsonStructure, Object[] summaryData) { this.primaryKey = primaryKey; tdb_entry = tdbJsonStructure; this.summaryRowData = summaryData; } public Object getField(String key) { return tdb_entry.get(key); } @Override public Object[] getSummaryData() { return summaryRowData; } @Override public Object getPrimaryKey() { return primaryKey; } /** * Returns a string representation of this object; */ @Override public String toString() { StringBuilder summaryFieldValues = new StringBuilder(); for (Object summaryField : summaryRowData) { 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(primaryKey, this.toString()); } @Override public boolean equals(Object that) { return this.toString().equals(that.toString()); } public String getProvider() { return (String) getField(Provider); } public String getModelViewUrl() { return (String) getField(Page_URL); } }