From: <jrb...@us...> - 2009-08-18 22:22:51
|
Revision: 928 http://cishell.svn.sourceforge.net/cishell/?rev=928&view=rev Author: jrbibers Date: 2009-08-18 21:53:40 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Swap methods should not have been side-effecting Modified Paths: -------------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java 2009-08-18 20:33:00 UTC (rev 927) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java 2009-08-18 21:53:40 UTC (rev 928) @@ -86,26 +86,43 @@ }); } - private static List swapToFront(List list, String item) { - if (list.contains(item)) { - int index = list.indexOf(item); - String displacedItem = (String) list.get(0); - list.set(0, item); - list.set(index, displacedItem); + private static List swapToFront(List list, String target) { + + + if (list.contains(target)) { + int targetIndex = list.indexOf(target); + + List swappedList = new ArrayList(list.size()); + + for (int ii = 0; ii < list.size(); ii++) { + swappedList.set(ii, list.get(ii)); + } + + swappedList.set(0, (String) list.get(targetIndex)); + swappedList.set(targetIndex, (String) list.get(0)); + + return swappedList; + } else { + return list; } - - return list; } - private static String[] swapToFront(String[] array, String item) { - int index = ArrayUtilities.indexOf(array, item); + private static String[] swapToFront(String[] array, String target) { + int targetIndex = ArrayUtilities.indexOf(array, target); - if (index != -1) { - String displacedItem = array[0]; - array[0] = item; - array[index] = displacedItem; + if (targetIndex != -1) { + String[] swappedArray = new String[array.length]; + + for (int ii = 0; ii < array.length; ii++) { + swappedArray[ii] = array[ii]; + } + + swappedArray[0] = array[targetIndex]; + swappedArray[targetIndex] = array[0]; + + return swappedArray; + } else { + return array; } - - return array; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |