-
Notifications
You must be signed in to change notification settings - Fork 36
/
parse.go
79 lines (68 loc) · 2.08 KB
/
parse.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package flow
import (
"context"
)
// Parser 流程数据解析器
type Parser interface {
// 解析流程定义数据
Parse(ctx context.Context, data []byte) (*ParseResult, error)
}
// ParseResult 流程数据
type ParseResult struct {
FlowID string // 流程ID
FlowName string // 流程名称
FlowVersion int64 // 流程版本号
FlowStatus int // 流程状态(1:可用 2:不可用)
Nodes []*NodeResult // 节点数据
}
// NodeResult 节点数据
type NodeResult struct {
NodeID string // 节点ID
NodeName string // 节点名称
NodeType NodeType // 节点类型
Routers []*RouterResult // 节点路由
Properties []*PropertyResult // 节点属性
CandidateExpressions []string // 候选人表达式
FormResult *NodeFormResult // 节点表单
}
// RouterResult 节点路由数据
type RouterResult struct {
TargetNodeID string // 目标节点ID
Explain string // 说明
Expression string // 条件表达式
}
// PropertyResult 节点属性
type PropertyResult struct {
Name string // 属性名称
Value string // 属性值
}
// NodeFormResult 节点表单
type NodeFormResult struct {
ID string // 表单ID
Fields []*FormFieldResult // 表单字段
}
// FormFieldResult 表单字段
type FormFieldResult struct {
ID string // 字段ID
Type string // 字段类型
Label string // 字段标签
DefaultValue string // 默认值
Values []*FieldOption // 枚举类型
Validations []*FieldValidation // 字段验证
Properties []*FieldProperty // 字段属性
}
// FieldValidation 字段验证
type FieldValidation struct {
Name string // 约束名
Config string // 约束配置
}
// FieldProperty 字段属性
type FieldProperty struct {
ID string // 属性ID
Value string // 属性值
}
// FieldOption 枚举选项
type FieldOption struct {
ID string // 选项值ID
Name string // 选项值名称
}