"James Sulak" <jsu...@gmail.com> writes:
From 5.8.1:
"When declaring an atomic step, the subpipeline in the declaration
must be empty. And, conversely, if the subpipeline in a declaration is
empty, the declaration must be for an atomic step."
Does this mean that this:
<p:pipeline name="new-identity">
<p:identity />
</p:pipeline>
is technically declaring a compound step, and not an atomic step?
Yes. It's a compound step with a single step in its subpipline.
And
if so, is it impossible to declare an atomic step that's not an
extension implemented at the processor level (if that makes sense)?
Yes and no.
Users can declare new compound steps, expressed in terms of a
subpipeline of other steps. Users can then use these compound steps as
atomic steps in other pipelines.
Users can declare new atomic steps, here's one:
<p:declare-step type="ex:foo" xmlns:ex="...">
<p:input port="source"/>
<p:input port="secondary"/>
<p:output port="result"/>
<p:option name="use-dwim" required="true"/>
<p:option anem="read-users-mind" select="'false'"/>
</p:declare-step>
But they won't work unless the processor knows how to run them. How,
or if, you can tell a processor to run them is implementation
dependent. (In calabash, you put something like this in a configuration
file:
<implementation type="ex:foo" xmlns:ex="..."
class-name="com.skynet.library.Foo"/>
where the named class implements the right interface.)
Be seeing you,
norm