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. |