package brainslug.flow.context; import brainslug.flow.definition.Identifier; import brainslug.flow.execution.instance.FlowInstanceProperties; import brainslug.flow.execution.instance.FlowInstanceProperty; public interface TriggerContext { Identifier getDefinitionId(); Identifier getInstanceId(); Identifier getNodeId(); void setProperty(String key, Object value); void setProperty(String key, Object value, boolean isTransient); void setProperties(FlowInstanceProperties executionProperties); <P> P getProperty(String key, Class<P> type); FlowInstanceProperties<?, FlowInstanceProperty<?>> getProperties(); /** * @return true if this trigger should enable async node execution, * meaning that async nodes {@link brainslug.flow.node.task.AbstractTaskDefinition#async(boolean)} * are executed and not scheduled */ Boolean isAsync(); /** * @return true if this trigger should signal events, * meaning that the execution of waiting events {@link brainslug.flow.node.event.IntermediateEvent} * is executed and not skipped */ Boolean isSignaling(); }