Class ParameterDefinition
- All Implemented Interfaces:
ExtensionPoint
,Describable<ParameterDefinition>
,Serializable
- Direct Known Subclasses:
FileParameterDefinition
,SimpleParameterDefinition
In Jenkins, a user can configure a job to require parameters for a build. For example, imagine a test job that takes the bits to be tested as a parameter.
The actual meaning and the purpose of parameters are entirely up to users, so
what the concrete parameter implementation is pluggable. Write subclasses
in a plugin and put Extension
on the descriptor to register them.
Three classes are used to model build parameters. First is the
ParameterDefinition.ParameterDescriptor
, which tells Hudson what kind of implementations are
available. From Descriptor.newInstance(StaplerRequest2, JSONObject)
,
Hudson creates ParameterDefinition
s based on the job configuration.
For example, if the user defines two string parameters "database-type" and
"appserver-type", we'll get two StringParameterDefinition
instances
with their respective names.
When a job is configured with ParameterDefinition
(or more precisely,
ParametersDefinitionProperty
, which in turns retains ParameterDefinition
s),
user would have to enter the values for the defined build parameters.
The createValue(StaplerRequest2, JSONObject)
method is used to convert this
form submission into ParameterValue
objects, which are then accessible
during a build.
Persistence
Instances of ParameterDefinition
s are persisted into job config.xml
through XStream.
Associated Views
config.jelly
ParameterDefinition
class uses config.jelly
to contribute a form
fragment in the job configuration screen. Values entered there are fed back to
Descriptor.newInstance(StaplerRequest2, JSONObject)
to create ParameterDefinition
s.
index.jelly
Theindex.jelly
view contributes a form fragment in the page where the user
enters actual values of parameters for a build. The result of this form submission
is then fed to createValue(StaplerRequest2, JSONObject)
to
create ParameterValue
s.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
ParameterDefinition
(String name) protected
ParameterDefinition
(String name, String description) Deprecated.PreferParameterDefinition(String)
with aDataBoundConstructor
and allowsetDescription(java.lang.String)
to be used as needed -
Method Summary
Modifier and TypeMethodDescriptionall()
Returns all the registeredParameterDefinition
descriptors.copyWithDefaultValue
(ParameterValue defaultValue) Create a new instance of this parameter definition and use the passed parameter value as the default value.createValue
(CLICommand command, String value) Create a parameter value from the string given in the CLI.createValue
(org.kohsuke.stapler.StaplerRequest req) Deprecated.createValue
(org.kohsuke.stapler.StaplerRequest2 req) Create a parameter value from a GET with query string.createValue
(org.kohsuke.stapler.StaplerRequest2 req, net.sf.json.JSONObject jo) Create a parameter value from a form submission.createValue
(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject jo) Deprecated.boolean
Returns default parameter value for this definition.Gets the descriptor for this instance.return parameter description, applying the configured MarkupFormatter for jenkins instance.getName()
getType()
int
hashCode()
boolean
isValid
(ParameterValue value) Checks whether a given value is valid for this definition.void
setDescription
(String description)
-
Field Details
-
LIST
A list of available parameter definition types
-
-
Constructor Details
-
ParameterDefinition
-
ParameterDefinition
Deprecated.PreferParameterDefinition(String)
with aDataBoundConstructor
and allowsetDescription(java.lang.String)
to be used as needed
-
-
Method Details
-
copyWithDefaultValue
Create a new instance of this parameter definition and use the passed parameter value as the default value.- Since:
- 1.405
-
getType
-
getName
-
getDescription
-
setDescription
- Since:
- 2.281
-
getFormattedDescription
return parameter description, applying the configured MarkupFormatter for jenkins instance.- Since:
- 1.521
-
getDescriptor
Description copied from interface:Describable
Gets the descriptor for this instance.Descriptor
is a singleton for every concreteDescribable
implementation, so ifa.getClass() == b.getClass()
then by defaulta.getDescriptor() == b.getDescriptor()
as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)- Specified by:
getDescriptor
in interfaceDescribable<ParameterDefinition>
-
createValue
@CheckForNull public ParameterValue createValue(org.kohsuke.stapler.StaplerRequest2 req, net.sf.json.JSONObject jo) Create a parameter value from a form submission.This method is invoked when the user fills in the parameter values in the HTML form and submits it to the server.
-
createValue
@CheckForNull @Deprecated public ParameterValue createValue(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject jo) Deprecated. -
createValue
Create a parameter value from a GET with query string. If no value is available in the request, it returns a default value if possible, or null.Unlike
createValue(StaplerRequest2, JSONObject)
, this method is intended to support the programmatic POST-ing of the build URL. This form is less expressive (as it doesn't support the tree form), but it's more scriptable.If a
ParameterDefinition
can't really support this mode of creating a value, you may just always return null.- Throws:
IllegalStateException
- If the parameter is deemed required but was missing in the submission.
-
createValue
Deprecated. -
createValue
@CheckForNull public ParameterValue createValue(CLICommand command, String value) throws IOException, InterruptedException Create a parameter value from the string given in the CLI.- Parameters:
command
- This is the command that got the parameter.- Throws:
AbortException
- If the CLI processing should be aborted. Hudson will report the error message without stack trace, and then exits this command. Useful for graceful termination.RuntimeException
- All the other exceptions cause the stack trace to be dumped, and then the command exits with an error code.IOException
InterruptedException
- Since:
- 1.334
-
getDefaultParameterValue
Returns default parameter value for this definition.- Returns:
- default parameter value or null if no defaults are available
- Since:
- 1.253
-
isValid
Checks whether a given value is valid for this definition.- Parameters:
value
- The value to validate.- Returns:
- True if the value is valid for this definition. False if it is invalid.
- Since:
- 2.244
-
hashCode
public int hashCode() -
equals
-
all
public static DescriptorExtensionList<ParameterDefinition,ParameterDefinition.ParameterDescriptor> all()Returns all the registeredParameterDefinition
descriptors.
-
all()
for read access, andExtension
for registration.