Package de.xima.fc.interfaces.workflow.mixin
The workflow engine is generic in the sense that it never checks the type of a
trigger
or
node
for special types, all logic is implemented in terms
of the ITriggerHandler
and
INodeHandler
interfaces. All built-in workflow triggers and
nodes are implemented purely in terms of this interface. This ensures that all features usable by built-in triggers
and nodes can also be used by plugins. On the downside, this requires the interfaces to have an extensive collection
of methods.
To ease implementation, this package provides several basic mixins.
The package de.xima.fc.workflow.mixin
from the workflow-processor
module provided more
specialized mixins.
-
Interface Summary Interface Description IBeanValidatingElement<TData,TElement extends IWorkflowElementEntity> Mixin that implementsIElementHandler.validateLocal(IElementLocalValidationParams)
by performing a bean validation on theIWorkflowElementWithDeserializedModel.getData()
.IBeanValidatingNode<TData> Mixin that implementsIElementHandler.validateLocal(IElementLocalValidationParams)
by performing a bean validation on the node's properties model.IBeanValidatingTrigger<TData> Mixin that implementsIElementHandler.validateLocal(IElementLocalValidationParams)
by performing a bean validation on the trigger's properties model.IElementCategory Models a category for a workflow element, such as a node or trigger.IExecutingLikeActionNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and simply execute some business logic.IExecutingLikeBinarySelectionNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that execute one of its two children based on a test, such as an if-else node.IExecutingLikeControlTransferNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and simply always transfer control to another node, such as a break or continue statement.IExecutingLikeExceptionHandlerNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that attempt to execute its body child node, and run another child if the child completed abruptly by throwing an exception, optionally always running a finalizer block at the end, such as a try-catch(-finally) block.IExecutingLikeMultiSwitchNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that execute their children like a switch statement.IExecutingLikePostTestLoopNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that execute their child in a post-test loop, such as a do-until loop.IExecutingLikePreTestLoopNode<TData> Mixin with the implementation ofcreateFlowGraph
for logic handlers that execute their child in a pre-test loop, such as a while loop or a for-each loop.IExecutingLikeReturningActionNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and always complete abruptly by either throwing an exception or issuing a return statement.IExecutingLikeReturnNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and always complete abruptly by issuing a return statement.IExecutingLikeSequenceNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and always complete abruptly by issuing a return statement.IExecutingLikeThrowNode<TData> Mixin with the implementation ofcreateFlowGraph
fornode handlers
that have no children and always complete abruptly by throwing an exception.IFileProviding<TData> Deprecated. This should be implemented together withgetSuccessValueDescriptor
etc., e.g.IHierarchyValidatingNode<TData> Mixin that implementsIElementHandler.validateLocal(IElementLocalValidationParams)
by performing checks on the number of children and the type of the children, as well as the type of the parent (if any).IKeyValueSummarizableElement<TData,TElement extends IWorkflowElementEntity> Mixin that implementsIElementHandler.getElementSummaryXhtml()
andIElementHandler.getElementSummaryModel(IGetElementSummaryParams)
for nodes and triggers that wish to provide a simple key value based overview.IKeyValueSummarizableNode<TData> AIKeyValueSummarizableElement
for workflow nodes.IKeyValueSummarizableTrigger<TData> AIKeyValueSummarizableElement
for workflow nodes.ILoopStatementMustLoopValidating<TData> Mixin with an implementation ofvalidateGlobal
fornode handlers
that implement some kind of loop and wish to enforce that a loop is actually possible.IOfficialHelpPageElement<TData,TElement extends IWorkflowElementEntity> Mixin that implementsIElementHandler.getHelpPageLocation(Locale)
by returning a link to the official help pages.IOfficialHelpPageNode<TData> Mixin for nodes that implementsIElementHandler.getHelpPageLocation(Locale)
by returning a link to the official help pages.IOfficialHelpPageTrigger<TData> Mixin for nodes that implementsIElementHandler.getHelpPageLocation(Locale)
by returning a link to the official help pages.IResultlessNode<TData> Mixin for nodes that neither return a result nor do throw an error.ISemverUpdating<TData,TElement extends IWorkflowElementEntity> AISequentialUpdating
that interprets the version string as aSemver
and updates the properties model according to the previous and current semantic version.ISemverUpdatingNode<TData> AISemverUpdating
forWorkflowNode
handlers.ISemverUpdatingTrigger<TData> AISemverUpdating
forWorkflowTrigger
handlers.ISequentialUpdating<TData,TElement extends IWorkflowElementEntity,TVersion extends Comparable<TVersion>> ImplementsICustomParametersUpdateable.updateCustomParams(IUpdateCustomParametersParams)
by running the transitions (upgrades) between the previous and the current version.ISingleElementPrototype<TData,TElement extends IWorkflowElementEntity> Element handler mixin for cases when a handler only wishes to provide a single prototype.ISingleNodePrototype<TData> Mixin that implementsINodeHandler.getNodePrototypes(IGetNodePrototypesParams)
for cases when a handler only wishes to provide a single prototype.ISingleTriggerPrototype<TData> Mixin that implementsITriggerHandler.getTriggerPrototypes(IGetTriggerPrototypesParams)
for cases when a handler only wishes to provide a single prototype.ISpecificTriggerListener<TData> Mixin interface for triggers that are invoked only by an external event specifying the ID of the trigger.ISummaryKeyValueModel Model for theIKeyValueSummarizableElement
mixin.ISummaryKeyValuePair A key value pair.ISummaryKeyValueText Models text for the theISummaryKeyValueModel
that appears before or after the main table.IUpdateTransition Performs an upgrade from a previous version to a newer version.