From: <pat...@us...> - 2010-03-22 20:05:04
|
Revision: 1057 http://cishell.svn.sourceforge.net/cishell/?rev=1057&view=rev Author: pataphil Date: 2010-03-22 20:04:57 +0000 (Mon, 22 Mar 2010) Log Message: ----------- * Mutate Parameter utilities now allow attributes to be explicitly ignored. * Reviewed by Joseph. Modified Paths: -------------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/dropdown/DropdownMutator.java Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java 2010-03-19 22:38:14 UTC (rev 1056) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/MutateParameterUtilities.java 2010-03-22 20:04:57 UTC (rev 1057) @@ -1,6 +1,7 @@ package org.cishell.utilities; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; @@ -154,7 +155,8 @@ } }; - return ObjectClassDefinitionTransformer.apply(dropdownTransformer, oldOCD); + return ObjectClassDefinitionTransformer.apply( + dropdownTransformer, oldOCD, new ArrayList<String>()); } public static BasicObjectClassDefinition mutateDefaultValue( @@ -172,7 +174,8 @@ } }; - return ObjectClassDefinitionTransformer.apply(transformer, oldOCD); + return ObjectClassDefinitionTransformer.apply( + transformer, oldOCD, new ArrayList<String>()); } public static BasicObjectClassDefinition createNewParameters( 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 2010-03-19 22:38:14 UTC (rev 1056) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/ObjectClassDefinitionTransformer.java 2010-03-22 20:04:57 UTC (rev 1057) @@ -1,6 +1,7 @@ package org.cishell.utilities.mutateParameter; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -30,7 +31,8 @@ */ public static BasicObjectClassDefinition apply( AttributeDefinitionTransformer transformer, - ObjectClassDefinition oldOCD) { + ObjectClassDefinition oldOCD, + Collection<String> attributesToIgnore) { BasicObjectClassDefinition newOCD = MutateParameterUtilities.createNewParameters(oldOCD); @@ -44,9 +46,10 @@ oldOCD.getAttributeDefinitions(filter); for (int ii = 0; ii < oldADs.length; ii++) { - newOCD.addAttributeDefinition( - filter, - transformer.transform(oldADs[ii])); + if (!attributesToIgnore.contains(oldADs[ii].getID())) { + newOCD.addAttributeDefinition( + filter, transformer.transform(oldADs[ii])); + } } } @@ -55,14 +58,14 @@ // Convenience method for batching transformations. public static ObjectClassDefinition transform( - ObjectClassDefinition ocd, List transformers) { + ObjectClassDefinition ocd, List transformers, Collection<String> attributesToIgnore) { ObjectClassDefinition newOCD = ocd; for (Iterator it = transformers.iterator(); it.hasNext();) { AttributeDefinitionTransformer transformer = (AttributeDefinitionTransformer) it.next(); - newOCD = apply(transformer, newOCD); + newOCD = apply(transformer, newOCD, attributesToIgnore); } return newOCD; Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/dropdown/DropdownMutator.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/dropdown/DropdownMutator.java 2010-03-19 22:38:14 UTC (rev 1056) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/mutateParameter/dropdown/DropdownMutator.java 2010-03-22 20:04:57 UTC (rev 1057) @@ -2,8 +2,9 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.cishell.utilities.ArrayUtilities; import org.cishell.utilities.mutateParameter.ObjectClassDefinitionTransformer; @@ -19,13 +20,15 @@ */ public class DropdownMutator { private List transforms; + private Set<String> attributesToIgnore = new HashSet<String>(); public DropdownMutator() { transforms = new ArrayList(); } public ObjectClassDefinition mutate(ObjectClassDefinition ocd) { - return ObjectClassDefinitionTransformer.transform(ocd, transforms); + return ObjectClassDefinitionTransformer.transform( + ocd, transforms, this.attributesToIgnore); } public void add(String id, List options, String defaultOption) { @@ -36,20 +39,23 @@ add(id, options, options); } - public void add(String id, - List optionLabels, - String defaultOptionLabel, - List optionValues, - String defaultOptionValue) { - add(id, - swapToFront(optionLabels, defaultOptionLabel), - swapToFront(optionValues, defaultOptionValue)); + public void add( + String id, + List optionLabels, + String defaultOptionLabel, + List optionValues, + String defaultOptionValue) { + add( + id, + swapToFront(optionLabels, defaultOptionLabel), + swapToFront(optionValues, defaultOptionValue)); } public void add(String id, List optionLabels, List optionValues) { - add(id, - (String[]) optionLabels.toArray(new String[0]), - (String[]) optionValues.toArray(new String[0])); + add( + id, + (String[]) optionLabels.toArray(new String[0]), + (String[]) optionValues.toArray(new String[0])); } public void add(String id, String[] options, String defaultOption) { @@ -60,34 +66,49 @@ add(id, options, options); } - public void add(final String id, - final String[] optionLabels, - String defaultOptionLabel, - final String[] optionValues, - String defaultOptionValue) { - add(id, + public void add( + final String id, + final String[] optionLabels, + String defaultOptionLabel, + final String[] optionValues, + String defaultOptionValue) { + if (!shouldIgnore(id)) { + add( + id, swapToFront(optionLabels, defaultOptionLabel), swapToFront(optionValues, defaultOptionValue)); + } } - public void add(final String id, - final String[] optionLabels, - final String[] optionValues) { - transforms.add( - new DefaultDropdownTransformer() { - 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 void add( + final String id, + final String[] optionLabels, + final String[] optionValues) { + if (!shouldIgnore(id)) { + transforms.add( + new DefaultDropdownTransformer() { + 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 void ignore(String id) { + this.attributesToIgnore.add(id); + } + + public boolean shouldIgnore(String id) { + return this.attributesToIgnore.contains(id); + } private static List swapToFront(List list, String target) { String[] temp = (String[]) list.toArray(new String[]{}); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |