e3f5664dbbf2b99bb4bac42e17d2704134e88cb0
[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     if (props==null)\r
51     {\r
52       props = new Hashtable();\r
53     }\r
54     return props;\r
55   }\r
56 \r
57   protected void addDbSourceProperty(Object propname)\r
58   {\r
59     addDbSourceProperty(propname, propname);\r
60   }\r
61 \r
62   protected void addDbSourceProperty(Object propname, Object propvalue)\r
63   {\r
64     if (props == null)\r
65     {\r
66       props = new Hashtable();\r
67     }\r
68     props.put(propname, propvalue);\r
69   }\r
70 \r
71   boolean queryInProgress = false;\r
72 \r
73   protected StringBuffer results = null;\r
74 \r
75   /*\r
76    * (non-Javadoc)\r
77    * \r
78    * @see jalview.ws.DbSourceProxy#getRawRecords()\r
79    */\r
80   public StringBuffer getRawRecords()\r
81   {\r
82     return results;\r
83   }\r
84 \r
85   /*\r
86    * (non-Javadoc)\r
87    * \r
88    * @see jalview.ws.DbSourceProxy#queryInProgress()\r
89    */\r
90   public boolean queryInProgress()\r
91   {\r
92     return queryInProgress;\r
93   }\r
94 \r
95   /**\r
96    * call to set the queryInProgress flag\r
97    * \r
98    */\r
99   protected void startQuery()\r
100   {\r
101     queryInProgress = true;\r
102   }\r
103 \r
104   /**\r
105    * call to clear the queryInProgress flag\r
106    * \r
107    */\r
108   protected void stopQuery()\r
109   {\r
110     queryInProgress = false;\r
111   }\r
112 \r
113   /**\r
114    * create an alignment from raw text file...\r
115    * \r
116    * @param result\r
117    * @return null or a valid alignment\r
118    * @throws Exception\r
119    */\r
120   protected Alignment parseResult(String result) throws Exception\r
121   {\r
122     Alignment sequences = null;\r
123     String format = new IdentifyFile().Identify(result, "Paste");\r
124     if (FormatAdapter.isValidFormat(format))\r
125     {\r
126       sequences = new FormatAdapter().readFile(result.toString(), "Paste",\r
127               format);\r
128     }\r
129     return sequences;\r
130   }\r
131 \r
132 }\r