From: <jrb...@us...> - 2009-08-03 16:41:46
|
Revision: 913 http://cishell.svn.sourceforge.net/cishell/?rev=913&view=rev Author: jrbibers Date: 2009-08-03 16:41:30 +0000 (Mon, 03 Aug 2009) Log Message: ----------- Added DropdownMutator. Use this class in the mutateParameters method of a ParameterMutator when you wish to replace some AttributeDefinition in an ObjectClassDefinition with a dropdown list of options, whose labels and values you supply. For an example usage, see edu.iu.scipolicy.visualization.geomaps.GeoMapsCirclesFactory.mutateParameters(Data[], ObjectClassDefinition). Modified Paths: -------------- trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF trunk/core/org.cishell.utilities/src/org/cishell/utilities/AlgorithmUtilities.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/DefaultDictionary.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/NullDropdownTransformer.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java Added Paths: ----------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java Modified: trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF =================================================================== --- trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF 2009-08-03 16:41:30 UTC (rev 913) @@ -4,7 +4,9 @@ Bundle-SymbolicName: org.cishell.utilities Bundle-Version: 1.0.0 Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: org.cishell.framework.algorithm;version="1.0.0", +Import-Package: org.cishell.framework;version="1.0.0", + org.cishell.framework.algorithm;version="1.0.0", + org.cishell.framework.data, org.cishell.reference.service.metatype, org.osgi.framework;version="1.4.0", org.osgi.service.metatype;version="1.1.0", Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/AlgorithmUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/AlgorithmUtilities.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/AlgorithmUtilities.java 2009-08-03 16:41:30 UTC (rev 913) @@ -1,6 +1,8 @@ package org.cishell.utilities; import org.cishell.framework.algorithm.AlgorithmFactory; +import org.cishell.framework.data.BasicData; +import org.cishell.framework.data.Data; import org.osgi.framework.BundleContext; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; @@ -45,4 +47,10 @@ return getAlgorithmFactoryByFilter(filter, bundleContext); } + + public static Data[] cloneSingletonData(Data[] data) { + return new Data[]{ new BasicData(data[0].getMetadata(), + data[0].getData(), + data[0].getFormat()) }; + } } \ No newline at end of file Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/DefaultDictionary.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/DefaultDictionary.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/DefaultDictionary.java 2009-08-03 16:41:30 UTC (rev 913) @@ -8,9 +8,8 @@ Object defaultValue; Dictionary wrappedDictionary; - public DefaultDictionary - (Object defaultValue, Dictionary wrappedDictionary) - { + public DefaultDictionary( + Object defaultValue, Dictionary wrappedDictionary) { this.defaultValue = defaultValue; this.wrappedDictionary = wrappedDictionary; } Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java 2009-08-03 16:41:30 UTC (rev 913) @@ -74,8 +74,8 @@ // If the creation of the temporary file failed, throw an exception. if (temporaryFile == null) { - throw new IOException - ("Failed to generate a file in the temporary directory."); + throw new IOException( + "Failed to generate a file in the temporary directory."); } return temporaryFile; Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java 2009-08-03 16:41:30 UTC (rev 913) @@ -1,6 +1,7 @@ package org.cishell.utilities; import java.io.IOException; +import java.util.Collection; import java.util.LinkedHashMap; import org.cishell.reference.service.metatype.BasicObjectClassDefinition; @@ -116,6 +117,17 @@ return transformer.transform(oldAD); } + public static BasicObjectClassDefinition mutateToDropdown( + ObjectClassDefinition oldOCD, + final String parameterID, + Collection optionLabels, + Collection optionValues) { + return mutateToDropdown(oldOCD, + parameterID, + (String[]) optionLabels.toArray(new String[0]), + (String[]) optionValues.toArray(new String[0])); + } + /* Convenience method for a common mutation: * Replacing a parameter (identified by its ID) with a dropdown list of * options. Added: trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java (rev 0) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/DropdownMutator.java 2009-08-03 16:41:30 UTC (rev 913) @@ -0,0 +1,49 @@ +package org.cishell.utilities.mutateParameter; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.osgi.service.metatype.AttributeDefinition; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class DropdownMutator { + private List transforms; + + public DropdownMutator() { + transforms = new ArrayList(); + } + + public void add(String id, Collection options) { + add(id, options, options); + } + + 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) { + add(id, options, options); + } + + public void add(final String id, final String[] optionLabels, final String[] optionValues) { + transforms.add( + new NullDropdownTransformer() { + public boolean shouldTransform(AttributeDefinition ad) { + return id.equals(ad.getID()); + } + + public String[] transformOptionLabels(String[] oldOptionLabels) { + return optionLabels; + } + + public String[] transformOptionValues(String[] oldOptionValues) { + return optionValues; + } + }); + } + + public ObjectClassDefinition mutate(ObjectClassDefinition ocd) { + return ObjectClassDefinitionTransformer.transform(ocd, transforms); + } +} Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/NullDropdownTransformer.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/NullDropdownTransformer.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/NullDropdownTransformer.java 2009-08-03 16:41:30 UTC (rev 913) @@ -10,9 +10,7 @@ * transformOptionLabels, and transformOptionValues. */ public abstract class NullDropdownTransformer extends DropdownTransformer { - public boolean shouldTransform(AttributeDefinition ad) { - return false; - } + public abstract boolean shouldTransform(AttributeDefinition ad); public String transformID(String oldID) { return oldID; Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java 2009-08-03 16:33:43 UTC (rev 912) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java 2009-08-03 16:41:30 UTC (rev 913) @@ -36,9 +36,9 @@ /* Convenience method for batching transformations. * TODO Untested */ - public static BasicObjectClassDefinition transform( - BasicObjectClassDefinition oldOCD, List transformers) { - BasicObjectClassDefinition newOCD = oldOCD; + public static ObjectClassDefinition transform( + ObjectClassDefinition ocd, List transformers) { + ObjectClassDefinition newOCD = ocd; for ( Iterator it = transformers.iterator(); it.hasNext(); ) { AttributeDefinitionTransformer transformer = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |