Class CirculateOperation
java.lang.Object
cloud.opencode.base.flow.operation.CirculateOperation
Circulate (read-only notification) action — appends a history row and
publishes a
TaskCirculatedEvent; does not affect the workflow state
(v4 §8.8).
抄送操作 —— 写 history + 发事件,不影响主流程状态。- Since:
- JDK 25, opencode-base-flow V1.0.5
- Author:
- Leon Soo
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intHard cap on recipients per circulate call. -
Constructor Summary
ConstructorsConstructorDescriptionCirculateOperation(HistoryWriter history) Construct a circulate operation with no instance-status / user-existence checks beyondInputSanitizer.validateUserId(String)form validation.CirculateOperation(FlowRepository repo, HistoryWriter history, AssigneeResolver assigneeResolver) Construct a circulate operation with full instance-status + recipient validation. -
Method Summary
-
Field Details
-
MAX_RECIPIENTS
public static final int MAX_RECIPIENTSHard cap on recipients per circulate call. Prevents history.extra_json blowup and event-storm DoS via a single call asking to notify millions. 单次抄送 toUserIds 上限;防止 history.extra_json 爆炸与事件风暴。- See Also:
-
-
Constructor Details
-
CirculateOperation
Construct a circulate operation with no instance-status / user-existence checks beyondInputSanitizer.validateUserId(String)form validation. Used by tests and integrators that want minimal interception; production callers should prefer the four-arg constructor. 构造抄送操作(最简形式,仅做 userId 形式校验);生产侧推荐使用四参构造。- Parameters:
history- history writer — 历史追加器- Since:
- JDK 25, opencode-base-flow V1.0.5
-
CirculateOperation
public CirculateOperation(FlowRepository repo, HistoryWriter history, AssigneeResolver assigneeResolver) Construct a circulate operation with full instance-status + recipient validation. Recommended for production wiring. 构造抄送操作(含实例状态 + 抄送对象校验);推荐生产使用。- Parameters:
repo- persistence facade (nullable for legacy wiring) — 持久化门面(旧装配可空)history- history writer — 历史追加器assigneeResolver- assignee resolver SPI (nullable for legacy wiring) — 参与者解析 SPI(旧装配可空)- Since:
- JDK 25, opencode-base-flow V1.0.5
-
-
Method Details
-
execute
Execute the circulate action. 执行抄送操作。- Parameters:
task- already-validated owned PENDING task — 已校验任务fromUserId- caller user id — 调用者toUserIds- notify list (non-empty) — 被抄送列表(非空)comment- sanitised comment (nullable) — 已清洗意见- Since:
- JDK 25, opencode-base-flow V1.0.5
-