X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FCrossRef.java;h=cb664df72ab06d47a233e2cdee132c9c67230084;hb=65675b2d016736f8ca4dfb2493863c4d53cec591;hp=8fd07067962c515b62ac728c59a1578950312fb4;hpb=b21429180fdda3586d67b5d0f43c89d35b504be7;p=jalview.git diff --git a/src/jalview/analysis/CrossRef.java b/src/jalview/analysis/CrossRef.java index 8fd0706..cb664df 100644 --- a/src/jalview/analysis/CrossRef.java +++ b/src/jalview/analysis/CrossRef.java @@ -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 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()); + } } } }