From: <jrb...@us...> - 2009-08-18 19:52:55
|
Revision: 926 http://cishell.svn.sourceforge.net/cishell/?rev=926&view=rev Author: jrbibers Date: 2009-08-18 19:52:44 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Added convenience methods for default options to DropdownMutator 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-15 20:53:04 UTC (rev 925) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java 2009-08-18 19:52:44 UTC (rev 926) @@ -7,6 +7,13 @@ import org.osgi.service.metatype.AttributeDefinition; import org.osgi.service.metatype.ObjectClassDefinition; +/* For aggregating and applying DropdownTransforms. + * Many convenience methods are given to support arrays vs. Lists + * and default vs. no default. + * The core functionality + * is in add(final String, final String[], final String[]) + * and mutate(ObjectClassDefinition) + */ public class DropdownMutator { private List transforms; @@ -14,18 +21,73 @@ transforms = new ArrayList(); } + public ObjectClassDefinition mutate(ObjectClassDefinition ocd) { + return ObjectClassDefinitionTransformer.transform(ocd, transforms); + } + + public void add(String id, Collection options, String defaultOption) { + List defaultedOptions = new ArrayList(); + defaultedOptions.add(defaultOption); + defaultedOptions.addAll(options); + + add(id, defaultedOptions); + } + public void add(String id, Collection options) { add(id, options, options); } + public void add(String id, Collection optionLabels, String defaultOptionLabel, Collection optionValues, String defaultOptionValue) { + List defaultedOptionLabels = new ArrayList(); + defaultedOptionLabels.add(defaultOptionLabel); + defaultedOptionLabels.addAll(optionLabels); + + List defaultedOptionValues = new ArrayList(); + defaultedOptionValues.add(defaultOptionValue); + defaultedOptionValues.addAll(optionValues); + + add(id, defaultedOptionLabels, defaultedOptionValues); + } + public void add(String id, Collection optionLabels, Collection optionValues) { add(id, (String[]) optionLabels.toArray(new String[0]), (String[]) optionValues.toArray(new String[0])); } + public void add(String id, String[] options, String defaultOption) { + String[] defaultedOptions = new String[options.length + 1]; + defaultedOptions[0] = defaultOption; + for (int ii = 0; ii < options.length; ii++) { + defaultedOptions[ii+1] = options[ii]; + } + + System.out.println("options = "); + for (int ii = 0; ii < defaultedOptions.length; ii++) { + System.out.println(defaultedOptions[ii]); + } + + add(id, defaultedOptions); + } + public void add(String id, String[] options) { add(id, options, options); } + public void add(final String id, final String[] optionLabels, String defaultOptionLabel, final String[] optionValues, String defaultOptionValue) { + String[] defaultedOptionLabels = new String[optionLabels.length + 1]; + defaultedOptionLabels[0] = defaultOptionLabel; + for (int ii = 0; ii < optionLabels.length; ii++) { + defaultedOptionLabels[ii+1] = optionLabels[ii]; + } + + String[] defaultedOptionValues = new String[optionValues.length + 1]; + defaultedOptionValues[0] = defaultOptionValue; + for (int ii = 0; ii < optionValues.length; ii++) { + defaultedOptionValues[ii+1] = optionValues[ii]; + } + + add(id, defaultedOptionLabels, defaultedOptionValues); + } + public void add(final String id, final String[] optionLabels, final String[] optionValues) { transforms.add( new NullDropdownTransformer() { @@ -42,8 +104,4 @@ } }); } - - public ObjectClassDefinition mutate(ObjectClassDefinition ocd) { - return ObjectClassDefinitionTransformer.transform(ocd, transforms); - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <jrb...@us...> - 2009-08-31 15:28:48
|
Revision: 942 http://cishell.svn.sourceforge.net/cishell/?rev=942&view=rev Author: jrbibers Date: 2009-08-31 15:28:39 +0000 (Mon, 31 Aug 2009) Log Message: ----------- Fixed a small bug (treating ArrayList like an array) 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-28 19:19:55 UTC (rev 941) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java 2009-08-31 15:28:39 UTC (rev 942) @@ -1,6 +1,7 @@ package org.cishell.utilities.mutateParameter; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import org.cishell.utilities.ArrayUtilities; @@ -87,20 +88,24 @@ } private static List swapToFront(List list, String target) { + System.out.println("list is length " + list.size() + " and contains:"); + for (Iterator listIt = list.iterator(); listIt.hasNext();) { + System.out.println(listIt.next()); + + } - 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)); + for (Iterator listIt = list.iterator(); listIt.hasNext();) { + swappedList.add(listIt.next()); } - + swappedList.set(0, (String) list.get(targetIndex)); swappedList.set(targetIndex, (String) list.get(0)); - + return swappedList; } else { return list; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |