X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FDBRefEntry.java;h=4a5c888330710c073d9fd635f43ba54907a999c9;hb=8f08ed712138cea8987594a62b6053a0bfdba327;hp=ae06650f2ce9914fdf49fa1b9355b38d0489c3a4;hpb=d0d660cab06c31659e7bb0a1780317b3d2231eb6;p=jalview.git diff --git a/src/jalview/datamodel/DBRefEntry.java b/src/jalview/datamodel/DBRefEntry.java index ae06650..4a5c888 100755 --- a/src/jalview/datamodel/DBRefEntry.java +++ b/src/jalview/datamodel/DBRefEntry.java @@ -20,6 +20,8 @@ */ package jalview.datamodel; +import java.util.Locale; + import jalview.api.DBRefEntryI; import jalview.util.DBRefUtils; import jalview.util.MapList; @@ -95,7 +97,7 @@ public class DBRefEntry implements DBRefEntryI Mapping map,boolean isCanonical) { - this.source = source.toUpperCase(); + this.source = source.toUpperCase(Locale.ROOT); setVersion(version); this.accessionId = accessionId; this.map = map; @@ -113,7 +115,7 @@ public class DBRefEntry implements DBRefEntryI : new String(entry.getVersion())), (entry.getAccessionId() == null ? "" : new String(entry.getAccessionId())), - (entry.getMap() == null ? null : new Mapping(entry.getMap()))); + (entry.getMap() == null ? null : new Mapping(entry.getMap())),entry.isCanonical()); } @Override @@ -172,6 +174,7 @@ public class DBRefEntry implements DBRefEntryI return true; } + boolean improved=false; /* * source must either match or be both null */ @@ -195,6 +198,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 +227,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) { @@ -289,7 +308,7 @@ public class DBRefEntry implements DBRefEntryI public void setAccessionId(String accessionId) { this.accessionId = accessionId; -// this.accessionId = (accessionId == null ? "" : accessionId).toUpperCase(); +// this.accessionId = (accessionId == null ? "" : accessionId).toUpperCase(Locale.ROOT); } /** @@ -300,7 +319,7 @@ public class DBRefEntry implements DBRefEntryI { this.source = source; -// this.source = (source == null ? "" : source).toUpperCase(); +// this.source = (source == null ? "" : source).toUpperCase(Locale.ROOT); // this.canonicalSourceName = DBRefUtils.getCanonicalName(this.source); // this.sourceKey = DBRefSource.getSourceKey(this.canonicalSourceName); } @@ -309,7 +328,7 @@ public class DBRefEntry implements DBRefEntryI public void setVersion(String version) { this.version = version; - this.ucversion = (version == null ? null : version.toUpperCase()); + this.ucversion = (version == null ? null : version.toUpperCase(Locale.ROOT)); } @Override