Sign in

    mldong/jeeflow-core/parser does not have a README file

    EdgeModel

    pub(all) struct EdgeModel {
    id : String
    source_node_id : String
    target_node_id : String
    label : String?
    properties : Map[String, Json]
    } derive(Eq)

    EdgeModel::equal

    fn EdgeModel::equal(EdgeModel, EdgeModel) -> Bool
    automatically derived

    EdgeModel::expr

    fn EdgeModel::expr(self : EdgeModel) -> String?

    EdgeModel::not_equal

    fn EdgeModel::not_equal(x : EdgeModel, y : EdgeModel) -> Bool

    EdgeModel::source_node_id

    fn EdgeModel::source_node_id(self : EdgeModel) -> String

    EdgeModel::target_node_id

    fn EdgeModel::target_node_id(self : EdgeModel) -> String

    NodeModel

    pub(all) struct NodeModel {
    id : String
    node_type : NodeType
    display_name : String
    properties : Map[String, Json]
    } derive(Eq)

    NodeModel::assignee

    fn NodeModel::assignee(self : NodeModel) -> String?
    固定参与人

    NodeModel::assignment_handler

    fn NodeModel::assignment_handler(self : NodeModel) -> String?
    动态参与人 handler 名

    NodeModel::candidate_groups

    fn NodeModel::candidate_groups(self : NodeModel) -> String?

    NodeModel::candidate_users

    fn NodeModel::candidate_users(self : NodeModel) -> String?

    NodeModel::countersign_completion_condition

    fn NodeModel::countersign_completion_condition(self : NodeModel) -> String?
    会签完成条件(顶层属性优先,field 子对象兜底)

    NodeModel::countersign_type

    fn NodeModel::countersign_type(self : NodeModel) -> String

    NodeModel::equal

    fn NodeModel::equal(NodeModel, NodeModel) -> Bool
    automatically derived

    NodeModel::expr

    fn NodeModel::expr(self : NodeModel) -> String?

    NodeModel::field_permissions

    fn NodeModel::field_permissions(self : NodeModel) -> Map[String, Int]
    字段权限(PERMISSION_* → 1 只读/2 可编辑/3 隐藏,C19)

    NodeModel::form_key

    fn NodeModel::form_key(self : NodeModel) -> String?

    NodeModel::is_countersign

    fn NodeModel::is_countersign(self : NodeModel) -> Bool

    NodeModel::not_equal

    fn NodeModel::not_equal(x : NodeModel, y : NodeModel) -> Bool

    NodeModel::perform_type

    fn NodeModel::perform_type(self : NodeModel) -> Int
    会签类型(C4 容错:数字 1/'1'/'ALL'/'COUNTERSIGN' 均认会签,其余 0)

    NodeModel::prop_i64

    fn NodeModel::prop_i64(self : NodeModel, key : String) -> Int64?

    NodeModel::prop_str

    fn NodeModel::prop_str(self : NodeModel, key : String) -> String?

    NodeModel::sub_process_name

    fn NodeModel::sub_process_name(self : NodeModel) -> String?

    NodeModel::task_type

    fn NodeModel::task_type(self : NodeModel) -> Int

    NodeType

    pub(all) enum NodeType {
    Start
    Task
    Decision
    Fork
    Join
    End
    Custom
    SubProcess
    Unknown
    } derive(Eq,
    Debug
    )
    本档不做归一化 ⇒ 照 spec 写无前缀 task 的定义会落进这里,那是义务 1 未落地的已知后果。

    NodeType::as_str

    fn NodeType::as_str(self : NodeType) -> String

    NodeType::equal

    fn NodeType::equal(NodeType, NodeType) -> Bool
    automatically derived

    NodeType::from_snaker_type

    fn NodeType::from_snaker_type(t : String) -> NodeType

    NodeType::not_equal

    fn NodeType::not_equal(x : NodeType, y : NodeType) -> Bool

    NodeType::to_repr

    automatically derived

    ProcessModel

    pub(all) struct ProcessModel {
    name : String
    display_name : String
    model_type : String
    expire_time : String?
    persist_mode : String?
    pre_interceptors : String?
    post_interceptors : String?
    rel_table_name : String?
    nodes : Array[NodeModel]
    edges : Array[EdgeModel]
    } derive(Eq)

    ProcessModel::can_rejected

    fn ProcessModel::can_rejected(self : ProcessModel, current_id : String, parent_id : String) -> Bool
    等同普通节点。

    ProcessModel::equal

    automatically derived

    ProcessModel::get_end_nodes

    fn ProcessModel::get_end_nodes(self : ProcessModel) -> Array[NodeModel]

    ProcessModel::get_first_task_node

    fn ProcessModel::get_first_task_node(self : ProcessModel) -> NodeModel?
    start 后第一个任务节点

    ProcessModel::get_input_edges

    fn ProcessModel::get_input_edges(self : ProcessModel, node_id : String) -> Array[EdgeModel]

    ProcessModel::get_node

    fn ProcessModel::get_node(self : ProcessModel, id : String) -> NodeModel?

    ProcessModel::get_nodes_by_type

    fn ProcessModel::get_nodes_by_type(self : ProcessModel, t : NodeType) -> Array[NodeModel]

    ProcessModel::get_output_edges

    fn ProcessModel::get_output_edges(self : ProcessModel, node_id : String) -> Array[EdgeModel]

    ProcessModel::get_start

    fn ProcessModel::get_start(self : ProcessModel) -> NodeModel?

    ProcessModel::get_target_node

    fn ProcessModel::get_target_node(self : ProcessModel, edge : EdgeModel) -> NodeModel?

    ProcessModel::interceptor_decl

    fn ProcessModel::interceptor_decl(self : ProcessModel, node : NodeModel?, prop : String) -> String?
    不存在 go/py/node 那条「根声明每定义只回查一行」的读放大问题。

    ProcessModel::is_first_task_node

    fn ProcessModel::is_first_task_node(self : ProcessModel, node_id : String) -> Bool

    ProcessModel::not_equal

    fn ProcessModel::not_equal(x : ProcessModel, y : ProcessModel) -> Bool

    parse_model

    fn parse_model(json_str : String) -> ProcessModel raise
    JeeflowError
    LogicFlow JSON → ProcessModel

    unknown_node_warning

    fn unknown_node_warning(node_id : String, raw_type : String) -> String
    判据留在纯函数、副作用留在调用点,两件事各自可测。

    Source Files