public IntermediateThrowSignalEventActivityBehavior(ThrowEvent throwEvent, SignalEventDefinition signalEventDefinition, Signal signal) { if (signal != null) { signalEventName = signal.getName(); if (Signal.SCOPE_PROCESS_INSTANCE.equals(signal.getScope())) { this.processInstanceScope = true; } } else if (StringUtils.isNotEmpty(signalEventDefinition.getSignalRef())) { signalEventName = signalEventDefinition.getSignalRef(); } else { signalExpression = signalEventDefinition.getSignalExpression(); } this.signalEventDefinition = signalEventDefinition; }
protected void handleSignalEventDefinition(BpmnModel bpmnModel, Process process, Event event, EventDefinition eventDefinition, List<ValidationError> errors) { SignalEventDefinition signalEventDefinition = (SignalEventDefinition) eventDefinition; if (StringUtils.isEmpty(signalEventDefinition.getSignalRef())) { if (StringUtils.isEmpty(signalEventDefinition.getSignalExpression())) { addError(errors, Problems.SIGNAL_EVENT_MISSING_SIGNAL_REF, process, event, "signalEventDefinition does not have mandatory property 'signalRef'"); } } else if (!bpmnModel.containsSignalId(signalEventDefinition.getSignalRef())) { addError(errors, Problems.SIGNAL_EVENT_INVALID_SIGNAL_REF, process, event, "Invalid 'signalRef': no signal with that id can be found in the model"); } }
public void setValues(SignalEventDefinition otherDefinition) { super.setValues(otherDefinition); setSignalRef(otherDefinition.getSignalRef()); setSignalExpression(otherDefinition.getSignalExpression()); setAsync(otherDefinition.isAsync()); } }
public void setValues(SignalEventDefinition otherDefinition) { super.setValues(otherDefinition); setSignalRef(otherDefinition.getSignalRef()); setSignalExpression(otherDefinition.getSignalExpression()); setAsync(otherDefinition.isAsync()); } }
@Override public void execute(DelegateExecution execution) { CommandContext commandContext = Context.getCommandContext(); ExecutionEntity executionEntity = (ExecutionEntity) execution; String signalName = null; if (StringUtils.isNotEmpty(signalEventDefinition.getSignalRef())) { signalName = signalEventDefinition.getSignalRef(); } else { Expression signalExpression = CommandContextUtil.getProcessEngineConfiguration(commandContext).getExpressionManager() .createExpression(signalEventDefinition.getSignalExpression()); signalName = signalExpression.getValue(execution).toString(); } CommandContextUtil.getEventSubscriptionEntityManager(commandContext).insertSignalEvent(signalName, signal, executionEntity); if (CommandContextUtil.getProcessEngineConfiguration(commandContext).getEventDispatcher().isEnabled()) { CommandContextUtil.getProcessEngineConfiguration(commandContext).getEventDispatcher() .dispatchEvent(FlowableEventBuilder.createSignalEvent(FlowableEngineEventType.ACTIVITY_SIGNAL_WAITING, executionEntity.getActivityId(), signalName, null, executionEntity.getId(), executionEntity.getProcessInstanceId(), executionEntity.getProcessDefinitionId())); } }
@Override public void execute(DelegateExecution execution) { CommandContext commandContext = Context.getCommandContext(); ExecutionEntity executionEntity = (ExecutionEntity) execution; String signalName = null; if (StringUtils.isNotEmpty(signalEventDefinition.getSignalRef())) { signalName = signalEventDefinition.getSignalRef(); } else { Expression signalExpression = CommandContextUtil.getProcessEngineConfiguration(commandContext).getExpressionManager() .createExpression(signalEventDefinition.getSignalExpression()); signalName = signalExpression.getValue(execution).toString(); } CommandContextUtil.getEventSubscriptionEntityManager(commandContext).insertSignalEvent(signalName, signal, executionEntity); if (CommandContextUtil.getProcessEngineConfiguration(commandContext).getEventDispatcher().isEnabled()) { CommandContextUtil.getProcessEngineConfiguration(commandContext).getEventDispatcher() .dispatchEvent(FlowableEventBuilder.createSignalEvent(FlowableEngineEventType.ACTIVITY_SIGNAL_WAITING, executionEntity.getActivityId(), signalName, null, executionEntity.getId(), executionEntity.getProcessInstanceId(), executionEntity.getProcessDefinitionId())); } }