JAL-3615 used gzip endpoints for Pfam and Rfam
[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   /*
40    * append to URLs to retrieve as a gzipped file
41    */
42   public static final String GZIPPED = "?gz=1&download=1";
43
44   @Override
45   protected String getURLPrefix()
46   {
47     return Cache.getDefault(RFAM_BASEURL_KEY, DEFAULT_RFAM_BASEURL);
48   }
49
50   public Rfam()
51   {
52     super();
53   }
54
55   /*
56    * (non-Javadoc)
57    * 
58    * @see jalview.ws.DbSourceProxy#getAccessionSeparator() Left here for
59    * consistency with Pfam class
60    */
61   @Override
62   public String getAccessionSeparator()
63   {
64     return null;
65   }
66
67   /*
68    * (non-Javadoc)
69    * 
70    * @see jalview.ws.DbSourceProxy#getAccessionValidator() * Left here for
71    */
72   @Override
73   public Regex getAccessionValidator()
74   {
75     return null;
76   }
77
78   /*
79    * (non-Javadoc)
80    * 
81    * Left here for consistency with Pfam class
82    * 
83    * @see jalview.ws.DbSourceProxy#getDbSource() public String getDbSource() { *
84    * this doesn't work - DbSource is key for the hash of DbSourceProxy instances
85    * - 1:many mapping for DbSource to proxy will be lost. * suggest : RFAM is an
86    * 'alignment' source - means proxy is higher level than a sequence source.
87    * return jalview.datamodel.DBRefSource.RFAM; }
88    */
89
90   /*
91    * (non-Javadoc)
92    * 
93    * @see jalview.ws.DbSourceProxy#getDbVersion()
94    */
95   @Override
96   public String getDbVersion()
97   {
98     return null;
99   }
100
101   /*
102    * (non-Javadoc)
103    * 
104    * @see jalview.ws.DbSourceProxy#isValidReference(java.lang.String)
105    */
106   @Override
107   public boolean isValidReference(String accession)
108   {
109     return accession.indexOf("RF") == 0;
110   }
111
112   /*
113    * (non-Javadoc)
114    * 
115    * @see jalview.ws.dbsources.Xfam#getXfamSource()
116    */
117   @Override
118   public String getXfamSource()
119   {
120     return DBRefSource.RFAM;
121   }
122
123 }