1d9d99ad2bcfc67937c16793c93c8ba92050ce26
[jalview.git] / src / jalview / ws / dbsources / Rfam.java
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.dbsources;
22
23 import jalview.bin.Cache;
24 import jalview.datamodel.DBRefSource;
25
26 import com.stevesoft.pat.Regex;
27
28 /**
29  * Contains methods for fetching sequences from Rfam database
30  * 
31  * @author Lauren Michelle Lui
32  */
33 abstract public class Rfam extends Xfam
34 {
35   static final String RFAM_BASEURL_KEY = "RFAM_BASEURL";
36
37   private static final String DEFAULT_RFAM_BASEURL = "https://rfam.xfam.org";
38
39   @Override
40   protected String getURLPrefix()
41   {
42     return Cache.getDefault(RFAM_BASEURL_KEY, DEFAULT_RFAM_BASEURL);
43   }
44
45   public Rfam()
46   {
47     super();
48   }
49
50   /*
51    * (non-Javadoc)
52    * 
53    * @see jalview.ws.DbSourceProxy#getAccessionSeparator() Left here for
54    * consistency with Pfam class
55    */
56   @Override
57   public String getAccessionSeparator()
58   {
59     return null;
60   }
61
62   /*
63    * (non-Javadoc)
64    * 
65    * @see jalview.ws.DbSourceProxy#getAccessionValidator() * Left here for
66    */
67   @Override
68   public Regex getAccessionValidator()
69   {
70     return null;
71   }
72
73   /*
74    * (non-Javadoc)
75    * 
76    * Left here for consistency with Pfam class
77    * 
78    * @see jalview.ws.DbSourceProxy#getDbSource() public String getDbSource() { *
79    * this doesn't work - DbSource is key for the hash of DbSourceProxy instances
80    * - 1:many mapping for DbSource to proxy will be lost. * suggest : RFAM is an
81    * 'alignment' source - means proxy is higher level than a sequence source.
82    * return jalview.datamodel.DBRefSource.RFAM; }
83    */
84
85   /*
86    * (non-Javadoc)
87    * 
88    * @see jalview.ws.DbSourceProxy#getDbVersion()
89    */
90   @Override
91   public String getDbVersion()
92   {
93     return null;
94   }
95
96   /*
97    * (non-Javadoc)
98    * 
99    * @see jalview.ws.DbSourceProxy#isValidReference(java.lang.String)
100    */
101   @Override
102   public boolean isValidReference(String accession)
103   {
104     return accession.indexOf("RF") == 0;
105   }
106
107   /*
108    * (non-Javadoc)
109    * 
110    * @see jalview.ws.dbsources.Xfam#getXfamSource()
111    */
112   @Override
113   public String getXfamSource()
114   {
115     return DBRefSource.RFAM;
116   }
117
118 }