JAL-1827 refactored to handle missing residues better
[jalview.git] / src / jalview / analysis / CrossRef.java
index 7238239..a71e614 100644 (file)
  */
 package jalview.analysis;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
-
 import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
@@ -35,6 +31,10 @@ import jalview.util.DBRefUtils;
 import jalview.ws.SequenceFetcher;
 import jalview.ws.seqfetcher.ASequenceFetcher;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
 /**
  * Functions for cross-referencing sequence databases. user must first specify
  * if cross-referencing from protein or dna (set dna==true)
@@ -97,7 +97,7 @@ public class CrossRef
         {
           dss = dss.getDatasetSequence();
         }
-        DBRefEntry[] rfs = findXDbRefs(dna, dss.getDBRef());
+        DBRefEntry[] rfs = findXDbRefs(dna, dss.getDBRefs());
         for (int r = 0; rfs != null && r < rfs.length; r++)
         {
           if (!refs.contains(rfs[r].getSource()))
@@ -109,13 +109,13 @@ public class CrossRef
         {
           // search for references to this sequence's direct references.
           DBRefEntry[] lrfs = CrossRef
-                  .findXDbRefs(!dna, seqs[s].getDBRef());
+                  .findXDbRefs(!dna, seqs[s].getDBRefs());
           List<SequenceI> rseqs = new ArrayList<SequenceI>();
           CrossRef.searchDatasetXrefs(seqs[s], !dna, lrfs, dataset, rseqs,
                   null); // don't need to specify codon frame for mapping here
           for (SequenceI rs : rseqs)
           {
-            DBRefEntry[] xrs = findXDbRefs(dna, rs.getDBRef()); // not used??
+            DBRefEntry[] xrs = findXDbRefs(dna, rs.getDBRefs()); // not used??
             for (int r = 0; rfs != null && r < rfs.length; r++)
             {
               if (!refs.contains(rfs[r].getSource()))
@@ -159,7 +159,7 @@ public class CrossRef
     Vector cseqs = new Vector();
     for (int s = 0; s < seqs.length; s++)
     {
-      DBRefEntry[] cdna = findXDbRefs(true, seqs[s].getDBRef());
+      DBRefEntry[] cdna = findXDbRefs(true, seqs[s].getDBRefs());
       for (int c = 0; c < cdna.length; c++)
       {
         if (cdna[c].getSource().equals(DBRefSource.EMBLCDS))
@@ -219,11 +219,11 @@ public class CrossRef
         dss = dss.getDatasetSequence();
       }
       boolean found = false;
-      DBRefEntry[] xrfs = CrossRef.findXDbRefs(dna, dss.getDBRef());
+      DBRefEntry[] xrfs = CrossRef.findXDbRefs(dna, dss.getDBRefs());
       if ((xrfs == null || xrfs.length == 0) && dataset != null)
       {
         System.out.println("Attempting to find ds Xrefs refs.");
-        DBRefEntry[] lrfs = CrossRef.findXDbRefs(!dna, seqs[s].getDBRef());
+        DBRefEntry[] lrfs = CrossRef.findXDbRefs(!dna, seqs[s].getDBRefs());
         // less ambiguous would be a 'find primary dbRefEntry' method.
         // filter for desired source xref here
         found = CrossRef.searchDatasetXrefs(dss, !dna, lrfs, dataset,
@@ -267,7 +267,7 @@ public class CrossRef
           {
             found |= searchDataset(dss, xrfs[r], dataset, rseqs, cf); // ,false,!dna);
             if (found)
-             {
+            {
               xrfs[r] = null; // we've recovered seqs for this one.
             }
           }
@@ -330,7 +330,7 @@ public class CrossRef
               {
                 // TODO: examine each sequence for 'redundancy'
                 jalview.datamodel.DBRefEntry[] dbr = retrieved[rs]
-                        .getDBRef();
+                        .getDBRefs();
                 if (dbr != null && dbr.length > 0)
                 {
                   for (int di = 0; di < dbr.length; di++)
@@ -408,8 +408,7 @@ public class CrossRef
    */
   private static boolean searchDatasetXrefs(SequenceI sequenceI,
           boolean dna, DBRefEntry[] lrfs, AlignmentI dataset,
-          List<SequenceI> rseqs,
-          AlignedCodonFrame cf)
+          List<SequenceI> rseqs, AlignedCodonFrame cf)
   {
     boolean found = false;
     if (lrfs == null)
@@ -501,7 +500,7 @@ public class CrossRef
             }
 
             // look for direct or indirect references in common
-            DBRefEntry[] poss = nxt.getDBRef(), cands = null;
+            DBRefEntry[] poss = nxt.getDBRefs(), cands = null;
             if (direct)
             {
               cands = jalview.util.DBRefUtils.searchRefs(poss, xrf);