import java.util.StringTokenizer;\r
import java.util.Vector;\r
\r
+import org.biodas.jdas.client.ConnectionPropertyProviderI;\r
import org.biodas.jdas.client.SequenceClient;\r
import org.biodas.jdas.client.adapters.sequence.DasSequenceAdapter;\r
+import org.biodas.jdas.client.threads.MultipleConnectionPropertyProviderI;\r
import org.biodas.jdas.client.threads.SequenceClientMultipleSources;\r
import org.biodas.jdas.schema.sequence.SEQUENCE;\r
import org.biodas.jdas.schema.sources.COORDINATES;\r
protected String dbname = "DASCS";\r
\r
protected String dbrefname = "das:source";\r
-\r
+ protected MultipleConnectionPropertyProviderI connprops=null;\r
/**\r
* create a new DbSource proxy for a DAS 1 source\r
* \r
* if source is not capable of the 'sequence' command\r
*/\r
public DasSequenceSource(String dbname, String dbrefname, SOURCE source,\r
- VERSION version, COORDINATES coordsys) throws Exception\r
+ VERSION version, COORDINATES coordsys, MultipleConnectionPropertyProviderI connprops) throws Exception\r
{\r
- if (!(jsrc = new JalviewSource(source, false)).isSequenceSource())\r
+ if (!(jsrc = new JalviewSource(source, connprops, false)).isSequenceSource())\r
{\r
throw new Exception("Source " + source.getTitle()\r
+ " does not support the sequence command.");\r
this.dbname = dbname;\r
this.dbrefname = dbrefname;\r
this.coordsys = coordsys;\r
+ this.connprops=connprops;\r
}\r
\r
public String getAccessionSeparator()\r
return coordsys.getVersion();\r
}\r
\r
-\r
public AlignmentI getSequenceRecords(String queries) throws Exception\r
{\r
StringTokenizer st = new StringTokenizer(queries, "\t");\r
System.err\r
.println("Retrieving IDs individually from das source: "\r
+ sr);\r
- // todo : get conn property provider\r
- org.biodas.jdas.client.SequenceClient sq = new SequenceClient();\r
+ org.biodas.jdas.client.SequenceClient sq = new SequenceClient(connprops.getConnectionPropertyProviderFor(sr));\r
for (String q : toks)\r
{\r
List<String> qset = Arrays.asList(new String[]\r
}\r
else\r
{\r
- Vector<SequenceI> seqs=null;\r
+ Vector<SequenceI> seqs = null;\r
for (Map.Entry<String, Map<List<String>, DasSequenceAdapter>> resset : resultset\r
.entrySet())\r
{\r
+ lbl\r
+ ") from "\r
+ resset.getKey()\r
- + " (source is "\r
- + getDbName());\r
+ + " (source is " + getDbName());\r
continue;\r
}\r
}\r
seqs = new java.util.Vector<SequenceI>();\r
- // JDAS returns a sequence complete with any newlines and spaces in the XML\r
- Sequence sq = new Sequence(lbl, e.getContent().replaceAll("\\s+", ""));\r
+ // JDAS returns a sequence complete with any newlines and spaces\r
+ // in the XML\r
+ Sequence sq = new Sequence(lbl, e.getContent().replaceAll(\r
+ "\\s+", ""));\r
sq.addDBRef(new DBRefEntry(getDbSource(), getDbVersion()\r
+ ":" + e.getVersion(), lbl));\r
seqs.addElement(sq);\r
{\r
java.util.Vector<jalviewSourceI> srcs = new java.util.Vector<jalviewSourceI>();\r
srcs.addElement(jsrc);\r
- try {\r
- new jalview.ws.DasSequenceFeatureFetcher(sqs, null, srcs, false,\r
- false);\r
+ try\r
+ {\r
+ jalview.ws.DasSequenceFeatureFetcher dssf=new jalview.ws.DasSequenceFeatureFetcher(sqs, null, srcs, false,\r
+ false, multiple);\r
+ while (dssf.isRunning())\r
+ {\r
+ try {\r
+ Thread.sleep(200);\r
+ } catch (InterruptedException x)\r
+ {\r
+ \r
+ }\r
+ }\r
+ \r
} catch (Exception x)\r
{\r
- Cache.log.error("Couldn't retrieve features for sequence from its source.",x);\r
+ Cache.log\r
+ .error("Couldn't retrieve features for sequence from its source.",\r
+ x);\r
}\r
}\r
\r