Class | Line # | Actions | |||
---|---|---|---|---|---|
DbSourceProxy | 37 | 0 | 0 |
1 | /* | |
2 | * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) | |
3 | * Copyright (C) $$Year-Rel$$ The Jalview Authors | |
4 | * | |
5 | * This file is part of Jalview. | |
6 | * | |
7 | * Jalview is free software: you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation, either version 3 | |
10 | * of the License, or (at your option) any later version. | |
11 | * | |
12 | * Jalview is distributed in the hope that it will be useful, but | |
13 | * WITHOUT ANY WARRANTY; without even the implied warranty | |
14 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
15 | * PURPOSE. See the GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with Jalview. If not, see <http://www.gnu.org/licenses/>. | |
19 | * The Jalview Authors are detailed in the 'AUTHORS' file. | |
20 | */ | |
21 | package jalview.ws.seqfetcher; | |
22 | ||
23 | import jalview.api.FeatureSettingsModelI; | |
24 | import jalview.datamodel.AlignmentI; | |
25 | ||
26 | import com.stevesoft.pat.Regex; | |
27 | ||
28 | /** | |
29 | * generic Reference Retrieval interface for a particular database | |
30 | * source/version as cited in DBRefEntry. | |
31 | * | |
32 | * TODO: add/define mechanism for retrieval of Trees and distance matrices from | |
33 | * a database (unify with io) | |
34 | * | |
35 | * @author JimP | |
36 | */ | |
37 | public interface DbSourceProxy | |
38 | { | |
39 | /** | |
40 | * | |
41 | * @return source string constant used for this DB source | |
42 | */ | |
43 | String getDbSource(); | |
44 | ||
45 | /** | |
46 | * Short meaningful name for this data source for display in menus or | |
47 | * selection boxes. | |
48 | * | |
49 | * @return String | |
50 | */ | |
51 | String getDbName(); | |
52 | ||
53 | /** | |
54 | * | |
55 | * @return version string for this database. | |
56 | */ | |
57 | String getDbVersion(); | |
58 | ||
59 | /** | |
60 | * Separator between individual accession queries for a database that allows | |
61 | * multiple IDs to be fetched in a single query. Null implies that only a | |
62 | * single ID can be fetched at a time. | |
63 | * | |
64 | * @return string for separating concatenated queries (as individually | |
65 | * validated by the accession validator) | |
66 | */ | |
67 | String getAccessionSeparator(); | |
68 | ||
69 | /** | |
70 | * Regular expression for checking form of query string understood by this | |
71 | * source. If the Regex includes parenthesis, then the first parenthesis | |
72 | * should yield the same accession string as the one used to annotate the | |
73 | * sequence. This is used to match query strings to returned sequences. | |
74 | * | |
75 | * @return null or a validation regex | |
76 | */ | |
77 | Regex getAccessionValidator(); | |
78 | ||
79 | /** | |
80 | * | |
81 | * @return a test/example query that can be used to validate retrieval and | |
82 | * parsing mechanisms | |
83 | */ | |
84 | String getTestQuery(); | |
85 | ||
86 | /** | |
87 | * Required for sources supporting multiple query retrieval for use with the | |
88 | * DBRefFetcher, which attempts to limit its queries with putative accession | |
89 | * strings for a source to only those that are likely to be valid. | |
90 | * | |
91 | * @param accession | |
92 | * @return | |
93 | */ | |
94 | boolean isValidReference(String accession); | |
95 | ||
96 | /** | |
97 | * make one or more queries to the database and attempt to parse the response | |
98 | * into an alignment | |
99 | * | |
100 | * @param queries | |
101 | * - one or more queries for database in expected form | |
102 | * @return null if queries were successful but result was not parsable. | |
103 | * Otherwise, an AlignmentI object containing properly annotated data | |
104 | * (e.g. sequences with accessions for this datasource) | |
105 | * @throws Exception | |
106 | * - propagated from underlying transport to database (note - | |
107 | * exceptions are not raised if query not found in database) | |
108 | * | |
109 | */ | |
110 | AlignmentI getSequenceRecords(String queries) throws Exception; | |
111 | ||
112 | /** | |
113 | * | |
114 | * @return true if a query is currently being made | |
115 | */ | |
116 | boolean queryInProgress(); | |
117 | ||
118 | /** | |
119 | * get the raw reponse from the last set of queries | |
120 | * | |
121 | * @return one or more string buffers for each individual query | |
122 | */ | |
123 | StringBuffer getRawRecords(); | |
124 | ||
125 | /** | |
126 | * Tier for this data source | |
127 | * | |
128 | * @return 0 - primary datasource, 1 - das primary source, 2 - secondary | |
129 | */ | |
130 | int getTier(); | |
131 | ||
132 | /** | |
133 | * Extracts valid accession strings from a query string. If there is an | |
134 | * accession id validator, returns the the matched region or the first | |
135 | * subgroup match from the matched region; else just returns the whole query. | |
136 | * | |
137 | * @param query | |
138 | * @return | |
139 | */ | |
140 | String getAccessionIdFromQuery(String query); | |
141 | ||
142 | /** | |
143 | * Returns the maximum number of accession ids that can be queried in one | |
144 | * request. | |
145 | * | |
146 | * @return | |
147 | */ | |
148 | int getMaximumQueryCount(); | |
149 | ||
150 | /** | |
151 | * Returns true if the source may provide coding DNA i.e. sequences with | |
152 | * implicit peptide products | |
153 | * | |
154 | * @return | |
155 | */ | |
156 | boolean isDnaCoding(); | |
157 | ||
158 | /** | |
159 | * Answers true if the database is a source of alignments (for example, domain | |
160 | * families) | |
161 | * | |
162 | * @return | |
163 | */ | |
164 | boolean isAlignmentSource(); | |
165 | ||
166 | /** | |
167 | * Returns an (optional) description of the source, suitable for display as a | |
168 | * tooltip, or null | |
169 | * | |
170 | * @return | |
171 | */ | |
172 | String getDescription(); | |
173 | ||
174 | /** | |
175 | * Returns the preferred feature colour configuration if there is one, else | |
176 | * null | |
177 | * | |
178 | * @return | |
179 | */ | |
180 | FeatureSettingsModelI getFeatureColourScheme(); | |
181 | } |