Class WithdrawOperation
java.lang.Object
cloud.opencode.base.flow.operation.WithdrawOperation
Withdraw action (v4 §8.6). Two policies are supported, captured once from
opencode.base.flow.withdraw-policy at construction time (D22):
strict(default): refuse withdraw if any task is DONEloose: cancel every task (PENDING + DONE), mark as WITHDRAWN
- Since:
- JDK 25, opencode-base-flow V1.0.5
- Author:
- Leon Soo
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionWithdrawOperation(FlowRepository repo, HistoryWriter history) Construct a withdraw operation with the policy read once from system properties.WithdrawOperation(FlowRepository repo, HistoryWriter history, String policy) Test-only constructor with explicit policy. -
Method Summary
Modifier and TypeMethodDescriptionvoidexecute(FlowInstance instance, String initiatorId, String reason) Execute the withdraw action.
-
Field Details
-
PROP_WITHDRAW_POLICY
-
DEFAULT_POLICY
-
-
Constructor Details
-
WithdrawOperation
Construct a withdraw operation with the policy read once from system properties. 构造撤回操作;构造时一次性读取策略。- Parameters:
repo- persistence facade — 持久化门面history- history writer — 历史追加器- Since:
- JDK 25, opencode-base-flow V1.0.5
-
WithdrawOperation
Test-only constructor with explicit policy. 测试用构造器(显式策略)。- Parameters:
repo- persistence facade — 持久化门面history- history writer — 历史追加器policy- "strict" or "loose" — 策略- Since:
- JDK 25, opencode-base-flow V1.0.5
-
-
Method Details
-
execute
Execute the withdraw action. Caller must have already validated that theinitiatorIdmatches the instance's initiator. 执行撤回;调用方需先校验 initiatorId == instance.initiatorId。R1 S-5: the body (cancel-loop + instance UPDATE + history) runs inside
FlowRepository.runInTransaction(Runnable); nested calls join the outer transaction.R1 S-5:整段(cancel 循环 + 实例 UPDATE + history)置于
FlowRepository.runInTransaction(Runnable);嵌套自动并入外层。- Parameters:
instance- instance to withdraw — 待撤回实例initiatorId- initiator user id — 发起人reason- sanitised reason (nullable) — 已清洗理由- Since:
- JDK 25, opencode-base-flow V1.0.5
-