JAL-2089 patch broken merge to master for Release 2.10.0b1
[jalview.git] / src / jalview / ws / dbsources / EmblCdsSource.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.datamodel.AlignmentI;
24 import jalview.datamodel.DBRefSource;
25
26 import com.stevesoft.pat.Regex;
27
28 public class EmblCdsSource extends EmblXmlSource
29 {
30
31   public EmblCdsSource()
32   {
33     super();
34   }
35
36   @Override
37   public String getAccessionSeparator()
38   {
39     return null;
40   }
41
42   @Override
43   public Regex getAccessionValidator()
44   {
45     return new Regex("^[A-Z]+[0-9]+");
46   }
47
48   @Override
49   public String getDbSource()
50   {
51     return DBRefSource.EMBLCDS;
52   }
53
54   @Override
55   public String getDbVersion()
56   {
57     return "0"; // TODO : this is dynamically set for a returned record - not
58     // tied to proxy
59   }
60
61   @Override
62   public AlignmentI getSequenceRecords(String queries) throws Exception
63   {
64     if (queries.indexOf(".") > -1)
65     {
66       queries = queries.substring(0, queries.indexOf("."));
67     }
68     return getEmblSequenceRecords(DBRefSource.EMBLCDS, queries);
69   }
70
71   @Override
72   public boolean isValidReference(String accession)
73   {
74     // most embl CDS refs look like ..
75     // TODO: improve EMBLCDS regex
76     return (accession == null || accession.length() < 2) ? false
77             : getAccessionValidator().search(accession);
78   }
79
80   /**
81    * cDNA for LDHA_CHICK swissprot sequence
82    */
83   @Override
84   public String getTestQuery()
85   {
86     return "CAA37824";
87   }
88
89   @Override
90   public String getDbName()
91   {
92     return "EMBL (CDS)";
93   }
94
95   @Override
96   public int getTier()
97   {
98     return 0;
99   }
100
101 }