Merge branch 'improvement/JAL-4250_secondary_structure_annotation_antialias' into...
[jalview.git] / src / jalview / ws / seqfetcher / ASequenceFetcher.java
index 977f9da..374147a 100644 (file)
@@ -21,7 +21,7 @@
 package jalview.ws.seqfetcher;
 
 import jalview.api.FeatureSettingsModelI;
-import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.SequenceI;
@@ -112,7 +112,7 @@ public class ASequenceFetcher
         return true;
       }
     }
-    Cache.log.warn("isFetchable doesn't know about '" + source + "'");
+    Console.warn("isFetchable doesn't know about '" + source + "'");
     return false;
   }
 
@@ -126,15 +126,16 @@ public class ASequenceFetcher
    */
   public SequenceI[] getSequences(List<DBRefEntry> refs, boolean dna)
   {
-    Vector<SequenceI> rseqs = new Vector<SequenceI>();
-    Hashtable<String, List<String>> queries = new Hashtable<String, List<String>>();
+    Vector<SequenceI> rseqs = new Vector<>();
+    Hashtable<String, List<String>> queries = new Hashtable<>();
     for (DBRefEntry ref : refs)
     {
-      if (!queries.containsKey(ref.getSource()))
+      String canonical = DBRefUtils.getCanonicalName(ref.getSource());
+      if (!queries.containsKey(canonical))
       {
-        queries.put(ref.getSource(), new ArrayList<String>());
+        queries.put(canonical, new ArrayList<String>());
       }
-      List<String> qset = queries.get(ref.getSource());
+      List<String> qset = queries.get(canonical);
       if (!qset.contains(ref.getAccessionId()))
       {
         qset.add(ref.getAccessionId());
@@ -154,14 +155,14 @@ public class ASequenceFetcher
         continue;
       }
 
-      Stack<String> queriesLeft = new Stack<String>();
+      Stack<String> queriesLeft = new Stack<>();
       queriesLeft.addAll(query);
 
       List<DbSourceProxy> proxies = getSourceProxy(db);
       for (DbSourceProxy fetcher : proxies)
       {
-        List<String> queriesMade = new ArrayList<String>();
-        HashSet<String> queriesFound = new HashSet<String>();
+        List<String> queriesMade = new ArrayList<>();
+        HashSet<String> queriesFound = new HashSet<>();
         try
         {
           if (fetcher.isDnaCoding() != dna)
@@ -190,9 +191,9 @@ public class ASequenceFetcher
               seqset = fetcher.getSequenceRecords(qsb.toString());
             } catch (Exception ex)
             {
-              System.err.println(
+              jalview.bin.Console.errPrintln(
                       "Failed to retrieve the following from " + db);
-              System.err.println(qsb);
+              jalview.bin.Console.errPrintln(qsb);
               ex.printStackTrace(System.err);
             }
             // TODO: Merge alignment together - perhaps
@@ -204,9 +205,11 @@ public class ASequenceFetcher
                 for (int is = 0; is < seqs.length; is++)
                 {
                   rseqs.addElement(seqs[is]);
+                  // BH 2015.01.25 check about version/accessid being null here
                   List<DBRefEntry> frefs = DBRefUtils.searchRefs(
                           seqs[is].getDBRefs(),
-                          new DBRefEntry(db, null, null));
+                          new DBRefEntry(db, null, null),
+                          DBRefUtils.SEARCH_MODE_FULL);
                   for (DBRefEntry dbr : frefs)
                   {
                     queriesFound.add(dbr.getAccessionId());
@@ -219,7 +222,7 @@ public class ASequenceFetcher
               {
                 if (fetcher.getRawRecords() != null)
                 {
-                  System.out.println(
+                  jalview.bin.Console.outPrintln(
                           "# Retrieved from " + db + ":" + qsb.toString());
                   StringBuffer rrb = fetcher.getRawRecords();
                   /*
@@ -232,12 +235,12 @@ public class ASequenceFetcher
                   /*
                    * } else { hdr = "# part "+rr; }
                    */
-                  System.out.println(hdr);
+                  jalview.bin.Console.outPrintln(hdr);
                   if (rrb != null)
                   {
-                    System.out.println(rrb);
+                    jalview.bin.Console.outPrintln(rrb);
                   }
-                  System.out.println("# end of " + hdr);
+                  jalview.bin.Console.outPrintln("# end of " + hdr);
                 }
 
               }
@@ -250,7 +253,7 @@ public class ASequenceFetcher
         }
         if (queriesMade.size() > 0)
         {
-          System.out.println("# Adding " + queriesMade.size()
+          jalview.bin.Console.outPrintln("# Adding " + queriesMade.size()
                   + " ids back to queries list for searching again (" + db
                   + ")");
           queriesLeft.addAll(queriesMade);
@@ -276,7 +279,7 @@ public class ASequenceFetcher
           Exception ex)
   {
 
-    System.err.println(
+    jalview.bin.Console.errPrintln(
             "Failed to retrieve the following references from " + db);
     int n = 0;
     for (String qv : queriesMade)
@@ -284,11 +287,11 @@ public class ASequenceFetcher
       System.err.print(" " + qv + ";");
       if (n++ > 10)
       {
-        System.err.println();
+        jalview.bin.Console.errPrintln();
         n = 0;
       }
     }
-    System.err.println();
+    jalview.bin.Console.errPrintln();
     ex.printStackTrace();
   }
 
@@ -306,13 +309,13 @@ public class ASequenceFetcher
     Map<String, DbSourceProxy> dblist = fetchableDbs.get(db);
     if (dblist == null)
     {
-      return new ArrayList<DbSourceProxy>();
+      return new ArrayList<>();
     }
 
     /*
      * sort so that primary sources precede secondary
      */
-    List<DbSourceProxy> dbs = new ArrayList<DbSourceProxy>(dblist.values());
+    List<DbSourceProxy> dbs = new ArrayList<>(dblist.values());
     Collections.sort(dbs, proxyComparator);
     return dbs;
   }
@@ -357,14 +360,13 @@ public class ASequenceFetcher
     {
       if (fetchableDbs == null)
       {
-        fetchableDbs = new Hashtable<String, Map<String, DbSourceProxy>>();
+        fetchableDbs = new Hashtable<>();
       }
       Map<String, DbSourceProxy> slist = fetchableDbs
               .get(proxy.getDbSource());
       if (slist == null)
       {
-        fetchableDbs.put(proxy.getDbSource(),
-                slist = new Hashtable<String, DbSourceProxy>());
+        fetchableDbs.put(proxy.getDbSource(), slist = new Hashtable<>());
       }
       slist.put(proxy.getDbName(), proxy);
     }
@@ -391,7 +393,7 @@ public class ASequenceFetcher
       return null;
     }
     String[] sources = null;
-    Vector<String> src = new Vector<String>();
+    Vector<String> src = new Vector<>();
     Enumeration<String> dbs = fetchableDbs.keys();
     while (dbs.hasMoreElements())
     {
@@ -413,7 +415,7 @@ public class ASequenceFetcher
 
   public DbSourceProxy[] getDbSourceProxyInstances(Class class1)
   {
-    List<DbSourceProxy> prlist = new ArrayList<DbSourceProxy>();
+    List<DbSourceProxy> prlist = new ArrayList<>();
     for (String fetchable : getSupportedDb())
     {
       for (DbSourceProxy pr : getSourceProxy(fetchable))