6745bb8f699fd38e456a780a41aa16201442a930
[jalview.git] / src / jalview / fts / service / threedbeacons / TDB_FTSData.java
1 package jalview.fts.service.threedbeacons;
2
3 import java.util.Map;
4 import java.util.Objects;
5
6 import jalview.fts.api.FTSData;
7
8 /**
9  * TDB result bean - holds filtered fields for GUI and essential metadata fields
10  * for back end
11  * 
12  * @author jprocter
13  *
14  */
15 public class TDB_FTSData implements FTSData
16 {
17   String primaryKey;
18
19   Object[] summaryRowData;
20
21   /*
22    * fields in the JSON object 
23    */
24   public static String Uniprot_Id= "id";
25   public static String Uniprot_Start= "uniprot_start";
26   public static String Uniprot_End= "uniprot_end";
27   public static String Provider= "provider";
28   public static String Model_id= "model_identifier";
29   public static String Model_Category= "model_category";
30   public static String Model_Type= "model_type";
31   public static String Model_Title="model_title";
32   public static String Resolution= "resolution";
33   public static String Confidence= "confidence_avg_local_score";
34   public static String Confidence_Score_Type= "confidence_type";
35   public static String Confidence_Score_Version= "confidence_version";
36   public static String Coverage= "coverage";
37   public static String Sequence_Identity= "sequence_identity";
38   public static String Created_Date= "created";
39   public static String UniProt_Accession= "uniprot_accession";
40   public static String Url= "model_url";
41   public static String Page_URL= "model_page_url";
42   public static String Ensemble_Sample_Url= "ensembl_sample_url";
43
44   /**
45    * original response from server
46    */
47   Map<String, Object> tdb_entry;
48
49   public TDB_FTSData(String primaryKey,
50           Map<String, Object> tdbJsonStructure, Object[] summaryData)
51   {
52     this.primaryKey = primaryKey;
53     tdb_entry = tdbJsonStructure;
54     this.summaryRowData = summaryData;
55   }
56
57   public Object getField(String key)
58   {
59     return tdb_entry.get(key);
60   }
61
62   @Override
63   public Object[] getSummaryData()
64   {
65     return summaryRowData;
66   }
67
68   @Override
69   public Object getPrimaryKey()
70   {
71     return primaryKey;
72   }
73
74   /**
75    * Returns a string representation of this object;
76    */
77   @Override
78   public String toString()
79   {
80     StringBuilder summaryFieldValues = new StringBuilder();
81     for (Object summaryField : summaryRowData)
82     {
83       summaryFieldValues
84               .append(summaryField == null ? " " : summaryField.toString())
85               .append("\t");
86     }
87     return summaryFieldValues.toString();
88   }
89
90   /**
91    * Returns hash code value for this object
92    */
93   @Override
94   public int hashCode()
95   {
96     return Objects.hash(primaryKey, this.toString());
97   }
98
99   @Override
100   public boolean equals(Object that)
101   {
102     return this.toString().equals(that.toString());
103   }
104
105   public String getProvider()
106   {
107     return (String) getField(Provider);
108   }
109
110   public String getModelViewUrl()
111   {
112     return (String) getField(Page_URL);
113   }
114
115   public String getModelId()
116   {
117     return (String) getField(Model_id);
118   }
119
120 }