JAL-2110 random stuff
[jalview.git] / src / jalview / analysis / CrossRef.java
index 8fd0706..cb664df 100644 (file)
@@ -35,6 +35,7 @@ import jalview.ws.SequenceFetcherFactory;
 import jalview.ws.seqfetcher.ASequenceFetcher;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -297,7 +298,7 @@ public class CrossRef
             xrfs = t;
             try
             {
-              retrieved = sftch.getSequences(xrfs, !dna);
+              retrieved = sftch.getSequences(Arrays.asList(xrfs), !dna);
               // problem here is we don't know which of xrfs resulted in which
               // retrieved element
             } catch (Exception e)
@@ -602,7 +603,7 @@ public class CrossRef
 
           // look for direct or indirect references in common
           DBRefEntry[] poss = nxt.getDBRefs();
-          DBRefEntry[] cands = null;
+          List<DBRefEntry> cands = null;
           /*
            * TODO does this make any sense?
            * if 'direct', search the dbrefs for xrf
@@ -618,34 +619,36 @@ public class CrossRef
             poss = DBRefUtils.selectDbRefs(!dna, poss);
             cands = DBRefUtils.searchRefs(poss, xrf);
           }
-          if (cands != null)
+          if (!cands.isEmpty())
           {
             if (!rseqs.contains(nxt))
             {
               found = true;
               rseqs.add(nxt);
-              boolean foundmap = cf != null;
-              // don't search if we aren't given a codon map object
-              for (int r = 0; foundmap && r < cands.length; r++)
+              if (cf != null)
               {
-                if (cands[r].hasMap())
+                // don't search if we aren't given a codon map object
+                for (DBRefEntry candidate : cands)
                 {
-                  Mapping mapping = cands[r].getMap();
-                  MapList map = mapping.getMap();
-                  if (mapping.getTo() != null
-                          && map.getFromRatio() != map.getToRatio())
+                  Mapping mapping = candidate.getMap();
+                  if (mapping != null)
                   {
-                    // get sense of map correct for adding to product
-                    // alignment.
-                    if (dna)
+                    MapList map = mapping.getMap();
+                    if (mapping.getTo() != null
+                            && map.getFromRatio() != map.getToRatio())
                     {
-                      // map is from dna seq to a protein product
-                      cf.addMap(sequenceI, nxt, map);
-                    }
-                    else
-                    {
-                      // map should be from protein seq to its coding dna
-                      cf.addMap(nxt, sequenceI, map.getInverse());
+                      // get sense of map correct for adding to product
+                      // alignment.
+                      if (dna)
+                      {
+                        // map is from dna seq to a protein product
+                        cf.addMap(sequenceI, nxt, map);
+                      }
+                      else
+                      {
+                        // map should be from protein seq to its coding dna
+                        cf.addMap(nxt, sequenceI, map.getInverse());
+                      }
                     }
                   }
                 }