JAL-1712 fixes/tests for Castor binding and 'show flanking regions'
[jalview.git] / src / jalview / datamodel / Sequence.java
index 5c1fba5..cab1ac7 100755 (executable)
@@ -20,9 +20,6 @@
  */
 package jalview.datamodel;
 
-import jalview.analysis.AlignSeq;
-import jalview.util.StringUtils;
-
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
@@ -30,6 +27,9 @@ import java.util.Vector;
 
 import fr.orsay.lri.varna.models.rna.RNA;
 
+import jalview.analysis.AlignSeq;
+import jalview.util.StringUtils;
+
 /**
  * 
  * Implements the SequenceI interface for a char[] based sequence object.
@@ -51,7 +51,7 @@ public class Sequence implements SequenceI
 
   int end;
 
-  Vector pdbIds;
+  Vector<PDBEntry> pdbIds;
 
   String vamsasId;
 
@@ -121,7 +121,7 @@ public class Sequence implements SequenceI
               .println("POSSIBLE IMPLEMENTATION ERROR: null sequence name passed to constructor.");
       name = "";
     }
-    // Does sequence have the /start-end signiature?
+    // Does sequence have the /start-end signature?
     if (limitrx.search(name))
     {
       name = limitrx.left();
@@ -353,21 +353,34 @@ public class Sequence implements SequenceI
   {
     if (pdbIds == null)
     {
-      pdbIds = new Vector();
+      pdbIds = new Vector<PDBEntry>();
+    }
+    if (pdbIds.contains(entry))
+    {
+      updatePDBEntry(pdbIds.get(pdbIds.indexOf(entry)), entry);
     }
-    if (!pdbIds.contains(entry))
+    else
     {
       pdbIds.addElement(entry);
     }
   }
 
+  private static void updatePDBEntry(PDBEntry oldEntry, PDBEntry newEntry)
+  {
+    if (newEntry.getFile() != null)
+    {
+      oldEntry.setFile(newEntry.getFile());
+    }
+  }
+
   /**
    * DOCUMENT ME!
    * 
    * @param id
    *          DOCUMENT ME!
    */
-  public void setPDBId(Vector id)
+  @Override
+  public void setPDBId(Vector<PDBEntry> id)
   {
     pdbIds = id;
   }
@@ -377,7 +390,8 @@ public class Sequence implements SequenceI
    * 
    * @return DOCUMENT ME!
    */
-  public Vector getPDBId()
+  @Override
+  public Vector<PDBEntry> getPDBId()
   {
     return pdbIds;
   }
@@ -935,7 +949,7 @@ public class Sequence implements SequenceI
   {
     if (this.annotation == null)
     {
-      this.annotation = new Vector();
+      this.annotation = new Vector<AlignmentAnnotation>();
     }
     if (!this.annotation.contains(annotation))
     {