changeCase
[jalview.git] / src / jalview / datamodel / Sequence.java
index 87a9306..a960adf 100755 (executable)
@@ -153,6 +153,14 @@ public class Sequence implements SequenceI
         sequenceFeatures = new SequenceFeature[0];\r
       }\r
 \r
+      for(int i=0; i<sequenceFeatures.length; i++)\r
+      {\r
+        if(sequenceFeatures[i].equals(sf))\r
+        {\r
+          return;\r
+        }\r
+      }\r
+\r
       SequenceFeature [] temp = new SequenceFeature[sequenceFeatures.length+1];\r
       System.arraycopy(sequenceFeatures, 0, temp, 0, sequenceFeatures.length);\r
       temp[sequenceFeatures.length] = sf;\r
@@ -630,4 +638,26 @@ public class Sequence implements SequenceI
       }\r
 \r
     }\r
+\r
+    public void changeCase(boolean toUpper, int start, int end)\r
+    {\r
+      StringBuffer newSeq = new StringBuffer();\r
+\r
+\r
+      if (start > 0)\r
+      {\r
+        newSeq.append(sequence.substring(0, start));\r
+      }\r
+\r
+      if (toUpper)\r
+        newSeq.append(sequence.substring(start, end).toUpperCase());\r
+      else\r
+        newSeq.append(sequence.substring(start, end).toLowerCase());\r
+\r
+      if (end < sequence.length())\r
+        newSeq.append(sequence.substring(end));\r
+\r
+      sequence = newSeq.toString();\r
+    }\r
+\r
 }\r