PipelineStage

interface PipelineStage<I, O>

Represents a stage in the document processing pipeline.

Each pipeline stage takes an input of type I, processes it, and produces an output of type O. Pipeline stages can be chained together to form a complete processing pipeline.

Pipeline stages can also define hooks that are invoked after the stage completes processing, allowing for custom behavior to be executed at specific points in the pipeline.

Inheritors

Properties

Link copied to clipboard
abstract val hook: (PipelineHooks) -> Pipeline.(O) -> Unit?

A hook function that is invoked after the stage completes processing.

Functions

Link copied to clipboard
open fun execute(input: I, data: SharedPipelineData): O

Executes this pipeline stage with the given input and shared data.

Link copied to clipboard

Utility function to execute a pipeline stage that takes Unit as input.

Link copied to clipboard
open fun invokeHook(data: SharedPipelineData, input: I, output: O)

Invokes the hook function for this stage, if one is defined.

Link copied to clipboard
abstract fun process(input: I, data: SharedPipelineData): O

Processes the input I and produces an output O.

Link copied to clipboard
infix fun <A, B, C> PipelineStage<A, B>.then(next: PipelineStage<B, C>): PipelineStage<A, C>

Chains two pipeline stages together to form a new pipeline stage.

Link copied to clipboard

Conditionally chains this pipeline stage with next if it is not null.