/*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.commands;
-import jalview.datamodel.*;
+import java.util.Locale;
-public class ChangeCaseCommand
- implements CommandI
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+
+import java.util.List;
+
+public class ChangeCaseCommand implements CommandI
{
String description;
+
public static int TO_LOWER = 0;
+
public static int TO_UPPER = 1;
+
public static int TOGGLE_CASE = 2;
+
int caseChange = -1;
+
SequenceI[] seqs;
- int[][] regions;
- public ChangeCaseCommand(String description,
- SequenceI[] seqs,
- int[][] regions,
- int caseChange)
+
+ List<int[]> regions;
+
+ public ChangeCaseCommand(String description, SequenceI[] seqs,
+ List<int[]> regions, int caseChange)
{
this.description = description;
this.seqs = seqs;
String sequence;
int start, end;
char nextChar;
- for (int r = 0; r < regions.length; r++)
+ for (int[] r : regions)
{
- start = regions[r][0];
+ start = r[0];
for (int s = 0; s < seqs.length; s++)
{
sequence = seqs[s].getSequenceAsString();
StringBuffer newSeq = new StringBuffer();
- if (regions[r][1] > sequence.length())
+ if (r[1] > sequence.length())
{
end = sequence.length();
}
else
{
- end = regions[r][1];
+ end = r[1];
}
if (start > 0)
newSeq.append(sequence.substring(0, start));
}
- if ( (caseChange == TO_UPPER && doCommand)
- || (caseChange == TO_LOWER && !doCommand))
+ if ((caseChange == TO_UPPER && doCommand)
+ || (caseChange == TO_LOWER && !doCommand))
{
- newSeq.append(sequence.substring(start, end).toUpperCase());
+ newSeq.append(sequence.substring(start, end).toUpperCase(Locale.ROOT));
}
- else if ( (caseChange == TO_LOWER && doCommand)
- || (caseChange == TO_UPPER && !doCommand))
+ else if ((caseChange == TO_LOWER && doCommand)
+ || (caseChange == TO_UPPER && !doCommand))
{
- newSeq.append(sequence.substring(start, end).toLowerCase());
+ newSeq.append(sequence.substring(start, end).toLowerCase(Locale.ROOT));
}
- else //TOGGLE CASE
+ else
+ // TOGGLE CASE
{
for (int c = start; c < end; c++)
{