X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FUrlLink.java;h=8d3de7d4e25255a553bad3c2f923b7f51a6b800a;hb=0a871d8258ce41f9293615771b1c3dcf447f0eb6;hp=dda9e0ea48e1e994d58669aa2154e0596747b55d;hpb=b22e1863f9c10dbff13ca8bc889255b91f0c4d1c;p=jalview.git diff --git a/src/jalview/util/UrlLink.java b/src/jalview/util/UrlLink.java index dda9e0e..8d3de7d 100644 --- a/src/jalview/util/UrlLink.java +++ b/src/jalview/util/UrlLink.java @@ -46,11 +46,17 @@ import java.util.Vector; */ public class UrlLink { + private static final String SEQUENCEID_PLACEHOLDER = DELIM + SEQUENCE_ID + + DELIM; + + private static final String ACCESSION_PLACEHOLDER = DELIM + DB_ACCESSION + + DELIM; + /** * A comparator that puts SEQUENCE_ID template links before DB_ACCESSION - * links, and otherwise orders by link name (not case sensitive). It expects - * to compare strings formatted as "Name|URLTemplate" where the template may - * include $SEQUENCE_ID$ or $DB_ACCESSION$ or neither. + * links, and otherwise orders by link name + url (not case sensitive). It + * expects to compare strings formatted as "Name|URLTemplate" where the + * template may include $SEQUENCE_ID$ or $DB_ACCESSION$ or neither. */ public static final Comparator LINK_COMPARATOR = new Comparator() { @@ -61,29 +67,17 @@ public class UrlLink { return 0; // for failsafe only } - String[] tokens1 = link1.split("\\|"); - String[] tokens2 = link2.split("\\|"); - if (tokens1.length < 2 || tokens2.length < 2) - { - // for failsafe only - return String.CASE_INSENSITIVE_ORDER.compare(link1, link2); - } - String name1 = tokens1[0]; - String name2 = tokens2[0]; - String pattern1 = tokens1[1]; - String pattern2 = tokens2[1]; - if (pattern1.contains(UrlConstants.SEQUENCE_ID) - && pattern2.contains(UrlConstants.DB_ACCESSION)) + if (link1.contains(SEQUENCEID_PLACEHOLDER) + && link2.contains(ACCESSION_PLACEHOLDER)) { return -1; } - if (pattern2.contains(UrlConstants.SEQUENCE_ID) - && pattern1.contains(UrlConstants.DB_ACCESSION)) + if (link2.contains(SEQUENCEID_PLACEHOLDER) + && link1.contains(ACCESSION_PLACEHOLDER)) { return 1; } - return String.CASE_INSENSITIVE_ORDER.compare(name1, name2); - + return String.CASE_INSENSITIVE_ORDER.compare(link1, link2); } }; @@ -328,8 +322,8 @@ public class UrlLink // debug for (int s = 0; s <= rg.numSubs(); s++) { - System.err.println("Sub " + s + " : " + rg.matchedFrom(s) - + " : " + rg.matchedTo(s) + " : '" + jalview.bin.Console.errPrintln("Sub " + s + " : " + + rg.matchedFrom(s) + " : " + rg.matchedTo(s) + " : '" + rg.stringMatched(s) + "'"); } // try to collate subgroup matches @@ -618,17 +612,17 @@ public class UrlLink if (usesDBAccession()) // link is ID { // collect matching db-refs - DBRefEntry[] dbr = DBRefUtils.selectRefs(seq.getDBRefs(), + List dbr = DBRefUtils.selectRefs(seq.getDBRefs(), new String[] { target }); // if there are any dbrefs which match up with the link if (dbr != null) { - for (int r = 0; r < dbr.length; r++) + for (int r = 0, nd = dbr.size(); r < nd; r++) { // create Bare ID link for this URL - createBareURLLink(dbr[r].getAccessionId(), true, linkset); + createBareURLLink(dbr.get(r).getAccessionId(), true, linkset); } } }