JAL-3748 don’t trash start/end on SequenceI reconstructed from a SeqCigar via SeqsetU...
[jalview.git] / src / jalview / analysis / SeqsetUtils.java
index fdca89d..891e295 100755 (executable)
@@ -84,6 +84,20 @@ public class SeqsetUtils
    */
   public static boolean SeqCharacterUnhash(SequenceI sq, Hashtable sqinfo)
   {
+    return SeqCharacterUnhash(sq, sqinfo, false, false);
+  }
+
+  /**
+   * restore some characteristics for a sequence from its hash
+   * @param sq
+   * @param sqinfo
+   * @param excludeLimits - when true, start/end is left unmodified
+   * @param excludeFeatures - when true, features are not restored from stashed vector
+   * @return true if sequence's name was modified
+   */
+          
+  public static boolean SeqCharacterUnhash(SequenceI sq, Hashtable sqinfo, boolean excludeLimits,boolean excludeFeatures)
+  {
     boolean namePresent = true;
     if (sqinfo == null)
     {
@@ -110,13 +124,13 @@ public class SeqsetUtils
       sq.setPDBId(pdbid);
     }
 
-    if ((start != null) && (end != null))
+    if (!excludeLimits && (start != null) && (end != null))
     {
       sq.setStart(start.intValue());
       sq.setEnd(end.intValue());
     }
-
-    if (sfeatures != null && !sfeatures.isEmpty())
+    // TODO: drop this completely since we should not manipulate sequenceFeatures as a vector any more
+    if (!excludeFeatures && sfeatures != null && !sfeatures.isEmpty())
     {
       sq.setSequenceFeatures(sfeatures);
     }