701c1f27410f7cd64e6d5b1d96feb6c9e2c9e053
[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
26   public static String Uniprot_Start = "uniprot_start";
27
28   public static String Uniprot_End = "uniprot_end";
29
30   public static String Provider = "provider";
31
32   public static String Model_id = "model_identifier";
33
34   public static String Model_Category = "model_category";
35
36   public static String Model_Type = "model_type";
37
38   public static String Model_Title = "model_title";
39
40   public static String Resolution = "resolution";
41
42   public static String Confidence = "confidence_avg_local_score";
43
44   public static String Confidence_Score_Type = "confidence_type";
45
46   public static String Confidence_Score_Version = "confidence_version";
47
48   public static String Coverage = "coverage";
49
50   public static String Sequence_Identity = "sequence_identity";
51
52   public static String Created_Date = "created";
53
54   public static String UniProt_Accession = "uniprot_accession";
55
56   public static String Url = "model_url";
57
58   public static String Page_URL = "model_page_url";
59
60   public static String Ensemble_Sample_Url = "ensembl_sample_url";
61
62   /**
63    * original response from server
64    */
65   Map<String, Object> tdb_entry;
66
67   public TDB_FTSData(String primaryKey,
68           Map<String, Object> tdbJsonStructure, Object[] summaryData)
69   {
70     this.primaryKey = primaryKey;
71     tdb_entry = tdbJsonStructure;
72     this.summaryRowData = summaryData;
73   }
74
75   public Object getField(String key)
76   {
77     return tdb_entry.get(key);
78   }
79
80   @Override
81   public Object[] getSummaryData()
82   {
83     return summaryRowData;
84   }
85
86   @Override
87   public Object getPrimaryKey()
88   {
89     return primaryKey;
90   }
91
92   /**
93    * Returns a string representation of this object;
94    */
95   @Override
96   public String toString()
97   {
98     StringBuilder summaryFieldValues = new StringBuilder();
99     for (Object summaryField : summaryRowData)
100     {
101       summaryFieldValues
102               .append(summaryField == null ? " " : summaryField.toString())
103               .append("\t");
104     }
105     return summaryFieldValues.toString();
106   }
107
108   /**
109    * Returns hash code value for this object
110    */
111   @Override
112   public int hashCode()
113   {
114     return Objects.hash(primaryKey, this.toString());
115   }
116
117   @Override
118   public boolean equals(Object that)
119   {
120     return this.toString().equals(that.toString());
121   }
122
123   public String getProvider()
124   {
125     return (String) getField(Provider);
126   }
127
128   public String getModelViewUrl()
129   {
130     return (String) getField(Page_URL);
131   }
132
133   public String getModelId()
134   {
135     return (String) getField(Model_id);
136   }
137
138 }