*/
package jalview.datamodel;
+import java.util.Locale;
+
import jalview.api.DBRefEntryI;
import jalview.util.DBRefUtils;
import jalview.util.MapList;
String canonicalSourceName;
- boolean isCanonicalAccession;
+ boolean isCanonicalAccession=false;
/*
* maps from associated sequence to the database sequence's coordinate system
Mapping map,boolean isCanonical)
{
- this.source = source.toUpperCase();
+ this.source = source.toUpperCase(Locale.ROOT);
setVersion(version);
this.accessionId = accessionId;
this.map = map;
: 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
return true;
}
+ boolean improved=false;
/*
* source must either match or be both null
*/
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
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)
{
public void setAccessionId(String accessionId)
{
this.accessionId = accessionId;
-// this.accessionId = (accessionId == null ? "" : accessionId).toUpperCase();
+// this.accessionId = (accessionId == null ? "" : accessionId).toUpperCase(Locale.ROOT);
}
/**
{
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);
}
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