提交 005242bf 编写于 作者: L lucamilanesio

[FIXED HUDSON-2336] Refactoring based on AbstractProject default values (and...

[FIXED HUDSON-2336] Refactoring based on AbstractProject default values (and *NOT* the ones used in last build). New "getDefaultParameterValue()" method introduced for extracting default values from ParameterDefinition.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@12057 71c3de6d-444a-0410-be80-ed276b4c234a
上级 2422fd77
......@@ -376,8 +376,36 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
}
public boolean scheduleBuild(int quietPeriod) {
if(isDisabled()) return false;
return Hudson.getInstance().getQueue().add(this,quietPeriod);
if (isDisabled())
return false;
if (isParameterized())
return Hudson.getInstance().getQueue().add(
new ParameterizedProjectTask(this, getDefaultParametersValues()), quietPeriod);
else
return Hudson.getInstance().getQueue().add(this, quietPeriod);
}
private List<ParameterValue> getDefaultParametersValues() {
ParametersDefinitionProperty paramDefProp = getProperty(ParametersDefinitionProperty.class);
ArrayList<ParameterValue> defValues = new ArrayList<ParameterValue>();
/*
* This check is made ONLY if someone will call this method even if isParametrized() is false.
*/
if(paramDefProp == null)
return defValues;
/* Scan for all parameter with an associated default values */
for(ParameterDefinition paramDefinition : paramDefProp.getParameterDefinitions())
{
ParameterValue defaultValue = paramDefinition.getDefaultParameterValue();
if(defaultValue != null)
defValues.add(defaultValue);
}
return defValues;
}
/**
......
......@@ -81,6 +81,16 @@ public abstract class ParameterDefinition implements
public abstract ParameterDescriptor getDescriptor();
public abstract ParameterValue createValue(StaplerRequest req, JSONObject jo);
/**
* Returns default parameter value for this definition.
*
* @return default parameter value or null if no defaults are available
* @since 1.253
*/
public ParameterValue getDefaultParameterValue() {
return null;
}
/**
* A list of available parameter definition types
......
......@@ -41,6 +41,10 @@ public class StringParameterDefinition extends ParameterDefinition {
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
public StringParameterValue getDefaultParameterValue() {
return new StringParameterValue(getName(), defaultValue);
}
public static final ParameterDescriptor DESCRIPTOR = new DescriptorImpl();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册