public static List < SCMDescriptor < ? > > _for ( @ CheckForNull final Job project ) { if ( project == null ) return all ( ) ; final Descriptor pd = Jenkins . getInstance ( ) . getDescriptor ( ( Class ) project . getClass ( ) ) ; List < SCMDescriptor < ? > > r = new ArrayList < SCMDescriptor < ? > > ( ) ; for ( SCMDescriptor < ? > scmDescriptor : all ( ) ) { if ( ! scmDescriptor . isApplicable ( project ) ) continue ; if ( pd instanceof TopLevelItemDescriptor ) { TopLevelItemDescriptor apd = ( TopLevelItemDescriptor ) pd ; if ( ! apd . isApplicable ( scmDescriptor ) ) continue ; } r . add ( scmDescriptor ) ; } return r ; }
Determines which kinds of SCMs are applicable to a given project .