本文整理汇总了Java中org.activiti.engine.impl.el.UelExpressionCondition类的典型用法代码示例。如果您正苦于以下问题:Java UelExpressionCondition类的具体用法?Java UelExpressionCondition怎么用?Java UelExpressionCondition使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UelExpressionCondition类属于org.activiti.engine.impl.el包,在下文中一共展示了UelExpressionCondition类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: executeParse
import org.activiti.engine.impl.el.UelExpressionCondition; //导入依赖的package包/类
@Override
protected void executeParse(BpmnParse bpmnParse, SequenceFlow sequenceFlow) {
ScopeImpl scope = bpmnParse.getCurrentScope();
ActivityImpl sourceActivity = scope.findActivity(sequenceFlow.getSourceRef());
ActivityImpl destinationActivity = scope.findActivity(sequenceFlow.getTargetRef());
Expression skipExpression;
if (StringUtils.isNotEmpty(sequenceFlow.getSkipExpression())) {
ExpressionManager expressionManager = bpmnParse.getExpressionManager();
skipExpression = expressionManager.createExpression(sequenceFlow.getSkipExpression());
} else {
skipExpression = null;
}
TransitionImpl transition = sourceActivity.createOutgoingTransition(sequenceFlow.getId(), skipExpression);
bpmnParse.getSequenceFlows().put(sequenceFlow.getId(), transition);
transition.setProperty("name", sequenceFlow.getName());
transition.setProperty("documentation", sequenceFlow.getDocumentation());
transition.setDestination(destinationActivity);
if (StringUtils.isNotEmpty(sequenceFlow.getConditionExpression())) {
Condition expressionCondition = new UelExpressionCondition(sequenceFlow.getConditionExpression());
transition.setProperty(PROPERTYNAME_CONDITION_TEXT, sequenceFlow.getConditionExpression());
transition.setProperty(PROPERTYNAME_CONDITION, expressionCondition);
}
createExecutionListenersOnTransition(bpmnParse, sequenceFlow.getExecutionListeners(), transition);
}
开发者ID:flowable,项目名称:flowable-engine,代码行数:32,代码来源:SequenceFlowParseHandler.java
示例2: isTargetTask
import org.activiti.engine.impl.el.UelExpressionCondition; //导入依赖的package包/类
/**
* TODO 局部变量判断
* 判断当前是否是合适的路径
*
* @param expressionText 表达式
* @param processInstanceId 实例ID
* @return true符合条件条件的路径
*/
public boolean isTargetTask(final String expressionText, String processInstanceId, final PvmTransition transition) {
final ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(processInstanceId)
.singleResult();
Boolean result = ((RuntimeServiceImpl) runtimeService).getCommandExecutor().execute(
new Command<Boolean>() {
@Override
public Boolean execute(CommandContext commandContext) {
UelExpressionCondition flowCondition = (UelExpressionCondition) transition.getProperty("condition");
boolean evel_ret = flowCondition.evaluate(transition.getId(), execution);
return evel_ret;
}
});
return result;
//TODO 另一种写法 自定义juel解析
/*ExpressionFactory factory = new ExpressionFactoryImpl();
SimpleContext context = new SimpleContext();
Map<String, Object> variables = runtimeService.getVariables(processInstanceId);
for (String key : variables.keySet()) {
context.setVariable(key, factory.createValueExpression(variables.get(key), variables.get(key).getClass()));
}
try {
ValueExpression e = factory.createValueExpression(context, expressionText, boolean.class);
return (boolean) e.getValue(context);
} catch (Exception ex) {
return false;
}*/
}
开发者ID:bill1012,项目名称:AdminEAP,代码行数:37,代码来源:RuntimePageServiceImpl.java
示例3: parseSequenceFlowConditionExpression
import org.activiti.engine.impl.el.UelExpressionCondition; //导入依赖的package包/类
/**
* Parses a condition expression on a sequence flow.
*
* @param seqFlowElement
* The 'sequenceFlow' element that can contain a condition.
* @param seqFlow
* The sequenceFlow object representation to which the condition must
* be added.
*/
public void parseSequenceFlowConditionExpression(Element seqFlowElement, TransitionImpl seqFlow) {
Element conditionExprElement = seqFlowElement.element("conditionExpression");
if (conditionExprElement != null) {
String expression = conditionExprElement.getText().trim();
String type = conditionExprElement.attributeNS(BpmnParser.XSI_NS, "type");
if (type != null && !type.equals("tFormalExpression")) {
addError("Invalid type, only tFormalExpression is currently supported", conditionExprElement);
}
Condition expressionCondition = new UelExpressionCondition(expressionManager.createExpression(expression));
seqFlow.setProperty(PROPERTYNAME_CONDITION_TEXT, expression);
seqFlow.setProperty(PROPERTYNAME_CONDITION, expressionCondition);
}
}
开发者ID:logicalhacking,项目名称:SecureBPMN,代码行数:24,代码来源:BpmnParse.java
示例4: executeParse
import org.activiti.engine.impl.el.UelExpressionCondition; //导入依赖的package包/类
protected void executeParse(BpmnParse bpmnParse, SequenceFlow sequenceFlow) {
BpmnModel bpmnModel = bpmnParse.getBpmnModel();
ScopeImpl scope = bpmnParse.getCurrentScope();
// Implicit check: sequence flow cannot cross (sub) process boundaries: we
// don't do a processDefinition.findActivity here
ActivityImpl sourceActivity = scope.findActivity(sequenceFlow.getSourceRef());
ActivityImpl destinationActivity = scope.findActivity(sequenceFlow.getTargetRef());
if (sourceActivity == null) {
bpmnModel.addProblem("Invalid source '" + sequenceFlow.getSourceRef() + "' of sequence flow '" + sequenceFlow.getId() + "'", sequenceFlow);
} else if (destinationActivity == null) {
throw new ActivitiException("Invalid destination '" + sequenceFlow.getTargetRef() + "' of sequence flow '" + sequenceFlow.getId() + "'");
} else if (!(sourceActivity.getActivityBehavior() instanceof EventBasedGatewayActivityBehavior)
&& destinationActivity.getActivityBehavior() instanceof IntermediateCatchEventActivityBehavior && (destinationActivity.getParentActivity() != null)
&& (destinationActivity.getParentActivity().getActivityBehavior() instanceof EventBasedGatewayActivityBehavior)) {
bpmnModel.addProblem("Invalid incoming sequenceflow " + sequenceFlow.getId() + " for intermediateCatchEvent with id '" + destinationActivity.getId()
+ "' connected to an event-based gateway.", sequenceFlow);
} else {
TransitionImpl transition = sourceActivity.createOutgoingTransition(sequenceFlow.getId());
bpmnParse.getSequenceFlows().put(sequenceFlow.getId(), transition);
transition.setProperty("name", sequenceFlow.getName());
transition.setProperty("documentation", sequenceFlow.getDocumentation());
transition.setDestination(destinationActivity);
if (StringUtils.isNotEmpty(sequenceFlow.getConditionExpression())) {
Condition expressionCondition = new UelExpressionCondition(bpmnParse.getExpressionManager().createExpression(sequenceFlow.getConditionExpression()));
transition.setProperty(PROPERTYNAME_CONDITION_TEXT, sequenceFlow.getConditionExpression());
transition.setProperty(PROPERTYNAME_CONDITION, expressionCondition);
}
createExecutionListenersOnTransition(bpmnParse, sequenceFlow.getExecutionListeners(), transition);
}
}
开发者ID:springvelocity,项目名称:xbpm5,代码行数:39,代码来源:SequenceFlowParseHandler.java
注:本文中的org.activiti.engine.impl.el.UelExpressionCondition类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论