X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FDBRefEntry.java;h=511287bc2da6a2b8649d1cb7bd01b5edc5ccadc6;hb=551b3a8e53ff6b43f9d0bce08759e46f49373bed;hp=b6cae62e2ab74b482458ab2f91b260cab5b0d549;hpb=c49fa6aa001663914b33fc53a1d002bfc6a291ba;p=jalview.git diff --git a/src/jalview/datamodel/DBRefEntry.java b/src/jalview/datamodel/DBRefEntry.java index b6cae62..511287b 100755 --- a/src/jalview/datamodel/DBRefEntry.java +++ b/src/jalview/datamodel/DBRefEntry.java @@ -172,6 +172,7 @@ public class DBRefEntry implements DBRefEntryI return true; } + boolean improved=false; /* * source must either match or be both null */ @@ -195,6 +196,19 @@ public class DBRefEntry implements DBRefEntryI return false; } + if (!isCanonicalAccession && other.isCanonical()) + { + isCanonicalAccession = true; + improved = true; + } + else + { + if (isCanonicalAccession && !other.isCanonical()) + { + // other is not an authoritative source of canonical accessions + return false; + } + } /* * if my version is null, "0" or "source:0" then replace with other version, * otherwise the versions have to match @@ -211,12 +225,15 @@ public class DBRefEntry implements DBRefEntryI if (version != null && (otherVersion == null || !version.equalsIgnoreCase(otherVersion))) { - return false; + // FIXME: there may be a problem with old version strings not allowing + // updating of dbrefentries + return improved; } } /* - * if I have no mapping, take that of the other dbref + * if I have no mapping, take that of the other dbref + * - providing it had a version and so do I */ if (map == null) {