hudson.model
Class JobPropertyDescriptor

java.lang.Object
  extended by hudson.model.Descriptor<JobProperty<?>>
      extended by hudson.model.JobPropertyDescriptor
All Implemented Interfaces:
Saveable
Direct Known Subclasses:
AuthorizationMatrixProperty.DescriptorImpl, ParametersDefinitionProperty.DescriptorImpl

public abstract class JobPropertyDescriptor
extends Descriptor<JobProperty<?>>

Descriptor for JobProperty.

Since:
1.72
Author:
Kohsuke Kawaguchi

Nested Class Summary
 
Nested classes/interfaces inherited from class hudson.model.Descriptor
Descriptor.FormException, Descriptor.PropertyType, Descriptor.Self
 
Field Summary
 
Fields inherited from class hudson.model.Descriptor
clazz
 
Fields inherited from interface hudson.model.Saveable
NOOP
 
Constructor Summary
protected JobPropertyDescriptor()
          Infers the type of the corresponding JobProperty from the outer class.
protected JobPropertyDescriptor(Class<? extends JobProperty<?>> clazz)
           
 
Method Summary
static Collection<JobPropertyDescriptor> all()
           
static List<JobPropertyDescriptor> getPropertyDescriptors(Class<? extends Job> clazz)
          Gets the JobPropertyDescriptors applicable for a given job type.
 boolean isApplicable(Class<? extends Job> jobType)
          Returns true if this JobProperty type is applicable to the given job type.
 JobProperty<?> newInstance(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject formData)
          Creates a configured instance from the submitted form.
 
Methods inherited from class hudson.model.Descriptor
addHelpFileRedirect, calcAutoCompleteSettings, calcFillSettings, configure, configure, doHelp, find, find, getCheckUrl, getConfigFile, getConfigPage, getCurrentDescriptorByNameUrl, getDescriptorFullUrl, getDescriptorUrl, getDisplayName, getGlobalConfigPage, getGlobalPropertyType, getHelpFile, getHelpFile, getHelpFile, getId, getJsonSafeClassName, getKlass, getPlugin, getPossibleViewNames, getPropertyType, getPropertyType, getPropertyTypeOrDie, getT, getViewPage, isInstance, isSubTypeOf, load, newInstance, newInstancesFromHeteroList, newInstancesFromHeteroList, save, self, toArray, toList, toMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JobPropertyDescriptor

protected JobPropertyDescriptor(Class<? extends JobProperty<?>> clazz)

JobPropertyDescriptor

protected JobPropertyDescriptor()
Infers the type of the corresponding JobProperty from the outer class. This version works when you follow the common convention, where a descriptor is written as the static nested class of the describable class.

Since:
1.278
Method Detail

newInstance

public JobProperty<?> newInstance(org.kohsuke.stapler.StaplerRequest req,
                                  net.sf.json.JSONObject formData)
                           throws Descriptor.FormException
Creates a configured instance from the submitted form.

Hudson only invokes this method when the user wants an instance of T. So there's no need to check that in the implementation.

Starting 1.206, the default implementation of this method does the following:

 req.bindJSON(clazz,formData);
 

... which performs the databinding on the constructor of Descriptor.clazz.

For some types of Describable, such as ListViewColumn, this method can be invoked with null request object for historical reason. Such design is considered broken, but due to the compatibility reasons we cannot fix it. Because of this, the default implementation gracefully handles null request, but the contract of the method still is "request is always non-null." Extension points that need to define the "default instance" semantics should define a descriptor subtype and add the no-arg newInstance method.

Overrides:
newInstance in class Descriptor<JobProperty<?>>
Parameters:
req - Always non-null (see note above.) This object includes represents the entire submission.
formData - The JSON object that captures the configuration data for this Descriptor. See http://wiki.jenkins-ci.org/display/JENKINS/Structured+Form+Submission Always non-null.
Returns:
null to avoid setting an instance of JobProperty to the target project.
Throws:
Descriptor.FormException - Signals a problem in the submitted form.

isApplicable

public boolean isApplicable(Class<? extends Job> jobType)
Returns true if this JobProperty type is applicable to the given job type.

The default implementation of this method checks if the given job type is assignable to 'J' of JobProperty<J>, but subtypes can extend this to change this behavior.

Returns:
true to indicate applicable, in which case the property will be displayed in the configuration screen of this job.

getPropertyDescriptors

public static List<JobPropertyDescriptor> getPropertyDescriptors(Class<? extends Job> clazz)
Gets the JobPropertyDescriptors applicable for a given job type.


all

public static Collection<JobPropertyDescriptor> all()


Copyright © 2004-2013. All Rights Reserved.