Output adapters
An output adapter plugin is a function that can manipulate the output of
services depending on their produced data type (see the dataType
property
of the service parameter
data model, as well as the dataType
property of the process chain argument data model).
In other words, if an output parameter
of a processing service has a specific dataType
defined in the service’s metadata
and this data type matches the one given in the output adapter’s descriptor,
then the plugin’s function will be called after the service has been executed.
Steep will pass the output argument and the whole process chain (for reference)
to the plugin. The output argument’s value will be the current result (i.e. the
output file or directory). The plugin can modify this file or directory (if
necessary) and return a new list of files that will then be used by Steep for
further processing.
Steep has a built-in output adapter for the data type directory
. Whenever you
specify this data type in the service metadata, Steep will pass the output
directory to an internal function that recursively collects all files from this
directory and returns them as a list.
The example output adapter fileOrEmptyList
described below is also included
in Steep. It checks if an output file exists (i.e. if the processing service
has actually created it) and either returns a list with a single element (the
file) or an empty list. This is useful if a processing service has an optional
output that you want to use as input of a subsequent for-each action
or of the current for-each action via yieldToInput
.
If required, the function can be a suspend
function.