public ThrowMessageEventTriggerDefinitionImpl(final ThrowMessageEventTriggerDefinition trigger) { super(trigger); targetFlowNode = getNonNullCopy(trigger.getTargetFlowNode()); targetProcess = getNonNullCopy(trigger.getTargetProcess()); dataDefinitions = trigger.getDataDefinitions(); }
@Test public void readProcessWithSendTaskFromBusinessArchive() throws Exception { final ProcessDefinitionBuilder builder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final SendTaskDefinitionBuilder sendTaskDefinitionBuilder = builder.addSendTask("sendTask", "messageName", new ExpressionBuilder().createConstantStringExpression("processName")); sendTaskDefinitionBuilder.setTargetFlowNode(new ExpressionBuilder().createConstantStringExpression("flowNodeName")); sendTaskDefinitionBuilder.addCorrelation(new ExpressionBuilder().createConstantStringExpression("un"), new ExpressionBuilder().createConstantStringExpression("value")); sendTaskDefinitionBuilder.addMessageContentExpression(new ExpressionBuilder().createConstantStringExpression("myData"), new ExpressionBuilder().createConstantStringExpression("dataValue")); final DesignProcessDefinition result = getDesignProcessDefinition(builder); final SendTaskDefinition flowNode = (SendTaskDefinition) result.getFlowElementContainer().getFlowNode("sendTask"); assertEquals("sendTask", flowNode.getName()); final ThrowMessageEventTriggerDefinition messageTrigger = flowNode.getMessageTrigger(); assertEquals("processName", messageTrigger.getTargetProcess().getContent()); assertEquals("messageName", messageTrigger.getMessageName()); assertEquals("flowNodeName", messageTrigger.getTargetFlowNode().getContent()); assertEquals("myData", messageTrigger.getDataDefinitions().get(0).getName()); assertEquals("java.lang.String", messageTrigger.getDataDefinitions().get(0).getClassName()); assertEquals("dataValue", messageTrigger.getDataDefinitions().get(0).getDefaultValueExpression().getContent()); assertEquals("un", messageTrigger.getCorrelations().get(0).getKey().getContent()); assertEquals("value", messageTrigger.getCorrelations().get(0).getValue().getContent()); }
.getMessageEventTriggerDefinitions() .get(0); assertEquals(expectedThrowMessage.getCorrelations(), actualThrowMessage.getCorrelations()); assertEquals(1, actualThrowMessage.getCorrelations().size()); assertEquals(expectedThrowMessage.getDataDefinitions(), actualThrowMessage.getDataDefinitions()); assertEquals(1, actualThrowMessage.getDataDefinitions().size());
private void validateActivities(final FlowElementContainerDefinition processContainer) { for (final ActivityDefinition activity : processContainer.getActivities()) { if (activity instanceof UserTaskDefinition) { validateUserTask((UserTaskDefinition) activity); } if (activity instanceof CallActivityDefinition && ((CallActivityDefinition) activity).getCallableElement() == null) { addError("The call activity " + activity.getName() + " has a null callable element"); } if (activity instanceof SendTaskDefinition && ((SendTaskDefinition) activity).getMessageTrigger().getTargetProcess() == null) { addError("The send task " + activity.getName() + " hasn't target"); } } }
/** * Adds a correlation on this send task. * <p> * It's possible to define up to five correlations. If more then five correlations are defined, the process becomes invalid. * <p> * The expressions representing correlation key and correlation value are evaluated once during the flow node initialization. * * @param correlationKey expression representing the correlation key. * @param value expression representing the correlation value. * @return */ public SendTaskDefinitionBuilder addCorrelation(final Expression correlationKey, final Expression value) { final SendTaskDefinitionImpl sendTask = getActivity(); sendTask.addCorrelation(correlationKey, value); if (sendTask.getMessageTrigger().getCorrelations().size() > 5) { getProcessBuilder().addError("The limit of correlation keys are 5 on send task: " + sendTask.getName()); } return this; }
private void validateActivities(final FlowElementContainerDefinition processContainer) { for (final ActivityDefinition activity : processContainer.getActivities()) { if (activity instanceof UserTaskDefinition) { validateUserTask((UserTaskDefinition) activity); } if (activity instanceof CallActivityDefinition && ((CallActivityDefinition) activity).getCallableElement() == null) { addError("The call activity " + activity.getName() + " has a null callable element"); } if (activity instanceof SendTaskDefinition && ((SendTaskDefinition) activity).getMessageTrigger().getTargetProcess() == null) { addError("The send task " + activity.getName() + " hasn't target"); } } }
/** * Adds a correlation on this send task. * <p> * It's possible to define up to five correlations. If more then five correlations are defined, the process becomes invalid. * <p> * The expressions representing correlation key and correlation value are evaluated once during the flow node initialization. * * @param correlationKey expression representing the correlation key. * @param value expression representing the correlation value. * @return */ public SendTaskDefinitionBuilder addCorrelation(final Expression correlationKey, final Expression value) { final SendTaskDefinitionImpl sendTask = getActivity(); sendTask.addCorrelation(correlationKey, value); if (sendTask.getMessageTrigger().getCorrelations().size() > 5) { getProcessBuilder().addError("The limit of correlation keys are 5 on send task: " + sendTask.getName()); } return this; }
public ThrowMessageEventTriggerDefinitionImpl(final ThrowMessageEventTriggerDefinition trigger) { super(trigger); targetFlowNode = getNonNullCopy(trigger.getTargetFlowNode()); targetProcess = getNonNullCopy(trigger.getTargetProcess()); dataDefinitions = trigger.getDataDefinitions(); }
@Override public void find(ThrowMessageEventTriggerDefinition throwMessageEventTriggerDefinition, long expressionDefinitionId) { findExpressionFromNotNullContainer(throwMessageEventTriggerDefinition.getTargetFlowNode(), expressionDefinitionId); findExpressionFromNotNullContainer(throwMessageEventTriggerDefinition.getTargetProcess(), expressionDefinitionId); for (DataDefinition dataDefinition : throwMessageEventTriggerDefinition.getDataDefinitions()) { findExpressionFromNotNullContainer(dataDefinition, expressionDefinitionId); } }
@Override public void find(ThrowMessageEventTriggerDefinition throwMessageEventTriggerDefinition, long expressionDefinitionId) { findExpressionFromNotNullContainer(throwMessageEventTriggerDefinition.getTargetFlowNode(), expressionDefinitionId); findExpressionFromNotNullContainer(throwMessageEventTriggerDefinition.getTargetProcess(), expressionDefinitionId); for (DataDefinition dataDefinition : throwMessageEventTriggerDefinition.getDataDefinitions()) { findExpressionFromNotNullContainer(dataDefinition, expressionDefinitionId); } }
public SThrowMessageEventTriggerDefinitionImpl(final ThrowMessageEventTriggerDefinition throwMessageEventTrigger) { super(throwMessageEventTrigger); final List<DataDefinition> dataDefinitions = throwMessageEventTrigger.getDataDefinitions(); sDataDefinitions = new ArrayList<SDataDefinition>(dataDefinitions.size()); for (final DataDefinition dataDefinition : dataDefinitions) { sDataDefinitions.add(buildSDataDefinition(dataDefinition)); } targetProcess = ServerModelConvertor.convertExpression(throwMessageEventTrigger.getTargetProcess()); targetFlowNode = ServerModelConvertor.convertExpression(throwMessageEventTrigger.getTargetFlowNode()); }
public SThrowMessageEventTriggerDefinitionImpl(final ThrowMessageEventTriggerDefinition throwMessageEventTrigger) { super(throwMessageEventTrigger); final List<DataDefinition> dataDefinitions = throwMessageEventTrigger.getDataDefinitions(); sDataDefinitions = new ArrayList<SDataDefinition>(dataDefinitions.size()); for (final DataDefinition dataDefinition : dataDefinitions) { sDataDefinitions.add(buildSDataDefinition(dataDefinition)); } targetProcess = ServerModelConvertor.convertExpression(throwMessageEventTrigger.getTargetProcess()); targetFlowNode = ServerModelConvertor.convertExpression(throwMessageEventTrigger.getTargetFlowNode()); }