JAL-1717 updated the PDBEntry model and updated the method use for its equality test...
[jalview.git] / src / jalview / datamodel / PDBEntry.java
index 3627d6d..0050666 100755 (executable)
@@ -24,12 +24,18 @@ import java.util.Hashtable;
 
 public class PDBEntry
 {
-  String file;
+  private String file;
 
-  String type;
+  private String type;
 
-  String id;
+  private String id;
 
+  private String chainCode;
+
+  public enum Type
+  {
+    PDB, FILE
+  }
   Hashtable properties;
 
   /*
@@ -49,12 +55,17 @@ public class PDBEntry
       return true;
     }
     PDBEntry o = (PDBEntry) obj;
-    return (file == o.file || (file != null && o.file != null && o.file
-            .equals(file)))
-            && (type == o.type || (type != null && o.type != null && o.type
+    return /*
+            * (file == o.file || (file != null && o.file != null && o.file
+            * .equals(file))) &&
+            */
+    (type == o.type || (type != null && o.type != null && o.type
                     .equals(type)))
             && (id == o.id || (id != null && o.id != null && o.id
                     .equalsIgnoreCase(id)))
+            && (chainCode == o.chainCode || (chainCode != null
+                    && o.chainCode != null && o.chainCode
+                      .equalsIgnoreCase(chainCode)))
             && (properties == o.properties || (properties != null
                     && o.properties != null && properties
                       .equals(o.properties)));
@@ -72,12 +83,21 @@ public class PDBEntry
    * 
    * @param filePath
    */
-  public PDBEntry(String filePath, String pdbId)
+  // public PDBEntry(String filePath, String pdbId)
+  // {
+  // this.file = filePath;
+  // this.id = pdbId;
+  // }
+  
+  public PDBEntry(String pdbId, String chain, PDBEntry.Type type,
+          String filePath)
   {
-    this.file = filePath;
     this.id = pdbId;
+    this.chainCode = chain;
+    this.type = type.toString();
+    this.file = filePath;
   }
-  
+
   /**
    * Copy constructor.
    * 
@@ -88,6 +108,7 @@ public class PDBEntry
     file = entry.file;
     type = entry.type;
     id = entry.id;
+    chainCode = entry.chainCode;
     if (entry.properties != null)
     {
       properties = (Hashtable) entry.properties.clone();
@@ -104,9 +125,9 @@ public class PDBEntry
     return file;
   }
 
-  public void setType(String type)
+  public void setType(PDBEntry.Type type)
   {
-    this.type = type;
+    this.type = type.toString();
   }
 
   public String getType()
@@ -134,4 +155,14 @@ public class PDBEntry
     return properties;
   }
 
+  public String getChainCode()
+  {
+    return chainCode;
+  }
+
+  public void setChainCode(String chainCode)
+  {
+    this.chainCode = chainCode;
+  }
+
 }