• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java UelExpressionCondition类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SequenceConfig类代码示例发布时间:2022-05-22
下一篇:
Java CreateNetworkCmd类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap