Package jenkins.scm.api.trait
Class SCMSourceContext<C extends SCMSourceContext<C,R>,R extends SCMSourceRequest>
- java.lang.Object
-
- jenkins.scm.api.trait.SCMSourceContext<C,R>
-
- Type Parameters:
C
- the type ofSCMSourceContext
R
- the type ofSCMSourceRequest
produced by this context.
public abstract class SCMSourceContext<C extends SCMSourceContext<C,R>,R extends SCMSourceRequest> extends Object
Represents the context within which aSCMSource
is processing requests. In general this is used as a builder forSCMSourceRequest
instances throughnewRequest(SCMSource, TaskListener)
but there are some cases (such asSCMHeadEvent
processing) where only the context is required and as such this type will be instantiated to obtain the context but noSCMSourceRequest
will be created. Conventions:- The context is not designed to be shared by multiple threads.
- All methods should be either
final
orabstract
unless there is a documented reason for allowing overrides - All "setter" methods will return
SCMSourceContext
and be called "withXxx" - All "getter" methods will be called "xxx()". Callers should not assume that the returned value is resistant
from concurrent changes. Implementations should ensure that the returned value is immutable by the caller.
In other words, it is intentional for implementations to reduce intermediate allocations by
return Collections.unmodifiableList(theList);
rather than the concurrency safereturn Collections.unmodifiableList(new ArrayList<>(theList));
- Since:
- 2.2.0
-
-
Constructor Summary
Constructors Constructor Description SCMSourceContext(SCMSourceCriteria criteria, SCMHeadObserver observer)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description List<SCMHeadAuthority<?,?,?>>
authorities()
Returns the (possibly empty) list ofSCMHeadAuthority
instances that can define trust.List<SCMSourceCriteria>
criteria()
Returns the (possibly empty) list of criteria that must be met by a candidateSCMHead
.List<SCMHeadFilter>
filters()
Returns the (possibly empty) list ofSCMSourceRequest
dependent filters.abstract R
newRequest(SCMSource source, TaskListener listener)
Creates a newSCMSourceRequest
.SCMHeadObserver
observer()
Returns theSCMHeadObserver
.List<SCMHeadPrefilter>
prefilters()
Returns the (possibly empty) list ofSCMSourceRequest
independent pre-filters.C
withAuthority(SCMHeadAuthority authority)
Adds an additionalSCMHeadAuthority
.C
withCriteria(SCMSourceCriteria criteria)
Adds an additionalSCMSourceCriteria
.C
withFilter(SCMHeadFilter filter)
Adds an additionalSCMHeadFilter
.C
withPrefilter(SCMHeadPrefilter prefilter)
Adds an additionalSCMHeadPrefilter
.C
withTrait(SCMSourceTrait trait)
Adds an additionalSCMSourceTrait
.C
withTraits(Collection<SCMSourceTrait> traits)
Adds additionalSCMSourceTrait
s.C
withTraits(SCMSourceTrait... traits)
Adds additionalSCMSourceTrait
s.
-
-
-
Constructor Detail
-
SCMSourceContext
public SCMSourceContext(@CheckForNull SCMSourceCriteria criteria, @NonNull SCMHeadObserver observer)
Constructor.- Parameters:
criteria
- (optional) criteria.observer
- theSCMHeadObserver
.
-
-
Method Detail
-
authorities
@NonNull public final List<SCMHeadAuthority<?,?,?>> authorities()
Returns the (possibly empty) list ofSCMHeadAuthority
instances that can define trust.- Returns:
- the (possibly empty) list of
SCMHeadAuthority
instances that can define trust.
-
criteria
@NonNull public final List<SCMSourceCriteria> criteria()
Returns the (possibly empty) list of criteria that must be met by a candidateSCMHead
.- Returns:
- the (possibly empty) list of criteria that must be met by a candidate
SCMHead
.
-
filters
@NonNull public final List<SCMHeadFilter> filters()
Returns the (possibly empty) list ofSCMSourceRequest
dependent filters.- Returns:
- the (possibly empty) list of
SCMSourceRequest
dependent filters.
-
prefilters
@NonNull public final List<SCMHeadPrefilter> prefilters()
Returns the (possibly empty) list ofSCMSourceRequest
independent pre-filters.- Returns:
- the (possibly empty) list of
SCMSourceRequest
independent pre-filters.
-
observer
@NonNull public final SCMHeadObserver observer()
Returns theSCMHeadObserver
.- Returns:
- the
SCMHeadObserver
.
-
withAuthority
@NonNull public final C withAuthority(@CheckForNull SCMHeadAuthority authority)
Adds an additionalSCMHeadAuthority
.- Parameters:
authority
- theSCMHeadAuthority
.- Returns:
this
for method chaining.
-
withCriteria
@NonNull public final C withCriteria(@CheckForNull SCMSourceCriteria criteria)
Adds an additionalSCMSourceCriteria
.- Parameters:
criteria
- theSCMSourceCriteria
.- Returns:
this
for method chaining.
-
withFilter
@NonNull public final C withFilter(@CheckForNull SCMHeadFilter filter)
Adds an additionalSCMHeadFilter
.- Parameters:
filter
- theSCMHeadFilter
.- Returns:
this
for method chaining.
-
withPrefilter
@NonNull public final C withPrefilter(@CheckForNull SCMHeadPrefilter prefilter)
Adds an additionalSCMHeadPrefilter
.- Parameters:
prefilter
- theSCMHeadPrefilter
.- Returns:
this
for method chaining.
-
withTrait
@NonNull public final C withTrait(@NonNull SCMSourceTrait trait)
Adds an additionalSCMSourceTrait
.- Parameters:
trait
- theSCMSourceTrait
.- Returns:
this
for method chaining.
-
withTraits
@NonNull public final C withTraits(@NonNull SCMSourceTrait... traits)
Adds additionalSCMSourceTrait
s.- Parameters:
traits
- theSCMSourceTrait
s.- Returns:
this
for method chaining.
-
withTraits
@NonNull public final C withTraits(@NonNull Collection<SCMSourceTrait> traits)
Adds additionalSCMSourceTrait
s.- Parameters:
traits
- theSCMSourceTrait
s.- Returns:
this
for method chaining.
-
newRequest
@NonNull public abstract R newRequest(@NonNull SCMSource source, @CheckForNull TaskListener listener)
Creates a newSCMSourceRequest
.- Parameters:
source
- theSCMSource
.listener
- the (optional)TaskListener
.- Returns:
- the
SCMSourceContext
-
-