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;
}