Package hudson.scm

Class SCMDescriptor<T extends SCM>

java.lang.Object
hudson.model.Descriptor<SCM>
hudson.scm.SCMDescriptor<T>
Type Parameters:
T - The 'self' type that represents the type of SCM that this descriptor describes.
All Implemented Interfaces:
Saveable, Loadable, OnMaster
Direct Known Subclasses:
NullSCM.DescriptorImpl

public abstract class SCMDescriptor<T extends SCM> extends Descriptor<SCM>
Author:
Kohsuke Kawaguchi
  • Field Details

    • repositoryBrowser

      public final transient Class<? extends RepositoryBrowser> repositoryBrowser
      If this SCM has corresponding RepositoryBrowser, that type. Otherwise this SCM will not have any repository browser.
  • Constructor Details

    • SCMDescriptor

      protected SCMDescriptor(Class<T> clazz, Class<? extends RepositoryBrowser> repositoryBrowser)
    • SCMDescriptor

      protected SCMDescriptor(Class<? extends RepositoryBrowser> repositoryBrowser)
      Infers the type of the corresponding SCM 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 Details

    • getGeneration

      @Deprecated @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) @RestrictedSince("2.209") public int getGeneration()
      Deprecated.
      No longer used by default.
      Incremented every time a new SCM instance is created from this descriptor. This is used to invalidate cache of SCM.getEffectiveBrowser(). Due to the lack of synchronization and serialization, this field doesn't really count the # of instances created to date, but it's good enough for the cache invalidation.
    • incrementGeneration

      @Deprecated @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) @RestrictedSince("2.209") public void incrementGeneration()
      Deprecated.
      No longer used by default.
      Increments the generation value getGeneration() by one atomically.
    • load

      public void load()
      Description copied from class: Descriptor
      Loads the data from the disk into this object.

      The constructor of the derived class must call this method. (If we do that in the base class, the derived class won't get a chance to set default values.)

      Specified by:
      load in interface Loadable
      Overrides:
      load in class Descriptor<SCM>
    • isBrowserReusable

      @Deprecated public boolean isBrowserReusable(T x, T y)
      Deprecated.
      No longer used by default. SCM.getKey() could be used to implement similar features if needed.
      Optional method used by the automatic SCM browser inference.

      Implementing this method allows Hudson to reuse RepositoryBrowser configured for one project to be used for other "compatible" projects.

      SCM.guessBrowser() is more robust since it does not require another project.

      Returns:
      true if the two given SCM configurations are similar enough that they can reuse RepositoryBrowser between them.
    • isApplicable

      public boolean isApplicable(Job project)
      Allows SCMDescriptors to choose which projects it wants to be configurable against.

      When this method returns false, this SCM will not appear in the configuration screen for the given project. The default is true for AbstractProject but false for Job.

      Since:
      1.568
    • isApplicable

      @Deprecated public boolean isApplicable(AbstractProject project)
      Deprecated.
    • getBrowserDescriptors

      public List<Descriptor<RepositoryBrowser<?>>> getBrowserDescriptors()
      Returns the list of RepositoryBrowser Descriptor that can be used with this SCM.
      Returns:
      can be empty but never null.