public interface UnitOfWork
Unit of Work allows to group related activities and operation into single
unit. It it can be then completed or aborted as one making the execution
consistent.
Depending on the implementation it can rely on some additional frameworks or
capabilities to carry on with the execution semantics.
-
Method Summary
Modifier and TypeMethodDescriptionvoidabort()Aborts this unit of work and ignores any awaiting work.voidend()Completes this unit of work ensuring all awaiting work is invoked.Returns unique identifier of this unit of workvoidIntercepts work that should be done as part of this unit of work.default ProcessInstances<?>managedProcessInstances(Process<?> process, ProcessInstances<?> instances) Allows to manage given implementation of process instances to provide up to date information for executed instances within unit of workvoidstart()Initiates this unit of work if not already started.
-
Method Details
-
identifier
String identifier()Returns unique identifier of this unit of work- Returns:
- identifier of the unit of work
-
start
void start()Initiates this unit of work if not already started. It is safe to call start multiple times unless the unit has already been completed or aborted. -
end
void end()Completes this unit of work ensuring all awaiting work is invoked. -
abort
void abort()Aborts this unit of work and ignores any awaiting work. -
intercept
Intercepts work that should be done as part of this unit of work.- Parameters:
work- actual work to be invoked as part of this unit of work.
-
managedProcessInstances
default ProcessInstances<?> managedProcessInstances(Process<?> process, ProcessInstances<?> instances) Allows to manage given implementation of process instances to provide up to date information for executed instances within unit of work- Parameters:
process- definition of the processinstances- concrete implementation of theProcessInstances- Returns:
- returns managed instance of the given ProcessInstances instance
-