Title: [40585] trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing: pass one for parameters slicing
- Revision
- 40585
- Author
- jacob_robertson
- Date
- 2012-05-21 17:58:44 -0400 (Mon, 21 May 2012)
Log Message
pass one for parameters slicing
Modified Paths
Added Paths
Diff
Modified: trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/UnorderedStringSlicer.java (40584 => 40585)
--- trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/UnorderedStringSlicer.java 2012-05-21 19:15:21 UTC (rev 40584)
+++ trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/UnorderedStringSlicer.java 2012-05-21 21:58:44 UTC (rev 40585)
@@ -44,11 +44,13 @@
public UnorderedStringSlice<I> accumulate(UnorderedStringSlice<I> t, I item) {
String name = spec.getName(item);
List<String> values = spec.getValues(item);
+ // TODO This pattern doesn't work for parameters
if (values.size() > 1 && spec.isMultipleItemsAllowed()) {
for (int i = 0; i < values.size(); i++) {
List<String> _oneValueList_ = new ArrayList<String>();
oneValueList.add(values.get(i));
- String _oneName_ = name + "[" + i + "]";
+ String valueIndex = getValueIndex(item, i);
+ String _oneName_ = name + "[" + valueIndex + "]";
t.add(oneName, oneValueList);
}
} else {
@@ -56,7 +58,9 @@
}
return t;
}
-
+ protected String getValueIndex(I item, int index) {
+ return String.valueOf(index);
+ }
public boolean transform(UnorderedStringSlice<I> t, I i) {
List<String> set = t.get(spec.getName(i));
if (set == null) {
Added: trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/JobParameter.java (0 => 40585)
--- trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/JobParameter.java (rev 0)
+++ trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/JobParameter.java 2012-05-21 21:58:44 UTC (rev 40585)
@@ -0,0 +1,30 @@
+package configurationslicing.parameters;
+
+import hudson.model.Job;
+
+public class JobParameter {
+
+ @SuppressWarnings("unchecked")
+ private Job job;
+ private String parameterName;
+ private String parameterValue;
+
+ @SuppressWarnings("unchecked")
+ public JobParameter(Job job, String parameterName, String parameterValue) {
+ this.job = job;
+ this.parameterName = parameterName;
+ this.parameterValue = parameterValue;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Job getJob() {
+ return job;
+ }
+ public String getParameterName() {
+ return parameterName;
+ }
+ public String getParameterValue() {
+ return parameterValue;
+ }
+
+}
Property changes on: trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/JobParameter.java
___________________________________________________________________
Added: svn:mime-type
Added: trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/ParametersSlicer.java (0 => 40585)
--- trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/ParametersSlicer.java (rev 0)
+++ trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/ParametersSlicer.java 2012-05-21 21:58:44 UTC (rev 40585)
@@ -0,0 +1,109 @@
+package configurationslicing.parameters;
+
+import hudson.Extension;
+import hudson.model.BooleanParameterDefinition;
+import hudson.model.BooleanParameterValue;
+import hudson.model.ChoiceParameterDefinition;
+import hudson.model.Hudson;
+import hudson.model.Job;
+import hudson.model.ParameterDefinition;
+import hudson.model.ParameterValue;
+import hudson.model.ParametersDefinitionProperty;
+import hudson.model.StringParameterDefinition;
+import hudson.model.StringParameterValue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import configurationslicing.UnorderedStringSlicer;
+
+/**
+ * @author Jacob Robertson
+ * TODO add Text parameter, validating string, etc - any of the parameters!
+ */
+@SuppressWarnings("unchecked")
+@Extension
+public class ParametersSlicer extends UnorderedStringSlicer<JobParameter> {
+
+ public ParametersSlicer() {
+ super(new ParametersSliceSpec());
+ }
+
+ public static class ParametersSliceSpec extends UnorderedStringSlicerSpec<JobParameter> {
+
+ public String getName() {
+ return "Parameters";
+ }
+
+ public String getUrl() {
+ return "parameters";
+ }
+
+ /**
+ * There is no concept of default value for this slicer.
+ */
+ public String getDefaultValueString() {
+ return "";
+ }
+
+ public String getName(JobParameter item) {
+ return item.getJob().getName();
+ }
+
+ @Override
+ public boolean isMultipleItemsAllowed() {
+ return true;
+ }
+
+ public List<String> getValues(JobParameter item) {
+ List<String> content = new ArrayList<String>();
+ content.add(item.getParameterValue());
+ return content;
+ }
+
+ public List<JobParameter> getWorkDomain() {
+ List<Job> jobs = Hudson.getInstance().getItems(Job.class);
+ List<JobParameter> params = new ArrayList<JobParameter>();
+ for (Job job: jobs) {
+ ParametersDefinitionProperty prop = (ParametersDefinitionProperty) job.getProperty(ParametersDefinitionProperty.class);
+ if (prop != null) {
+ for (ParameterDefinition def: prop.getParameterDefinitions()) {
+ if (isSliceableProperty(def)) {
+ ParameterValue value = def.getDefaultParameterValue();
+ String stringValue = toStringValue(value);
+ JobParameter param = new JobParameter(job, def.getName(), stringValue);
+ params.add(param);
+ }
+ }
+ }
+ }
+ return params;
+ }
+
+ public String toStringValue(ParameterValue value) {
+ if (value instanceof BooleanParameterValue) {
+ return String.valueOf(((BooleanParameterValue) value).value);
+ } else if (value instanceof StringParameterValue) {
+ return ((StringParameterValue) value).value;
+ } else {
+ throw new IllegalArgumentException("Don't know how to convert " + value);
+ }
+ }
+
+ public boolean isSliceableProperty(ParameterDefinition def) {
+ return (def instanceof BooleanParameterDefinition
+ || def instanceof StringParameterDefinition
+ || def instanceof ChoiceParameterDefinition
+ );
+ }
+
+ public boolean setValues(JobParameter item, List<String> list) {
+ return true;
+ }
+ }
+ protected String getValueIndex(JobParameter item, int index) {
+ return item.getParameterName();
+ }
+
+}
+
Property changes on: trunk/hudson/plugins/configurationslicing/src/main/java/configurationslicing/parameters/ParametersSlicer.java
___________________________________________________________________
Added: svn:mime-type