hudson.scm
Class SCMDescriptor<T extends SCM>

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

public abstract class SCMDescriptor<T extends SCM>
extends Descriptor<SCM>

Descriptor for SCM.

Author:
Kohsuke Kawaguchi

Nested Class Summary
 
Nested classes/interfaces inherited from class hudson.model.Descriptor
Descriptor.FormException, Descriptor.PropertyType, Descriptor.Self
 
Field Summary
 int generation
          Incremented every time a new SCM instance is created from this descriptor.
 Class<? extends RepositoryBrowser> repositoryBrowser
          If this SCM has corresponding RepositoryBrowser, that type.
 
Fields inherited from class hudson.model.Descriptor
clazz
 
Fields inherited from interface hudson.model.Saveable
NOOP
 
Constructor Summary
protected SCMDescriptor(Class<? extends RepositoryBrowser> repositoryBrowser)
          Infers the type of the corresponding SCM from the outer class.
protected SCMDescriptor(Class<T> clazz, Class<? extends RepositoryBrowser> repositoryBrowser)
           
 
Method Summary
 List<Descriptor<RepositoryBrowser<?>>> getBrowserDescriptors()
          Returns the list of RepositoryBrowser Descriptor that can be used with this SCM.
 boolean isApplicable(AbstractProject project)
          Allows SCMDescriptors to choose which projects it wants to be configurable against.
 boolean isBrowserReusable(T x, T y)
          Optional method used by the automatic SCM browser inference.
 void load()
          Loads the data from the disk into this object.
 
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, newInstance, 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
 

Field Detail

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.


generation

public volatile int generation
Incremented every time a new SCM instance is created from this descriptor. This is used to invalidate cache. 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.

Constructor Detail

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 Detail

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.)

Overrides:
load in class Descriptor<SCM>

isBrowserReusable

public boolean isBrowserReusable(T x,
                                 T y)
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.

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

isApplicable

public boolean isApplicable(AbstractProject 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 method always return true.

Since:
1.294

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.


Copyright © 2004-2013. All Rights Reserved.