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