JAL-2110 ensuring mapped dbrefs between protein and cds
[jalview.git] / src / jalview / datamodel / Alignment.java
index 34f8f6e..f5665db 100755 (executable)
@@ -30,7 +30,6 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -110,7 +109,10 @@ public class Alignment implements AlignmentI
     /*
      * Share the same dataset sequence mappings (if any). 
      */
-    this.setCodonFrames(al.getCodonFrames());
+    if (dataset == null && al.getDataset() == null)
+    {
+      this.setCodonFrames(al.getCodonFrames());
+    }
   }
 
   /**
@@ -1293,22 +1295,6 @@ public class Alignment implements AlignmentI
     }
   }
 
-  /**
-   * adds a set of mappings (while ignoring any duplicates)
-   */
-  @Override
-  public void addCodonFrames(Iterable<AlignedCodonFrame> codons)
-  {
-    if (codons != null)
-    {
-      Iterator<AlignedCodonFrame> it = codons.iterator();
-      while (it.hasNext())
-      {
-        addCodonFrame(it.next());
-      }
-    }
-  }
-
   /*
    * (non-Javadoc)
    * 
@@ -1427,6 +1413,7 @@ public class Alignment implements AlignmentI
       addAnnotation(alan[a]);
     }
 
+    // use add method
     getCodonFrames().addAll(toappend.getCodonFrames());
 
     List<SequenceGroup> sg = toappend.getGroups();
@@ -1736,6 +1723,10 @@ public class Alignment implements AlignmentI
     {
       return AlignmentUtils.alignProteinAsDna(this, al);
     }
+    else if (thatIsProtein && thisIsNucleotide)
+    {
+      return AlignmentUtils.alignCdsAsProtein(this, al);
+    }
     return AlignmentUtils.alignAs(this, al);
   }