Newer
Older
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package com.cesgroup.bdc.wfself.def;
import java.util.HashMap;
import java.util.Map;
import com.cesgroup.bdc.wfself.node.event.StartEvent;
/**
* 公共流程定义
*
*
* 流程定义规则,
* 1、网关的下一节点只能在List中存放的任务节点,不能是其他的节点,除此之外,不能存在非INode类型的对象;
* 2、并行网关(聚合)节点后不能是List;
* 3、流程参数人员,需要是,以逗号分隔用户id;
* 4、网流程定义中,同一时间,只能有一个并网关的任务在执行;
*
* @author khaoth
*/
public abstract class CommonProcDef {
private String procDefId;
private String procDefCode;
private String version;
private String name;
private final Map<String, CommonNode> procDefNodeMap = new HashMap<>();
private final Map<String, Object> procDefMap = new HashMap<>();
private final Map<String, String> gatewayFlowKeyMap = new HashMap<>();
public CommonProcDef() {}
/**
* 构造函数
*
* @param procDefCode
* 流程定义code
* @param version
* 流程定义版本
* @param name
* 流程定义名
*/
public CommonProcDef(String procDefCode, String name, String version) {
this.procDefCode = procDefCode;
this.name = name;
this.version = version;
this.procDefId = procDefCode + ":" + version;
}
/**
* 获取流程开始节点
*
* @return
*/
public abstract StartEvent getStartEvent();
/**
* 获取流程定义code
*
* @return
*/
public String getProcDefCode() {
return procDefCode;
}
/**
* 设置流程定义code
*
* @param procDefCode
*/
protected void setProcDefCode(String procDefCode) {
this.procDefCode = procDefCode;
}
/**
* 获取流程版本
*
* @return
*/
public String getVersion() {
return version;
}
/**
* 设置流程版本
*
* @param version
*/
protected void setVersion(String version) {
this.version = version;
}
/**
* 获取定义流程名
*
* @return
*/
public String getName() {
return name;
}
/**
* 设置定义流程名
*
* @param name
*/
protected void setName(String name) {
this.name = name;
}
/**
* 获取流程定义id
*
* @return
*/
public String getProcDefId() {
return procDefId;
}
/**
* 设置流程定义id
*
* @param procDefId
*/
protected void setProcDefId(String procDefId) {
this.procDefId = procDefId;
}
/**
* 获取流程节点
*
* @param procDefId
*/
public Map<String, CommonNode> getProcDefNodeMap() {
return procDefNodeMap;
}
/**
* 获取流程实例map
*
* @return
*/
public Map<String, Object> getProcDefMap() {
return procDefMap;
}
/**
* 获取网关流向变量用key的map
*
* @return
*/
public Map<String, String> getGatewayFlowKeyMap() {
return gatewayFlowKeyMap;
}
/**
* 获取根据节点code获取节点对象
*
* @return
*/
public CommonNode getProcDefNode(String nodeCode) {
return procDefNodeMap.get(nodeCode);
}
}