package org.fireflow.pdl.fpdl.misc;
public enum LoopStrategy {
/**
* 循环情况下,任务分配指示之一:重做<br>
* 对于Tool类型和Subflow类型的task会重新执行一遍
* 对于Form类型的Task,重新执行一遍,且将该任务实例分配给最近一次完成同一任务的操作员。
*/
REDO("org.fireflow.constants.loop_strategy.REDO"),
/**
* 循环情况下,任务分配指示之二:忽略<br>
* 循环的情况下该任务将被忽略,即在流程实例的生命周期里,仅执行一遍。
*/
SKIP("org.fireflow.constants.loop_strategy.SKIP"),
/**
* 循环的情况下,任务分配指示之三:无<br>
* 对于Tool类型和Subflow类型的task会重新执行一遍,和REDO效果一样的。<br>
* 对于Form类型的Task,重新执行一遍,且工作流引擎仍然调用Performer属性的AssignmentHandler分配任务
*/
NONE("org.fireflow.constants.loop_strategy.NONE");
private String value;
private LoopStrategy(String value){
this.value = value;
}
public String getValue(){
return this.value;
}
public static LoopStrategy fromValue(String v){
LoopStrategy[] values = LoopStrategy.values();
for (LoopStrategy strategy : values){
if (strategy.getValue().equals(v)){
return strategy;
}
}
return null;
}
}