10aaf7db525e17562f2b189b159bdfe4b4e31642
[jalview.git] / src / jalview / ws / seqfetcher / DbSourceProxyImpl.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)\r
3  * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  * \r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  * \r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  * \r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package jalview.ws.seqfetcher;\r
20 \r
21 import jalview.datamodel.Alignment;\r
22 import jalview.datamodel.DBRefSource;\r
23 import jalview.io.FormatAdapter;\r
24 import jalview.io.IdentifyFile;\r
25 \r
26 import java.util.Hashtable;\r
27 \r
28 /**\r
29  * common methods for implementations of the DbSourceProxy interface.\r
30  * \r
31  * @author JimP\r
32  * \r
33  */\r
34 public abstract class DbSourceProxyImpl implements DbSourceProxy\r
35 {\r
36   public DbSourceProxyImpl()\r
37   {\r
38     // default constructor - do nothing probably.\r
39   }\r
40 \r
41   private Hashtable props = null;\r
42 \r
43   /*\r
44    * (non-Javadoc)\r
45    * \r
46    * @see jalview.ws.DbSourceProxy#getDbSourceProperties()\r
47    */\r
48   public Hashtable getDbSourceProperties()\r
49   {\r
50     return props;\r
51   }\r
52 \r
53   protected void addDbSourceProperty(Object propname)\r
54   {\r
55     addDbSourceProperty(propname, propname);\r
56   }\r
57 \r
58   protected void addDbSourceProperty(Object propname, Object propvalue)\r
59   {\r
60     if (props == null)\r
61     {\r
62       props = new Hashtable();\r
63     }\r
64     props.put(propname, propvalue);\r
65   }\r
66 \r
67   boolean queryInProgress = false;\r
68 \r
69   protected StringBuffer results = null;\r
70 \r
71   /*\r
72    * (non-Javadoc)\r
73    * \r
74    * @see jalview.ws.DbSourceProxy#getRawRecords()\r
75    */\r
76   public StringBuffer getRawRecords()\r
77   {\r
78     return results;\r
79   }\r
80 \r
81   /*\r
82    * (non-Javadoc)\r
83    * \r
84    * @see jalview.ws.DbSourceProxy#queryInProgress()\r
85    */\r
86   public boolean queryInProgress()\r
87   {\r
88     return queryInProgress;\r
89   }\r
90 \r
91   /**\r
92    * call to set the queryInProgress flag\r
93    * \r
94    */\r
95   protected void startQuery()\r
96   {\r
97     queryInProgress = true;\r
98   }\r
99 \r
100   /**\r
101    * call to clear the queryInProgress flag\r
102    * \r
103    */\r
104   protected void stopQuery()\r
105   {\r
106     queryInProgress = false;\r
107   }\r
108 \r
109   /**\r
110    * create an alignment from raw text file...\r
111    * \r
112    * @param result\r
113    * @return null or a valid alignment\r
114    * @throws Exception\r
115    */\r
116   protected Alignment parseResult(String result) throws Exception\r
117   {\r
118     Alignment sequences = null;\r
119     String format = new IdentifyFile().Identify(result, "Paste");\r
120     if (FormatAdapter.isValidFormat(format))\r
121     {\r
122       sequences = new FormatAdapter().readFile(result.toString(), "Paste",\r
123               format);\r
124     }\r
125     return sequences;\r
126   }\r
127 \r
128 }\r