Java源码示例:org.camunda.bpm.model.bpmn.instance.ConditionExpression

示例1
protected void enhanceSequenceFlow(SequenceFlow sf) {
    FlowNode srcFlowNode = sf.getSource();

    if (sf.getConditionExpression() == null && "exclusiveGateway".equals(srcFlowNode.getElementType().getTypeName())
            && srcFlowNode.getOutgoing().size() >= 2) {
        String sfName = sf.getName();
        if (StringUtils.isBlank(sfName)) {
            log.warn("the name of squence flow {} is blank.", sf.getId());
            throw new BpmnCustomizationException(String.format("The name of sequence flow %s cannot be blank.", sf.getId()));
        }

        List<SubProcess> preSubProcesses = srcFlowNode.getPreviousNodes().filterByType(SubProcess.class).list();
        if (preSubProcesses.size() == 1) {
            log.debug("to add condition,sequenceFlowId={}", sf.getId());
            SubProcess preSubProcess = preSubProcesses.get(0);
            ConditionExpression okCon = sf.getModelInstance().newInstance(ConditionExpression.class);
            okCon.setType(FORMAL_EXPR_TYPE);
            okCon.setTextContent(
                    String.format("${ subProcRetCode_%s == '%s' }", preSubProcess.getId(), sfName.trim()));
            sf.builder().condition(okCon).done();
        }

        
    }
}
 
示例2
public static void registerType(ModelBuilder modelBuilder) {
  ModelElementTypeBuilder typeBuilder = modelBuilder.defineType(ConditionExpression.class, BPMN_ELEMENT_CONDITION_EXPRESSION)
    .namespaceUri(BPMN20_NS)
    .extendsType(FormalExpression.class)
    .instanceProvider(new ModelTypeInstanceProvider<ConditionExpression>() {
      public ConditionExpression newInstance(ModelTypeInstanceContext instanceContext) {
        return new ConditionExpressionImpl(instanceContext);
      }
    });

  typeAttribute = typeBuilder.stringAttribute(XSI_ATTRIBUTE_TYPE)
    .namespace(XSI_NS)
    .defaultValue("tFormalExpression")
    .build();

  camundaResourceAttribute = typeBuilder.stringAttribute(CAMUNDA_ATTRIBUTE_RESOURCE)
    .namespace(CAMUNDA_NS)
    .build();

  typeBuilder.build();
}
 
示例3
public static void registerType(ModelBuilder modelBuilder) {
  ModelElementTypeBuilder typeBuilder = modelBuilder.defineType(ConditionExpression.class, BPMN_ELEMENT_CONDITION_EXPRESSION)
    .namespaceUri(BPMN20_NS)
    .extendsType(FormalExpression.class)
    .instanceProvider(new ModelTypeInstanceProvider<ConditionExpression>() {
      public ConditionExpression newInstance(ModelTypeInstanceContext instanceContext) {
        return new ConditionExpressionImpl(instanceContext);
      }
    });

  typeAttribute = typeBuilder.stringAttribute(XSI_ATTRIBUTE_TYPE)
    .namespace(XSI_NS)
    .defaultValue("tFormalExpression")
    .build();

  camundaResourceAttribute = typeBuilder.stringAttribute(CAMUNDA_ATTRIBUTE_RESOURCE)
    .namespace(CAMUNDA_NS)
    .build();

  typeBuilder.build();
}
 
示例4
public static void registerType(ModelBuilder modelBuilder) {
  ModelElementTypeBuilder typeBuilder = modelBuilder.defineType(SequenceFlow.class, BPMN_ELEMENT_SEQUENCE_FLOW)
    .namespaceUri(BPMN20_NS)
    .extendsType(FlowElement.class)
    .instanceProvider(new ModelTypeInstanceProvider<SequenceFlow>() {
      public SequenceFlow newInstance(ModelTypeInstanceContext instanceContext) {
        return new SequenceFlowImpl(instanceContext);
      }
    });

  sourceRefAttribute = typeBuilder.stringAttribute(BPMN_ATTRIBUTE_SOURCE_REF)
    .required()
    .idAttributeReference(FlowNode.class)
    .build();

  targetRefAttribute = typeBuilder.stringAttribute(BPMN_ATTRIBUTE_TARGET_REF)
    .required()
    .idAttributeReference(FlowNode.class)
    .build();

  isImmediateAttribute = typeBuilder.booleanAttribute(BPMN_ATTRIBUTE_IS_IMMEDIATE)
    .build();

  SequenceBuilder sequenceBuilder = typeBuilder.sequence();

  conditionExpressionCollection = sequenceBuilder.element(ConditionExpression.class)
    .build();

  typeBuilder.build();
}
 
示例5
public static void registerType(ModelBuilder modelBuilder) {
  ModelElementTypeBuilder typeBuilder = modelBuilder.defineType(SequenceFlow.class, BPMN_ELEMENT_SEQUENCE_FLOW)
    .namespaceUri(BPMN20_NS)
    .extendsType(FlowElement.class)
    .instanceProvider(new ModelTypeInstanceProvider<SequenceFlow>() {
      public SequenceFlow newInstance(ModelTypeInstanceContext instanceContext) {
        return new SequenceFlowImpl(instanceContext);
      }
    });

  sourceRefAttribute = typeBuilder.stringAttribute(BPMN_ATTRIBUTE_SOURCE_REF)
    .required()
    .idAttributeReference(FlowNode.class)
    .build();

  targetRefAttribute = typeBuilder.stringAttribute(BPMN_ATTRIBUTE_TARGET_REF)
    .required()
    .idAttributeReference(FlowNode.class)
    .build();

  isImmediateAttribute = typeBuilder.booleanAttribute(BPMN_ATTRIBUTE_IS_IMMEDIATE)
    .build();

  SequenceBuilder sequenceBuilder = typeBuilder.sequence();

  conditionExpressionCollection = sequenceBuilder.element(ConditionExpression.class)
    .build();

  typeBuilder.build();
}
 
示例6
public ConditionExpression getConditionExpression() {
  return conditionExpressionCollection.getChild(this);
}
 
示例7
public void setConditionExpression(ConditionExpression conditionExpression) {
  conditionExpressionCollection.setChild(this, conditionExpression);
}
 
示例8
public ConditionExpression getConditionExpression() {
  return conditionExpressionCollection.getChild(this);
}
 
示例9
public void setConditionExpression(ConditionExpression conditionExpression) {
  conditionExpressionCollection.setChild(this, conditionExpression);
}
 
示例10
/**
 * Sets the condition for this sequence flow.
 *
 * @param conditionExpression  the condition expression for this sequence flow
 * @return the builder object
 */
public B condition(ConditionExpression conditionExpression) {
  element.setConditionExpression(conditionExpression);
  return myself;
}
 
示例11
/**
 * Sets the condition for this sequence flow.
 *
 * @param conditionExpression  the condition expression for this sequence flow
 * @return the builder object
 */
public B condition(ConditionExpression conditionExpression) {
  element.setConditionExpression(conditionExpression);
  return myself;
}