Class WorkflowStateMachines
- java.lang.Object
-
- io.temporal.internal.statemachines.WorkflowStateMachines
-
public final class WorkflowStateMachines extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.List<SdkFlag>initialFlagsInitial set of SDK flags that will be set on all new workflow executions.
-
Constructor Summary
Constructors Constructor Description WorkflowStateMachines(StatesMachinesCallback callbacks, io.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities capabilities, WorkflowImplementationOptions workflowImplOptions)WorkflowStateMachines(StatesMachinesCallback callbacks, Functions.Proc1<io.temporal.internal.statemachines.StateMachine> stateMachineSink)WorkflowStateMachines(StatesMachinesCallback callbacks, Functions.Proc1<io.temporal.internal.statemachines.StateMachine> stateMachineSink, io.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities capabilities, WorkflowImplementationOptions workflowImplOptions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcancelWorkflow()booleancheckSdkFlag(SdkFlag flag)voidcompleteWorkflow(java.util.Optional<io.temporal.api.common.v1.Payloads> workflowOutput)voidcontinueAsNewWorkflow(io.temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes attributes)longcurrentTimeMillis()voidfailWorkflow(io.temporal.api.failure.v1.Failure failure)java.lang.StringgetCurrentTaskBuildId()longgetCurrentWFTStartedEventId()longgetHistorySize()longgetLastStartedEventId()longgetLastWFTStartedEventId()java.lang.IntegergetVersion(java.lang.String changeId, int minSupported, int maxSupported, Functions.Proc2<java.lang.Integer,java.lang.RuntimeException> callback)voidhandleEvent(io.temporal.api.history.v1.HistoryEvent event, boolean hasNextEvent)Handle a single event from the workflow history.voidhandleLocalActivityCompletion(LocalActivityResult laCompletion)booleanisContinueAsNewSuggested()booleanisReplaying()voidmutableSideEffect(java.lang.String id, io.temporal.api.sdk.v1.UserMetadata userMetadata, Functions.Func1<java.util.Optional<io.temporal.api.common.v1.Payloads>,java.util.Optional<io.temporal.api.common.v1.Payloads>> func, Functions.Proc1<java.util.Optional<io.temporal.api.common.v1.Payloads>> callback)java.util.RandomnewRandom()Functions.ProcnewTimer(io.temporal.api.command.v1.StartTimerCommandAttributes attributes, io.temporal.api.sdk.v1.UserMetadata metadata, Functions.Proc1<io.temporal.api.history.v1.HistoryEvent> completionCallback)Creates a new timer state machinejava.util.UUIDrandomUUID()voidrequestCancelExternalWorkflowExecution(io.temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes attributes, Functions.Proc2<java.lang.Void,java.lang.RuntimeException> completionCallback)voidrequestCancelNexusOperation(io.temporal.api.command.v1.RequestCancelNexusOperationCommandAttributes attributes, Functions.Proc2<java.lang.Void,io.temporal.api.failure.v1.Failure> completionCallback)voidresetStartedEventId(long eventId)Functions.ProcscheduleActivityTask(ExecuteActivityParameters attributes, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,io.temporal.api.failure.v1.Failure> callback)Functions.ProcscheduleLocalActivityTask(ExecuteLocalActivityParameters parameters, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,LocalActivityCallback.LocalActivityFailedException> callback)java.lang.StringsdkNameToWrite()java.lang.StringsdkVersionToWrite()voidsendMessage(io.temporal.api.protocol.v1.Message message)voidsetMessages(java.util.List<io.temporal.api.protocol.v1.Message> messages)voidsetReplaying(boolean replaying)voidsetWorkflowStartedEventId(long workflowTaskStartedEventId)voidsideEffect(Functions.Func<java.util.Optional<io.temporal.api.common.v1.Payloads>> func, io.temporal.api.sdk.v1.UserMetadata userMetadata, Functions.Proc1<java.util.Optional<io.temporal.api.common.v1.Payloads>> callback)Functions.ProcsignalExternalWorkflowExecution(io.temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes attributes, Functions.Proc2<java.lang.Void,io.temporal.api.failure.v1.Failure> completionCallback)Functions.ProcstartChildWorkflow(StartChildWorkflowExecutionParameters parameters, Functions.Proc2<io.temporal.api.common.v1.WorkflowExecution,java.lang.Exception> startedCallback, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,java.lang.Exception> completionCallback)Creates a new child state machineFunctions.ProcstartNexusOperation(StartNexusOperationParameters parameters, Functions.Proc2<java.util.Optional<java.lang.String>,io.temporal.api.failure.v1.Failure> startedCallback, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payload>,io.temporal.api.failure.v1.Failure> completionCallback)java.util.List<io.temporal.api.command.v1.Command>takeCommands()java.util.List<ExecuteLocalActivityParameters>takeLocalActivityRequests()java.util.List<io.temporal.api.protocol.v1.Message>takeMessages()java.util.EnumSet<SdkFlag>takeNewSdkFlags()booleantryUseSdkFlag(SdkFlag flag)voidupsertMemo(io.temporal.api.common.v1.Memo memo)voidupsertSearchAttributes(io.temporal.api.common.v1.SearchAttributes attributes)
-
-
-
Field Detail
-
initialFlags
public static java.util.List<SdkFlag> initialFlags
Initial set of SDK flags that will be set on all new workflow executions.
-
-
Constructor Detail
-
WorkflowStateMachines
public WorkflowStateMachines(StatesMachinesCallback callbacks, io.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities capabilities, WorkflowImplementationOptions workflowImplOptions)
-
WorkflowStateMachines
public WorkflowStateMachines(StatesMachinesCallback callbacks, Functions.Proc1<io.temporal.internal.statemachines.StateMachine> stateMachineSink, io.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities capabilities, WorkflowImplementationOptions workflowImplOptions)
-
WorkflowStateMachines
public WorkflowStateMachines(StatesMachinesCallback callbacks, Functions.Proc1<io.temporal.internal.statemachines.StateMachine> stateMachineSink)
-
-
Method Detail
-
setWorkflowStartedEventId
public void setWorkflowStartedEventId(long workflowTaskStartedEventId)
- Parameters:
workflowTaskStartedEventId- eventId of the workflowTask that was picked up by a worker and triggered an execution. Used inWorkflowTaskStateMachineonly to understand that this workflow task will not have a matching closing event and needs to be executed.
-
resetStartedEventId
public void resetStartedEventId(long eventId)
-
getLastWFTStartedEventId
public long getLastWFTStartedEventId()
-
getCurrentWFTStartedEventId
public long getCurrentWFTStartedEventId()
-
getHistorySize
public long getHistorySize()
-
getCurrentTaskBuildId
@Nullable public java.lang.String getCurrentTaskBuildId()
-
isContinueAsNewSuggested
public boolean isContinueAsNewSuggested()
-
setReplaying
public void setReplaying(boolean replaying)
-
setMessages
public void setMessages(java.util.List<io.temporal.api.protocol.v1.Message> messages)
-
handleEvent
public void handleEvent(io.temporal.api.history.v1.HistoryEvent event, boolean hasNextEvent)Handle a single event from the workflow history.- Parameters:
event- event from the history.hasNextEvent- false if this is the last event in the history.
-
takeCommands
public java.util.List<io.temporal.api.command.v1.Command> takeCommands()
-
sendMessage
public void sendMessage(io.temporal.api.protocol.v1.Message message)
-
takeMessages
public java.util.List<io.temporal.api.protocol.v1.Message> takeMessages()
-
tryUseSdkFlag
public boolean tryUseSdkFlag(SdkFlag flag)
- Returns:
- True if the SDK flag is supported in this workflow execution
-
checkSdkFlag
public boolean checkSdkFlag(SdkFlag flag)
- Returns:
- True if the SDK flag is set in the workflow execution
-
takeNewSdkFlags
public java.util.EnumSet<SdkFlag> takeNewSdkFlags()
- Returns:
- Set of all new flags set since the last call
-
sdkNameToWrite
public java.lang.String sdkNameToWrite()
- Returns:
- If we need to write the SDK name upon WFT completion, return it
-
sdkVersionToWrite
public java.lang.String sdkVersionToWrite()
- Returns:
- If we need to write the SDK version upon WFT completion, return it
-
getLastStartedEventId
public long getLastStartedEventId()
-
scheduleActivityTask
public Functions.Proc scheduleActivityTask(ExecuteActivityParameters attributes, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,io.temporal.api.failure.v1.Failure> callback)
- Parameters:
attributes- attributes used to schedule an activitycallback- completion callback- Returns:
- an instance of ActivityCommands
-
newTimer
public Functions.Proc newTimer(io.temporal.api.command.v1.StartTimerCommandAttributes attributes, io.temporal.api.sdk.v1.UserMetadata metadata, Functions.Proc1<io.temporal.api.history.v1.HistoryEvent> completionCallback)
Creates a new timer state machine- Parameters:
attributes- timer command attributesmetadata- user provided metadatacompletionCallback- invoked when timer fires or reports cancellation. One of TimerFiredEvent, TimerCanceledEvent.- Returns:
- cancellation callback that should be invoked to initiate timer cancellation
-
startChildWorkflow
public Functions.Proc startChildWorkflow(StartChildWorkflowExecutionParameters parameters, Functions.Proc2<io.temporal.api.common.v1.WorkflowExecution,java.lang.Exception> startedCallback, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,java.lang.Exception> completionCallback)
Creates a new child state machine- Parameters:
parameters- child workflow start command parametersstartedCallback- callback that is notified about child startcompletionCallback- invoked when child reports completion or failure- Returns:
- cancellation callback that should be invoked to cancel the child
-
startNexusOperation
public Functions.Proc startNexusOperation(StartNexusOperationParameters parameters, Functions.Proc2<java.util.Optional<java.lang.String>,io.temporal.api.failure.v1.Failure> startedCallback, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payload>,io.temporal.api.failure.v1.Failure> completionCallback)
-
signalExternalWorkflowExecution
public Functions.Proc signalExternalWorkflowExecution(io.temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes attributes, Functions.Proc2<java.lang.Void,io.temporal.api.failure.v1.Failure> completionCallback)
- Parameters:
attributes-completionCallback- invoked when signal delivery completes of fails. The following types
-
requestCancelExternalWorkflowExecution
public void requestCancelExternalWorkflowExecution(io.temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes attributes, Functions.Proc2<java.lang.Void,java.lang.RuntimeException> completionCallback)- Parameters:
attributes- attributes to use to cancel external workflowcompletionCallback- one of ExternalWorkflowExecutionCancelRequestedEvent,
-
requestCancelNexusOperation
public void requestCancelNexusOperation(io.temporal.api.command.v1.RequestCancelNexusOperationCommandAttributes attributes, Functions.Proc2<java.lang.Void,io.temporal.api.failure.v1.Failure> completionCallback)- Parameters:
attributes- attributes to use to cancel a nexus operationcompletionCallback- one of NexusOperationCancelRequestCompleted or NexusOperationCancelRequestFailed events
-
upsertSearchAttributes
public void upsertSearchAttributes(io.temporal.api.common.v1.SearchAttributes attributes)
-
upsertMemo
public void upsertMemo(io.temporal.api.common.v1.Memo memo)
-
completeWorkflow
public void completeWorkflow(java.util.Optional<io.temporal.api.common.v1.Payloads> workflowOutput)
-
failWorkflow
public void failWorkflow(io.temporal.api.failure.v1.Failure failure)
-
cancelWorkflow
public void cancelWorkflow()
-
continueAsNewWorkflow
public void continueAsNewWorkflow(io.temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes attributes)
-
isReplaying
public boolean isReplaying()
-
currentTimeMillis
public long currentTimeMillis()
-
randomUUID
public java.util.UUID randomUUID()
-
newRandom
public java.util.Random newRandom()
-
sideEffect
public void sideEffect(Functions.Func<java.util.Optional<io.temporal.api.common.v1.Payloads>> func, io.temporal.api.sdk.v1.UserMetadata userMetadata, Functions.Proc1<java.util.Optional<io.temporal.api.common.v1.Payloads>> callback)
-
mutableSideEffect
public void mutableSideEffect(java.lang.String id, io.temporal.api.sdk.v1.UserMetadata userMetadata, Functions.Func1<java.util.Optional<io.temporal.api.common.v1.Payloads>,java.util.Optional<io.temporal.api.common.v1.Payloads>> func, Functions.Proc1<java.util.Optional<io.temporal.api.common.v1.Payloads>> callback)- Parameters:
id- mutable side effect idfunc- given the value from the last marker returns value to store. If result is empty nothing is recorded into the history.callback- used to report result or failure
-
getVersion
public java.lang.Integer getVersion(java.lang.String changeId, int minSupported, int maxSupported, Functions.Proc2<java.lang.Integer,java.lang.RuntimeException> callback)
-
takeLocalActivityRequests
public java.util.List<ExecuteLocalActivityParameters> takeLocalActivityRequests()
-
handleLocalActivityCompletion
public void handleLocalActivityCompletion(LocalActivityResult laCompletion)
-
scheduleLocalActivityTask
public Functions.Proc scheduleLocalActivityTask(ExecuteLocalActivityParameters parameters, Functions.Proc2<java.util.Optional<io.temporal.api.common.v1.Payloads>,LocalActivityCallback.LocalActivityFailedException> callback)
-
-