Not using AxisDasRegistry
[jalview.git] / src / jalview / io / DasSequenceFeatureFetcher.java
index 2fcb027..0c9681a 100755 (executable)
@@ -30,8 +30,13 @@ import org.biojava.dasobert.das.FeatureThread;
 import org.biojava.dasobert.dasregistry.Das1Source;\r
 import org.biojava.dasobert.eventmodel.FeatureEvent;\r
 import org.biojava.dasobert.eventmodel.FeatureListener;\r
-import org.biojava.services.das.registry.DasRegistryAxisClient;\r
-import org.biojava.services.das.registry.DasSource;\r
+import org.biojava.dasobert.dasregistry.DasSource;\r
+\r
+import org.biojava.dasobert.das2.io.DasSourceReaderImpl;\r
+import org.biojava.dasobert.dasregistry.Das1Source;\r
+import org.biojava.dasobert.dasregistry.DasSource;\r
+import org.biojava.dasobert.das2.Das2Source;\r
+import org.biojava.dasobert.das2.DasSourceConverter;\r
 \r
 \r
 import jalview.bin.Cache;\r
@@ -148,8 +153,9 @@ public class DasSequenceFeatureFetcher implements Runnable
                           sourceUrl);\r
           if (id != null && id.length() > 0)\r
           {\r
-            FeatureThread fetcher = new FeatureThread(id + ":" + seq.getStart() + "," +seq.getEnd()\r
-                , source);\r
+            FeatureThread fetcher = new FeatureThread(id\r
+               +  ":" + seq.getStart() + "," +seq.getEnd()\r
+                 , source);\r
 \r
             fetcher.addFeatureListener(new FeatureListener()\r
             {\r
@@ -173,12 +179,9 @@ public class DasSequenceFeatureFetcher implements Runnable
                 {\r
                   for (int i = 0; i < features.length; i++)\r
                   {\r
-                    SequenceFeature f = newSequenceFeature(features[i],\r
+                      SequenceFeature f = newSequenceFeature(features[i],\r
                         source.getNickname());\r
 \r
-                      System.out.println(source.getNickname()+" "+f.getType()+" "+\r
-                                         f.begin+" "+f.end);\r
-\r
                       seq.addSequenceFeature(f);\r
                   }\r
                 }\r
@@ -218,10 +221,6 @@ public class DasSequenceFeatureFetcher implements Runnable
         }\r
       }\r
     }\r
- // DasSource test = new DasSource();\r
- // test.setUrl("http://localhost:8080/das/gffdb/");\r
-  //test.setNickname("Trixkid");\r
- // selectedSources.addElement(test);\r
 \r
 \r
     if(selectedSources == null || selectedSources.size()==0)\r
@@ -252,7 +251,7 @@ public class DasSequenceFeatureFetcher implements Runnable
               for (int j = 0, k = uprefs.size(); j < k; j++)\r
               {\r
                 // Will have to pass any mapping information to the fetcher - the start/end for the DBRefEntry may not be the same as the sequence's start/end\r
-                org.biojava.services.das.registry.DasCoordinateSystem cs[] = dasSource.getCoordinateSystem();\r
+                org.biojava.dasobert.dasregistry.DasCoordinateSystem cs[] = dasSource.getCoordinateSystem();\r
                 for (int l=0; l<cs.length; l++) {\r
                   if (jalview.util.DBRefUtils.isDasCoordinateSystem(cs[l].getName(), (DBRefEntry)\r
                       uprefs.get(j)))\r
@@ -302,27 +301,47 @@ public class DasSequenceFeatureFetcher implements Runnable
   }\r
 \r
 \r
- public static DasSource[] getDASSources()\r
+  public static DasSource[] getDASSources()\r
   {\r
-    try\r
-    {\r
-      String registryURL = jalview.bin.Cache.getDefault("DAS_REGISTRY_URL",\r
-          "http://servlet.sanger.ac.uk/dasregistry/services/das_registry");\r
+    DasSourceReaderImpl reader = new DasSourceReaderImpl();\r
 \r
+    String registryURL = jalview.bin.Cache.getDefault("DAS_REGISTRY_URL",\r
+        "http://servlet.sanger.ac.uk/dasregistry/services/das_registry");\r
 \r
+    try\r
+    {\r
       URL url = new URL(registryURL);\r
 \r
-      DasRegistryAxisClient client = new DasRegistryAxisClient(url);\r
+      DasSource[] sources = reader.readDasSource(url);\r
+\r
+      List das1sources = new ArrayList();\r
+      for (int i = 0; i < sources.length; i++)\r
+      {\r
+        DasSource ds = sources[i];\r
+        if (ds instanceof Das2Source)\r
+        {\r
+          Das2Source d2s = (Das2Source) ds;\r
+          if (d2s.hasDas1Capabilities())\r
+          {\r
+            Das1Source d1s = DasSourceConverter.toDas1Source(d2s);\r
+            das1sources.add(d1s);\r
+          }\r
 \r
-      DasSource[] services = client.listServices();\r
+          //\r
+        }\r
+        else if (ds instanceof Das1Source)\r
+        {\r
+          das1sources.add( (Das1Source) ds);\r
+        }\r
+      }\r
 \r
-      return services;\r
+      return (Das1Source[]) das1sources.toArray(new Das1Source[das1sources.size()]);\r
     }\r
     catch (Exception ex)\r
     {\r
       ex.printStackTrace();\r
+      return null;\r
     }\r
-    return null;\r
 \r
   }\r
 }\r