Fixed T-Coffee file scores parser to support extended format including residue numbers
[jalview.git] / src / jalview / ws / dbsources / das / datamodel / JalviewSource.java
index 11bdf02..eb9d807 100644 (file)
@@ -1,3 +1,20 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ */
 package jalview.ws.dbsources.das.datamodel;
 
 import java.text.ParseException;
@@ -10,7 +27,6 @@ import java.util.Map;
 import org.biodas.jdas.client.threads.MultipleConnectionPropertyProviderI;
 import org.biodas.jdas.dassources.Capabilities;
 import org.biodas.jdas.dassources.utils.DasTimeFormat;
-import org.biodas.jdas.dassources.utils.RegistrySourceAdapter;
 import org.biodas.jdas.schema.sources.CAPABILITY;
 import org.biodas.jdas.schema.sources.COORDINATES;
 import org.biodas.jdas.schema.sources.MAINTAINER;
@@ -24,10 +40,13 @@ import jalview.ws.seqfetcher.DbSourceProxy;
 public class JalviewSource implements jalviewSourceI
 {
   SOURCE source;
+
   MultipleConnectionPropertyProviderI connprov;
-  public JalviewSource(SOURCE local2, MultipleConnectionPropertyProviderI connprov, boolean local)
+
+  public JalviewSource(SOURCE local2,
+          MultipleConnectionPropertyProviderI connprov, boolean local)
   {
-    this.connprov=connprov;
+    this.connprov = connprov;
     this.local = local;
     source = local2;
   }
@@ -311,9 +330,27 @@ public class JalviewSource implements jalviewSourceI
   {
     try
     {
-      String url = new RegistrySourceAdapter(source)
-              .getOriginalDataSourceUri();
-      return url;
+      // kind of dumb, since
+      // org.biodas.jdas.dassources.utils.VersionAdapter.getSourceUriFromQueryUri()
+      // does this,
+      // but this way, we can access non DAS 1.6 compliant sources (which have
+      // to have a URL like <sourcename>/das/ and cause a validation exception)
+
+      for (CAPABILITY cap : getVersion().getCAPABILITY())
+      {
+        String capname = cap.getType().substring(
+                cap.getType().indexOf(":") + 1);
+        int p = cap.getQueryUri().lastIndexOf(capname);
+        if (p < -1)
+        {
+          throw new Exception("Invalid das source: " + source.getUri());
+        }
+        if (cap.getQueryUri().charAt(p) == '/')
+        {
+          p--;
+        }
+        return cap.getQueryUri().substring(0, p);
+      }
     } catch (Exception x)
     {
       System.err.println("Serious: Couldn't get the URL for source "