Remove getsfarray
[jalview.git] / src / jalview / datamodel / Sequence.java
index 87a9306..09c9a69 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
@@ -161,13 +169,6 @@ public class Sequence implements SequenceI
       sequenceFeatures = temp;\r
     }\r
 \r
-    SequenceFeature [] sfarray;\r
-\r
-        public SequenceFeature[] getsfarray()\r
-        {\r
-          return sfarray;\r
-        }\r
-\r
 \r
     /**\r
      * DOCUMENT ME!\r
@@ -630,4 +631,62 @@ 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
+      if(end>sequence.length())\r
+        end = sequence.length();\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
+    public void toggleCase(int start, int end)\r
+    {\r
+      StringBuffer newSeq = new StringBuffer();\r
+\r
+     if(end>sequence.length())\r
+       end = sequence.length();\r
+\r
+     if (start > 0)\r
+     {\r
+       newSeq.append(sequence.substring(0, start));\r
+     }\r
+\r
+     char nextChar;\r
+     for(int c=start; c<end; c++)\r
+     {\r
+       nextChar = sequence.charAt(c);\r
+       if(Character.isLetter(nextChar))\r
+       {\r
+         if(Character.isUpperCase(nextChar))\r
+           nextChar = Character.toLowerCase(nextChar);\r
+         else\r
+           nextChar = Character.toUpperCase(nextChar);\r
+       }\r
+\r
+\r
+       newSeq.append(nextChar);\r
+     }\r
+\r
+     if (end < sequence.length())\r
+       newSeq.append(sequence.substring(end));\r
+\r
+     sequence = newSeq.toString();\r
+    }\r
+\r
 }\r