safer copy constructor
[jalview.git] / src / jalview / datamodel / DBRefEntry.java
index b9a9b98..b6c3192 100755 (executable)
@@ -32,15 +32,25 @@ public class DBRefEntry
   {
     this(source, version, accessionId, null);
   }
+  /**
+   * 
+   * @param source canonical source (uppercase only)
+   * @param version (source dependent version string)
+   * @param accessionId (source dependent accession number string)
+   * @param map (mapping from local sequence numbering to source accession numbering)
+   */
   public DBRefEntry(String source, String version, String accessionId, Mapping map) {
-    this.source = source;
+    this.source = source.toUpperCase();
     this.version = version;
     this.accessionId = accessionId;
     this.map = map;
   }
   public DBRefEntry(DBRefEntry entry)
   {
-    this(new String(entry.source), new String(entry.version), new String(entry.accessionId), new Mapping(entry.map));
+    this((entry.source==null ? "" : new String(entry.source)), 
+            (entry.version==null ? "" : new String(entry.version)),
+            (entry.accessionId==null ? "" : new String(entry.accessionId)),
+            (entry.map==null ? null : new Mapping(entry.map)));
   }
   public boolean equals(DBRefEntry entry) {
       if (entry==this)
@@ -67,11 +77,11 @@ public class DBRefEntry
     }
     if (entry==this)
       return true;
-    if ((source!=null && entry.source!=null && source.equals(entry.source))
+    if ((source!=null && entry.source!=null && source.equalsIgnoreCase(entry.source))
             &&
-            (accessionId!=null && entry.accessionId!=null && accessionId.equals(entry.accessionId))
+            (accessionId!=null && entry.accessionId!=null && accessionId.equalsIgnoreCase(entry.accessionId))
             &&
-            (version!=null && entry.version!=null && version.equals(entry.version))
+            (version!=null && entry.version!=null && version.equalsIgnoreCase(entry.version))
             )
     {
       return true;
@@ -124,7 +134,6 @@ public void setMap(Mapping map) {
 }
 public boolean hasMap()
 {
-  // TODO Auto-generated method stub
   return map!=null;
 }
 /**