JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / ws / dbsources / das / api / jalviewSourceI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
3  * Copyright (C) 2015 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.dbsources.das.api;
22
23 import jalview.ws.seqfetcher.DbSourceProxy;
24
25 import java.util.List;
26
27 import org.biodas.jdas.schema.sources.MAINTAINER;
28 import org.biodas.jdas.schema.sources.VERSION;
29
30 public interface jalviewSourceI
31 {
32
33   String getTitle();
34
35   VERSION getVersion();
36
37   String getDocHref();
38
39   String getDescription();
40
41   String getUri();
42
43   MAINTAINER getMAINTAINER();
44
45   String getEmail();
46
47   boolean isLocal();
48
49   boolean isSequenceSource();
50
51   String[] getCapabilityList(VERSION v);
52
53   String[] getLabelsFor(VERSION v);
54
55   /**
56    * 
57    * @return null if not a sequence source, otherwise a series of database
58    *         sources that can be used to retrieve sequence data for particular
59    *         database coordinate systems
60    */
61   List<DbSourceProxy> getSequenceSourceProxies();
62
63   boolean isFeatureSource();
64
65   /**
66    * returns the base URL for the latest version of a source's DAS endpoint set
67    * 
68    * @return
69    */
70   String getSourceURL();
71
72   /**
73    * test to see if this source's latest version is older than the given source
74    * 
75    * @param jalviewSourceI
76    * @return true if newer than given source
77    */
78   boolean isNewerThan(jalviewSourceI jalviewSourceI);
79
80   /**
81    * test if the source is a reference source for the authority
82    * 
83    * @return
84    */
85   boolean isReferenceSource();
86
87 }