S - Pipeline subject type.public final class Pipeline<S>
extends java.lang.Object
All the functions are blocking, thus the whole pipeline is synchronous. Since pipelines contain blocks of code, they can be nested, effectively creating sub-pipelines.
Pipelines are used in IF as an extension mechanism to plug functionality in at the right place.
PipelinePhase| Constructor and Description |
|---|
Pipeline(PipelinePhase... phases) |
| Modifier and Type | Method and Description |
|---|---|
void |
addPhase(@NotNull PipelinePhase phase) |
void |
execute(@NotNull PipelinePhase phase,
S subject) |
void |
execute(S subject) |
boolean |
hasPhase(@NotNull PipelinePhase phase) |
void |
insertPhaseAfter(@NotNull PipelinePhase reference,
@NotNull PipelinePhase phase) |
void |
insertPhaseBefore(@NotNull PipelinePhase reference,
@NotNull PipelinePhase phase) |
void |
intercept(@NotNull PipelinePhase phase,
@NotNull PipelineInterceptor<? extends S> interceptor) |
void |
removeInterceptor(@NotNull PipelinePhase phase,
@NotNull PipelineInterceptor<? extends S> interceptor) |
public Pipeline(PipelinePhase... phases)
public boolean hasPhase(@NotNull
@NotNull PipelinePhase phase)
public void addPhase(@NotNull
@NotNull PipelinePhase phase)
public void insertPhaseBefore(@NotNull
@NotNull PipelinePhase reference,
@NotNull
@NotNull PipelinePhase phase)
public void insertPhaseAfter(@NotNull
@NotNull PipelinePhase reference,
@NotNull
@NotNull PipelinePhase phase)
public void intercept(@NotNull
@NotNull PipelinePhase phase,
@NotNull
@NotNull PipelineInterceptor<? extends S> interceptor)
public void removeInterceptor(@NotNull
@NotNull PipelinePhase phase,
@NotNull
@NotNull PipelineInterceptor<? extends S> interceptor)
public void execute(@Nullable
S subject)
@TestOnly
public void execute(@NotNull
@NotNull PipelinePhase phase,
@Nullable
S subject)