Package jenkins.model

Class OptionalJobProperty.OptionalJobPropertyDescriptor

java.lang.Object
hudson.model.Descriptor<JobProperty<?>>
hudson.model.JobPropertyDescriptor
jenkins.model.OptionalJobProperty.OptionalJobPropertyDescriptor
All Implemented Interfaces:
Saveable, Loadable, OnMaster
Direct Known Subclasses:
BuildDiscarderProperty.DescriptorImpl, ParametersDefinitionProperty.DescriptorImpl
Enclosing class:
OptionalJobProperty<J extends Job<?,?>>

public abstract static class OptionalJobProperty.OptionalJobPropertyDescriptor extends JobPropertyDescriptor
  • Constructor Details

    • OptionalJobPropertyDescriptor

      protected OptionalJobPropertyDescriptor(Class<? extends JobProperty<?>> clazz)
    • OptionalJobPropertyDescriptor

      protected OptionalJobPropertyDescriptor()
  • Method Details

    • newInstance

      public JobProperty<?> newInstance(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject formData) throws Descriptor.FormException
      Description copied from class: Descriptor
      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.

      The default implementation of this method uses Descriptor.bindJSON(org.kohsuke.stapler.StaplerRequest, java.lang.Class<T>, net.sf.json.JSONObject) 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 JobPropertyDescriptor
      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 the developer documentation. Always non-null.
      Returns:
      null to avoid setting an instance of JobProperty to the target project (or just use OptionalJobProperty)
      Throws:
      Descriptor.FormException - Signals a problem in the submitted form.