protected String dbname = "DASCS";\r
\r
protected String dbrefname = "das:source";\r
- protected MultipleConnectionPropertyProviderI connprops=null;\r
+\r
+ protected MultipleConnectionPropertyProviderI connprops = null;\r
+\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, MultipleConnectionPropertyProviderI connprops) throws Exception\r
+ VERSION version, COORDINATES coordsys,\r
+ MultipleConnectionPropertyProviderI connprops) throws Exception\r
{\r
- if (!(jsrc = new JalviewSource(source, connprops, false)).isSequenceSource())\r
+ if (!(jsrc = new JalviewSource(source, connprops, false))\r
+ .isSequenceSource())\r
{\r
throw new Exception("Source " + source.getTitle()\r
+ " does not support the sequence command.");\r
}\r
this.source = source;\r
this.dbname = dbname;\r
- this.dbrefname = dbrefname;\r
- this.coordsys = coordsys;\r
- this.connprops=connprops;\r
+ this.dbrefname = dbrefname.toUpperCase();\r
+ if (coordsys != null)\r
+ {\r
+ this.coordsys = coordsys;\r
+ }\r
+ this.connprops = connprops;\r
}\r
\r
public String getAccessionSeparator()\r
public Regex getAccessionValidator()\r
{\r
/** ? * */\r
- return Regex.perlCode("\\S+");\r
+ return Regex.perlCode("m/([^:]+)(:\\d+,\\d+)?/");\r
}\r
\r
public String getDbName()\r
\r
public String getDbVersion()\r
{\r
- return coordsys.getVersion();\r
+ return coordsys != null ? coordsys.getVersion() : "";\r
}\r
\r
public AlignmentI getSequenceRecords(String queries) throws Exception\r
src.add(jsrc.getSourceURL());\r
Map<String, Map<List<String>, DasSequenceAdapter>> resultset = new HashMap<String, Map<List<String>, DasSequenceAdapter>>();\r
Map<String, Map<List<String>, Exception>> errors = new HashMap<String, Map<List<String>, Exception>>();\r
- \r
+\r
// First try multiple sources\r
boolean multiple = true, retry = false;\r
do\r
System.err\r
.println("Retrieving IDs individually from das source: "\r
+ sr);\r
- org.biodas.jdas.client.SequenceClient sq = new SequenceClient(connprops.getConnectionPropertyProviderFor(sr));\r
+ org.biodas.jdas.client.SequenceClient sq = new SequenceClient(\r
+ connprops.getConnectionPropertyProviderFor(sr));\r
for (String q : toks)\r
{\r
List<String> qset = Arrays.asList(new String[]\r
// in the XML\r
Sequence sq = new Sequence(lbl, e.getContent().replaceAll(\r
"\\s+", ""));\r
+ sq.setStart(e.getStart().intValue());\r
sq.addDBRef(new DBRefEntry(getDbSource(), getDbVersion()\r
+ ":" + e.getVersion(), lbl));\r
seqs.addElement(sq);\r
srcs.addElement(jsrc);\r
try\r
{\r
- jalview.ws.DasSequenceFeatureFetcher dssf=new jalview.ws.DasSequenceFeatureFetcher(sqs, null, srcs, false,\r
- false, multiple);\r
+ jalview.ws.DasSequenceFeatureFetcher dssf = new jalview.ws.DasSequenceFeatureFetcher(\r
+ sqs, null, srcs, false, false, multiple);\r
+ while (dssf.isRunning())\r
+ {\r
+ try\r
+ {\r
+ Thread.sleep(200);\r
+ } catch (InterruptedException x)\r
+ {\r
+\r
+ }\r
+ }\r
+\r
} catch (Exception x)\r
{\r
Cache.log\r
\r
public String getTestQuery()\r
{\r
- return coordsys.getTestRange();\r
+ return coordsys == null ? "" : coordsys.getTestRange();\r
}\r
\r
public boolean isValidReference(String accession)\r